From owner-freebsd-emulation@FreeBSD.ORG Tue Nov 7 16:39:48 2006 Return-Path: X-Original-To: emulation@freebsd.org Delivered-To: freebsd-emulation@FreeBSD.ORG Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id ED20016A416 for ; Tue, 7 Nov 2006 16:39:48 +0000 (UTC) (envelope-from jhein@timing.com) Received: from Daffy.timing.com (w.timing.com [206.168.13.218]) by mx1.FreeBSD.org (Postfix) with ESMTP id 0DD6343D6D for ; Tue, 7 Nov 2006 16:39:45 +0000 (GMT) (envelope-from jhein@timing.com) Received: from gromit.timing.com (gromit.timing.com [206.168.13.209]) by Daffy.timing.com (8.13.1/8.13.1) with ESMTP id kA7GdjJ7018360; Tue, 7 Nov 2006 09:39:45 -0700 (MST) (envelope-from jhein@timing.com) Received: from gromit.timing.com (localhost [127.0.0.1]) by gromit.timing.com (8.13.8/8.13.8) with ESMTP id kA7GdcTF037179; Tue, 7 Nov 2006 09:39:38 -0700 (MST) (envelope-from jhein@gromit.timing.com) Received: (from jhein@localhost) by gromit.timing.com (8.13.8/8.13.8/Submit) id kA7GdcF7037176; Tue, 7 Nov 2006 09:39:38 -0700 (MST) (envelope-from jhein) MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Message-ID: <17744.46794.149852.319567@gromit.timing.com> Date: Tue, 7 Nov 2006 09:39:38 -0700 From: John E Hein To: Divacky Roman In-Reply-To: <20061106174033.GA70360@stud.fit.vutbr.cz> References: <20061106174033.GA70360@stud.fit.vutbr.cz> X-Mailer: VM 7.19 under Emacs 22.0.50.1 X-Virus-Scanned: ClamAV version 0.87.1, clamav-milter version 0.87 on Daffy.timing.com X-Virus-Status: Clean Cc: emulation@freebsd.org Subject: Re: [PATCH]: possible fix for the fifoor problem X-BeenThere: freebsd-emulation@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Development of Emulators of other operating systems List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 07 Nov 2006 16:39:49 -0000 Divacky Roman wrote at 18:40 +0100 on Nov 6, 2006: > pls test > www.stud.fit.vutbr.cz/~xdivac02/linux-fifoor.patch > > and tell me if that helps you with fifoor affected tests (dup05, select03) > > I cannot afford panic now so I am unable to test ;( and wider testing > never hurts :) The patch fails against RELENG_6 and -CURRENT. It is probably against a local or p4 version? Here's one against RELENG_6 (that should also work for current). Index: sys/compat/linux/linux_file.c =================================================================== RCS file: /base/FreeBSD-CVS/src/sys/compat/linux/linux_file.c,v retrieving revision 1.91.2.1 diff -u -p -r1.91.2.1 linux_file.c --- sys/compat/linux/linux_file.c 17 Sep 2006 10:56:15 -0000 1.91.2.1 +++ sys/compat/linux/linux_file.c 7 Nov 2006 15:52:21 -0000 @@ -92,6 +92,7 @@ linux_open(struct thread *td, struct lin struct proc *p = td->td_proc; char *path; int bsd_flags, error; + struct stat sb; if (args->flags & LINUX_O_CREAT) LCONVPATHCREAT(td, args->path, &path); @@ -129,6 +130,11 @@ linux_open(struct thread *td, struct lin if (args->flags & LINUX_O_NOCTTY) bsd_flags |= O_NOCTTY; + /* linux opens RDWR fifos in a nonblocking manner */ + error = kern_stat(td, path, UIO_USERSPACE, &sb); + if (S_ISFIFO(sb.st_mode) && (bsd_flags & O_RDWR)) + bsd_flags |= O_NONBLOCK; + error = kern_open(td, path, UIO_SYSSPACE, bsd_flags, args->mode); PROC_LOCK(p); if (!error && !(bsd_flags & O_NOCTTY) && Anyway, after patching RELENG_6 (today's source) with the above patch, I tested it with: - run linux-seamonkey - ctrl-p to bring up print dialog box - check 'Print to File' - click the Print button - observe hang '/bin/ps -o wchan,command | grep seam' shows one process in the fifoor state. It is killable with ctrl-c. I am using linux_base-fc-4_9.