Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 8 Mar 2008 02:21:46 -0600 (CST)
From:      Mike Silbersack <silby@silby.com>
To:        Antipov Dmitry <dmantipov@yandex.ru>
Cc:        freebsd-hackers@freebsd.org
Subject:   Re: [kern/sys_pipe.c] PIPE_NODIRECT and pipe throughput
Message-ID:  <20080308021506.L11630@odysseus.silby.com>
In-Reply-To: <713411204954593@webmail21.yandex.ru>
References:  <713411204954593@webmail21.yandex.ru>

next in thread | previous in thread | raw e-mail | index | archive | help

On Sat, 8 Mar 2008, Antipov Dmitry wrote:

> [originally posted to freebsd-stable@]
>
> Hello all,
>
> recently I've tried a few benchmarks around pipe throughput on Linux vs. FreeBSD.
> Everyone interesting can see my stuff at http://213.148.29.37/PipeBench, and
> initial post to Linux kernel developers mailing list at
> http://www.uwsg.iu.edu/hypermail/linux/kernel/0803.0/1837.html
>
> 1) It was noticed (http://www.uwsg.iu.edu/hypermail/linux/kernel/0803.0/1842.html) that
> the page flipping may be a reason of FreeBSD advantage. I've looked at kern/sys_pipe.c
> and found that defining PIPE_NODIRECT should disable it. Is that correct ?

Yes, that is correct.

> 2) When I've tried to run the kernel (7.0-STABLE) with PIPE_NODIRECT defined,
> I didn't see any slowdown (note 30% is promised in kern/sys_pipe.c comments)
> even for I/O buffer sizes >= PIPE_MINDIRECT. So, what should be done with a pipe
> to see a difference between PIPE_NODIRECT enabled and disabled ?
>
> Thanks,
> Dmitry

Why don't you add another sysctl that is incremented every time page 
flipping is used?  That would prove how much it is being used during your 
tests.  Just add:

static int page_flips;
SYSCTL_INT(_kern_ipc, OID_AUTO, page_flips, CTLFLAG_RD,
            &page_flips, 0, "Pipe page flips");

and then put page_flips++ at the appropriate points in the code.

You should really use gnuplot or some other tool to graph your results. 
That will make them much easier to understand.

-Mike



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20080308021506.L11630>