Skip site navigation (1)Skip section navigation (2)
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>