Re: [patch] pipe: add support for shrinking and growing pipes

From: Michael Kerrisk
Date: Tue May 25 2010 - 00:02:13 EST


On Mon, May 24, 2010 at 7:56 PM, Jens Axboe <jens.axboe@xxxxxxxxxx> wrote:
> On Mon, May 24 2010, Michael Kerrisk wrote:
>> On Mon, May 24, 2010 at 7:35 PM, Jens Axboe <jens.axboe@xxxxxxxxxx> wrote:
>> > On Mon, May 24 2010, Michael Kerrisk wrote:
>> >> > Right, that looks like a thinko.
>> >> >
>> >> > I'll submit a patch changing it to bytes and the agreed API and fix this
>> >> > -Eerror. Thanks for your comments and suggestions!
>> >>
>> >> Thanks. And of course you are welcome. (Please CC linux-api@vger on
>> >> this patche (and all patches that change the API/ABI.)
>> >
>> > The first change is this:
>> >
>> > http://git.kernel.dk/?p=linux-2.6-block.git;a=commit;h=0191f8697bbdfefcd36e7b8dc3eeddfe82893e4b
>> >
>> > and the one dealing with the pages vs bytes API is this:
>> >
>> > http://git.kernel.dk/?p=linux-2.6-block.git;a=commit;h=b9598db3401282bb27b4aef77e3eee12015f7f29
>> >
>> > Not tested yet, will do so before sending in of course.
>>
>> Eyeballing it quickly, these changes look right.
>
> Good, thanks.
>
>> Do you have some test programs you can make available?
>
> Actually I don't, I test it by modifying fio's splice engine to set/get
> the pipe size and test the resulting transfers.

Two more questions: is the rationale for this feature written up
somewhere? I could not find it. Is it primarily intended for
splice/vmsplice/tee, with the effect for pipe(2) being a side effect?

Also, the minuimum size of the buffer is 2 pages. Why is it not 1?
(Notwithstanding Linus's assertion, a buffer size of 1 page did give
us POSIX compliance in kernels before 2.6.10.)

Cheers,

Michael


--
Michael Kerrisk
Linux man-pages maintainer; http://www.kernel.org/doc/man-pages/
Author of "The Linux Programming Interface" http://blog.man7.org/
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/