* PIPE_BUFFERS - was Re: What to expect after 0.99.8
[not found] ` <Pine.LNX.4.64.0510041706330.31407@g5.osdl.org>
@ 2005-10-06 18:44 ` Luck, Tony
0 siblings, 0 replies; only message in thread
From: Luck, Tony @ 2005-10-06 18:44 UTC (permalink / raw)
To: Linus Torvalds; +Cc: Junio C Hamano, H. Peter Anvin, linux-kernel
On Tue, Oct 04, 2005 at 05:10:18PM -0700, Linus Torvalds wrote:
> Just for performance reasons, I ended up doing merging anyway, so in fact
> regardless of how you write the current pipe buffer size is up to 16
> pages.
s/git@vger.kernel.org/linux-kernel@vger.kernel.org/ in the Cc: list, this
isn't a GIT issue.
Should that:
#define PIPE_BUFFERS (16)
really be a function of PAGE_SIZE? Many systems have a 4K page size
so they get 64K of buffering per pipe. But ia64 defaults to 16K page
size, so pipes are suddenly 256K ... and with a 64K page size we
have 1MB per pipe.
So perhaps:
#define PIPE_BUFFERS (65536 / PAGE_SIZE)
But that would leave PIPE_BUFFERS as "1" on a 64K page size system, is
there any double-buffering benefit from having more than one page on the
pipe list? If so, then something like:
#define PIPE_BUFFERS min(2, (65536 / PAGE_SIZE))
but then gcc is unhappy using the super-type safe "min" in the
places that use PIPE_BUFFERS ... so we'd end up with:
#define PIPE_BUFFERS ((65536 / PAGE_SIZE) > 1 ? (65536 / PAGE_SIZE) : 2)
-Tony
^ permalink raw reply [flat|nested] only message in thread