Merge branch 'pipe-exclusive-wakeup'
authorLinus Torvalds <torvalds@linux-foundation.org>
Sat, 8 Feb 2020 19:44:02 +0000 (11:44 -0800)
committerLinus Torvalds <torvalds@linux-foundation.org>
Sat, 8 Feb 2020 19:44:02 +0000 (11:44 -0800)
commit995933305e11dc8698fdba249ca5f2d145b1d657
tree130c5cae418ba529f44b27fbfd26e3a18c673996
parentf757165705e92db62f85a1ad287e9251d1f2cd82
parent0ddad21d3e99c743a3aa473121dc5561679e26bb
Merge branch 'pipe-exclusive-wakeup'

Merge thundering herd avoidance on pipe IO.

This would have been applied for 5.5 already, but got delayed because of
a user-space race condition in the GNU make jobserver code.  Now that
there's a new GNU make 4.3 release, and most distributions seem to have
at least applied the (almost three year old) fix for the problem, let's
see if people notice.

And it might have been just bad random timing luck on my machine.

If you do hit the race condition, things will still work, but the
symptom is that you don't get nearly the expected parallelism when using
"make -j<N>".

The jobserver bug can definitely happen without this patch too, but
seems to be easier to trigger when we no longer wake up pipe waiters
unnecessarily.

* pipe-exclusive-wakeup:
  pipe: use exclusive waits when reading or writing