summaryrefslogtreecommitdiffstats
path: root/Documentation
diff options
context:
space:
mode:
authorJens Axboe <axboe@kernel.dk>2018-08-26 10:10:05 -0600
committerJens Axboe <axboe@kernel.dk>2018-08-27 11:27:26 -0600
commit38cfb5a45ee013bfab5d1ae4c4738815e744b440 (patch)
treea85aa2ef3699f6a42256efbf23705993f6da6d98 /Documentation
parent061a5427530633de93ace4ef001b99961984af62 (diff)
downloadlinux-stable-38cfb5a45ee013bfab5d1ae4c4738815e744b440.tar.gz
linux-stable-38cfb5a45ee013bfab5d1ae4c4738815e744b440.tar.bz2
linux-stable-38cfb5a45ee013bfab5d1ae4c4738815e744b440.zip
blk-wbt: improve waking of tasks
We have two potential issues: 1) After commit 2887e41b910b, we only wake one process at the time when we finish an IO. We really want to wake up as many tasks as can queue IO. Before this commit, we woke up everyone, which could cause a thundering herd issue. 2) A task can potentially consume two wakeups, causing us to (in practice) miss a wakeup. Fix both by providing our own wakeup function, which stops __wake_up_common() from waking up more tasks if we fail to get a queueing token. With the strict ordering we have on the wait list, this wakes the right tasks and the right amount of tasks. Based on a patch from Jianchao Wang <jianchao.w.wang@oracle.com>. Tested-by: Agarwal, Anchal <anchalag@amazon.com> Signed-off-by: Jens Axboe <axboe@kernel.dk>
Diffstat (limited to 'Documentation')
0 files changed, 0 insertions, 0 deletions