On Tue, Mar 07, 2023 at 08:33:24PM -0700, Jens Axboe wrote: > On 3/7/23 8:10?PM, Jens Axboe wrote: > > Curious on how big of a difference this makes, I wrote a small benchmark > > that simply opens 128 pipes and then does 256 rounds of reading and > > writing to them. This was run 10 times, discarding the first run as it's > > always a bit slower. Before the patch: > > > > Avg: 262.52 msec > > Stdev: 2.12 msec > > Min: 261.07 msec > > Max 267.91 msec > > > > and after the patch: > > > > Avg: 24.14 msec > > Stdev: 9.61 msec > > Min: 17.84 msec > > Max: 43.75 msec > > > > or about a 10x improvement in performance (and efficiency). > > The above test was for a pipe being empty when the read is issued, if > the test is changed to have data when, then it looks even better: > > Before: > > Avg: 249.24 msec > Stdev: 0.20 msec > Min: 248.96 msec > Max: 249.53 msec > > After: > > Avg: 10.86 msec > Stdev: 0.91 msec > Min: 10.02 msec > Max: 12.67 msec > > or about a 23x improvement. Nice! Code looks OK, maybe consider s/nonblock/nowait/, but I'm not a pipe expert so I'll leave nitty gritty details to Al, et al. Acked-by: Dave Chinner <dchinner@xxxxxxxxxx> -- Dave Chinner david@xxxxxxxxxxxxx