Date: Thu, 02 Aug 2012 11:01:39 +0800 From: David Xu <listlog2011@gmail.com> To: Bruce Evans <brde@optusnet.com.au> Cc: src-committers@FreeBSD.org, Giovanni Trematerra <gianni@FreeBSD.org>, svn-src-all@FreeBSD.org, Konstantin Belousov <kib@FreeBSD.org>, davidxu@FreeBSD.org, svn-src-head@FreeBSD.org, bde@FreeBSD.org Subject: Re: svn commit: r238936 - in head/sys: fs/fifofs kern sys Message-ID: <5019ED93.8060802@gmail.com> In-Reply-To: <20120802051805.P3345@besplex.bde.org> References: <201207310548.q6V5mZHf091624@svn.freebsd.org> <CACfq090si0g7QG9UR%2Bmb%2BO5M4KH0=WPfWnF5NzZjYzKBp8hQ5Q@mail.gmail.com> <50179581.9070805@gmail.com> <CACfq091K=1DUOee4LorPPSoEV8KnT570GGXDA01mHDrV12kKiQ@mail.gmail.com> <20120802051805.P3345@besplex.bde.org>
next in thread | previous in thread | raw e-mail | index | archive | help
This is a multi-part message in MIME format. --------------050607040407000205060504 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit On 2012/8/2 3:29, Bruce Evans wrote: > On Wed, 1 Aug 2012, Giovanni Trematerra wrote: > >> On Tue, Jul 31, 2012 at 10:21 AM, David Xu <listlog2011@gmail.com> >> wrote: >>> ... >>> The old code broke some history semantic of FIFO pipe, you can try >>> the test >>> tool /usr/src/tools/regression/poll/pipepoll, try it before and >>> after my >>> commit, also compare the result with 8.3-STABLE, without this commit, >>> both sub-tests 6c and 6d failed. >> >> This is on Vanilla 9.0-RELEASE where new fifo implementation weren't >> backported >> >> FreeBSD bombay 9.0-RELEASE FreeBSD 9.0-RELEASE #3: Tue Dec 27 21:59:00 >> UTC 2011 >> root@build9x64.pcbsd.org:/usr/obj/builds/i386/pcbsd-build90/fbsd-source/9.0/sys/GENERIC >> i386 >> >> [gianni@bombay] /usr/src/tools/regression/poll#./pipepoll >> 1..20 >> not ok 17 FIFO state 6a: expected POLLHUP; got POLLIN | POLLHUP >> not ok 18 FIFO state 6b: poll result 0 expected 1. expected POLLHUP; >> got 0 >> not ok 19 FIFO state 6c: expected POLLHUP; got POLLIN | POLLHUP >> not ok 20 FIFO state 6d: expected POLLHUP; got POLLIN | POLLHUP >> >> As you can see, sub-tests 6c and 6d failed too on 9. So it's not a >> problem with >> new code though is irrelevant wrt the commit. > > The failure is very differnt. Failure to clear POLLIN in 6a, 6c and 6d > is a normal bug in FreeBSD. I have attached a patch to fix it, it should make the regression tool happy. Is it worth to commit ? --------------050607040407000205060504 Content-Type: text/plain; charset=gb18030; name="sys_pipe.disable_eof_pollin.diff" Content-Transfer-Encoding: 7bit Content-Disposition: attachment; filename="sys_pipe.disable_eof_pollin.diff" Index: sys_pipe.c =================================================================== --- sys_pipe.c (revision 238936) +++ sys_pipe.c (working copy) @@ -1447,7 +1447,6 @@ if ((events & POLLINIGNEOF) == 0) { if (rpipe->pipe_state & PIPE_EOF) { - revents |= (events & (POLLIN | POLLRDNORM)); if (wpipe->pipe_present != PIPE_ACTIVE || (wpipe->pipe_state & PIPE_EOF)) revents |= POLLHUP; --------------050607040407000205060504--
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?5019ED93.8060802>