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>