summaryrefslogtreecommitdiffstats
path: root/block
diff options
context:
space:
mode:
authorOmar Sandoval <osandov@fb.com>2018-05-09 17:16:31 -0700
committerJens Axboe <axboe@kernel.dk>2018-05-10 11:27:36 -0600
commita327553965dede92587e6ccbe7df98dba36edcea (patch)
treefe246813d7d48402820808661697ff3f544ed484 /block
parentbd7d4ef6a4c9b3611fa487a0065bf042c71ce620 (diff)
downloadlinux-0-day-a327553965dede92587e6ccbe7df98dba36edcea.tar.gz
linux-0-day-a327553965dede92587e6ccbe7df98dba36edcea.tar.xz
sbitmap: fix missed wakeups caused by sbitmap_queue_get_shallow()
The sbitmap queue wake batch is calculated such that once allocations start blocking, all of the bits which are already allocated must be enough to fulfill the batch counters of all of the waitqueues. However, the shallow allocation depth can break this invariant, since we block before our full depth is being utilized. Add sbitmap_queue_min_shallow_depth(), which saves the minimum shallow depth the sbq will use, and update sbq_calc_wake_batch() to take it into account. Acked-by: Paolo Valente <paolo.valente@linaro.org> Signed-off-by: Omar Sandoval <osandov@fb.com> Signed-off-by: Jens Axboe <axboe@kernel.dk>
Diffstat (limited to 'block')
0 files changed, 0 insertions, 0 deletions