svn commit: r238936 - in head/sys: fs/fifofs kern sys
Giovanni Trematerra
gianni at freebsd.org
Tue Jul 31 07:22:26 UTC 2012
On Tue, Jul 31, 2012 at 7:48 AM, David Xu <davidxu at 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
More information about the svn-src-head
mailing list