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

From: Linus Torvalds
Date: Tue Jun 01 2010 - 11:27:17 EST




On Tue, 1 Jun 2010, Jens Axboe wrote:
>
> > 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.)
>
> I'll defer to Linus on that, I remember some emails on that part from
> way back when. As far as I can tell, POSIX wants atomic writes of "less
> than a page size", which would make more sense as "of a page size and
> less". And since it should not be a page size from either side on a
> uni-directional pipe, then 1 page seems enough for that guarantee at
> least.

Hmm. You guys may well be right that a single slot is sufficient. It still
gives us PIPE_BUF worth of data for writing atomically. I had this memory
that we needed two because of the merging logic (we have that special case
for re-using the previous page, so that we don't use waste of memory for
lots of small writes), but looking at the code there is no reason at all
for me to hav thought so.

So I don't know why I thought we needed the extra slot, and a single slot
(if anybody really wants slow writes) looks to be fine.

Linus
--
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/