atom feed16 messages in org.freebsd.freebsd-archRe: pipe/fifo code merged.
FromSent OnAttachments
Giovanni TrematerraJan 7, 2012 6:35 pm 
John BaldwinJan 9, 2012 5:48 am 
Bruce EvansJan 9, 2012 6:34 am 
Kostik BelousovJan 9, 2012 6:46 am 
Giovanni TrematerraJan 9, 2012 2:27 pm 
Giovanni TrematerraJan 9, 2012 3:19 pm 
Bruce EvansJan 10, 2012 4:03 am 
Giovanni TrematerraJan 10, 2012 3:04 pm 
Giovanni TrematerraJan 10, 2012 3:33 pm 
Giovanni TrematerraJan 10, 2012 4:14 pm 
Giovanni TrematerraJan 12, 2012 12:55 am 
Bruce EvansJan 12, 2012 4:51 am 
Giovanni TrematerraJan 17, 2012 3:42 am 
Jilles TjoelkerJan 28, 2012 3:36 pm 
Bruce EvansJan 29, 2012 3:31 am 
Giovanni TrematerraJan 31, 2012 1:48 pm 
Subject:Re: pipe/fifo code merged.
From:Giovanni Trematerra (gia@freebsd.org)
Date:Jan 17, 2012 3:42:56 am
List:org.freebsd.freebsd-arch

On Tue, Jan 10, 2012 at 10:41 AM, Bruce Evans <br@optusnet.com.au> wrote:

On Mon, 9 Jan 2012, Giovanni Trematerra wrote:

On Mon, Jan 9, 2012 at 3:34 PM, Bruce Evans <br@optusnet.com.au> wrote:

I would go the other way, and pessimize pipes to be like fifos.  Then optimize the socket layer under both.  Fifos are not important, but they are implemented on top of the socket layer which is important. Pipes are important. ... ...

Linux-2.6.10 implements fifos as a small wrapper around pipes, while FreeBSD implements them as a large wrapper around sockets.  I hope the former is what you do -- share most pipe code, without making it more complicated, and with making the fifo wrapper much simpler.  The Linux code is much simpler and smaller, since for pipes it it doesn't implement direct mode, and for sockets it doesn't have to interact with the complicated socket layer.

If you read the patch, as I think you didn't, you'd see that there's no wrapper at all. fifo's code is just fifo_open, fifo_close and another couple of helper functions to deal with VFS, all the remaining code is shared with pipes and no complicated code was added.

I think you don't want me to read the patch, since I would see too much detail starting with style bugs.  Anyway..

Did you agree that this patch http://www.trematerra.net/patches/pipefifo_merge2.4.diff

doesn't introduce any further regressions while it fixes

- style bugs you pointed out. - pipe_stat now use underlying filesystem information for pipes. - comment about pipeinfo was intended for. - race into pipe_poll (look at fifo_iseof line).

I want to work on the other problems you outlined in order to get all the regression test passing, more posix compliance and so on but on a separate patchset.

Thank you