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. -- Jens Axboe