Date: Tue, 31 Jul 2012 09:22:25 +0200 From: Giovanni Trematerra <gianni@freebsd.org> To: David Xu <davidxu@freebsd.org> Cc: svn-src-head@freebsd.org, svn-src-all@freebsd.org, src-committers@freebsd.org, Konstantin Belousov <kib@freebsd.org>, bde@freebsd.org Subject: Re: svn commit: r238936 - in head/sys: fs/fifofs kern sys Message-ID: <CACfq090si0g7QG9UR%2Bmb%2BO5M4KH0=WPfWnF5NzZjYzKBp8hQ5Q@mail.gmail.com> In-Reply-To: <201207310548.q6V5mZHf091624@svn.freebsd.org> References: <201207310548.q6V5mZHf091624@svn.freebsd.org>
next in thread | previous in thread | raw e-mail | index | archive | help
On Tue, Jul 31, 2012 at 7:48 AM, David Xu <davidxu@freebsd.org> wrote: > Author: davidxu > Date: Tue Jul 31 05:48:35 2012 > New Revision: 238936 > URL: http://svn.freebsd.org/changeset/base/238936 > > Log: > I am comparing current pipe code with the one in 8.3-STABLE r236165, > I found 8.3 is a history BSD version using socket to implement FIFO > pipe, it uses per-file seqcount to compare with writer generation > stored in per-pipe object. The concept is after all writers are gone, > the pipe enters next generation, all old readers have not closed the > pipe should get the indication that the pipe is disconnected, result > is they should get EPIPE, SIGPIPE or get POLLHUP in poll(). > But newcomer should not know that previous writters were gone, it > should treat it as a fresh session. > I am trying to bring back FIFO pipe to history behavior. It is still > unclear that if single EOF flag can represent SBS_CANTSENDMORE and > SBS_CANTRCVMORE which socket-based version is using, but I have run > the poll regression test in tool directory, output is same as the one > on 8.3-STABLE now. > I think the output "not ok 18 FIFO state 6b: poll result 0 expected 1. > expected POLLHUP; got 0" might be bogus, because newcomer should not > know that old writers were gone. I got the same behavior on Linux. > Our implementation always return POLLIN for disconnected pipe even it > should return POLLHUP, but I think it is not wise to remove POLLIN for > compatible reason, this is our history behavior. > I'm sorry but I'm failing to understand the reason for this change. Can you point me out a test that confirm that the change is needed. The only thing I see is an increase in the memory footprint for the pipes. There was a lot of discussions on this topic on -arch mailing list http://lists.freebsd.org/pipermail/freebsd-arch/2012-January/012131.html http://lists.freebsd.org/pipermail/freebsd-arch/2012-February/012314.html Thank you -- Gianni
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CACfq090si0g7QG9UR%2Bmb%2BO5M4KH0=WPfWnF5NzZjYzKBp8hQ5Q>