aboutsummaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2020-02-08 11:44:02 -0800
committerLinus Torvalds <torvalds@linux-foundation.org>2020-02-08 11:44:02 -0800
commit995933305e11dc8698fdba249ca5f2d145b1d657 (patch)
tree130c5cae418ba529f44b27fbfd26e3a18c673996 /include
parentMerge tag 'fuse-fixes-5.6-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/mszeredi/fuse (diff)
parentpipe: use exclusive waits when reading or writing (diff)
downloadlinux-dev-995933305e11dc8698fdba249ca5f2d145b1d657.tar.xz
linux-dev-995933305e11dc8698fdba249ca5f2d145b1d657.zip
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
Diffstat (limited to 'include')
-rw-r--r--include/linux/pipe_fs_i.h2
1 files changed, 1 insertions, 1 deletions
diff --git a/include/linux/pipe_fs_i.h b/include/linux/pipe_fs_i.h
index dbcfa6892384..d5765039652a 100644
--- a/include/linux/pipe_fs_i.h
+++ b/include/linux/pipe_fs_i.h
@@ -47,7 +47,7 @@ struct pipe_buffer {
**/
struct pipe_inode_info {
struct mutex mutex;
- wait_queue_head_t wait;
+ wait_queue_head_t rd_wait, wr_wait;
unsigned int head;
unsigned int tail;
unsigned int max_usage;