Testing needed for new pipe code (in master)

YONETANI Tomokazu qhwt+dfly at les.ath.cx
Mon Jul 27 22:22:24 PDT 2009


On Sun, Jul 12, 2009 at 10:45:09PM -0700, Matthew Dillon wrote:
>     I have substantially rewritten kern/sys_pipe.c, which is our support
>     for pipes.  It should work quite well on a SMP box now.  Performance
>     on UP boxes might be a bit lower then the old code but the difference
>     should not be noticable for any production workload.
> 
>     To test the SMP improvements set sysctl kern.pipe.mpsafe=1.
> 
>     The latest code significantly improves synchronous communication over
>     a pipe (not a socket, sorry), reducing (Awrite,Bread,Bwrite,Aread)
>     sequences from 7uS to 2uS on my test box.  The pipe1 test (from
>     /usr/src/test/sysperf) tests this.
> 
>     The latest code is now able to fully saturated all available cpus
>     when running multiple copies of the pipe2 test (from
>     /usr/src/test/sysperf).

Recently I occasionally see processes stuck on `piperd' state, probably
after it's been turned on by default.  The stuck processes can be
interrupted and re-issued, though.  It happened on both vkernel and
the real kernel.  The first time I saw it was when `make upgrade' was
performing `./MAKEDEV upgrade', so I thought it was temporary back then.





More information about the Kernel mailing list