Jens Axboe
e861857545
blk-mq: fix sbitmap ws_active for shared tags
...
We now wrap sbitmap waitqueues in an active counter, so we can avoid
iterating wakeups unless we have waiters there. This works as long as
everyone that's manipulating the waitqueues use the proper helpers. For
the tag wait case for shared tags, however, we add ourselves to the
waitqueue without incrementing/decrementing the ->ws_active count. This
means that wakeups can take a long time to happen.
Fix this by manually doing the inc/dec as needed for the wait queue
handling.
Reported-by: Michael Leun <kbug@newton.leun.net>
Tested-by: Michael Leun <kbug@newton.leun.net>
Cc: stable@vger.kernel.org
Reviewed-by: Omar Sandoval <osandov@fb.com>
Fixes: 5d2ee7122c ("sbitmap: optimize wakeup check")
Signed-off-by: Jens Axboe <axboe@kernel.dk>
2019-03-25 13:05:47 -06:00
..
partitions
badblocks.c
bfq-cgroup.c
bfq-iosched.c
block, bfq: fix in-service-queue check for queue merging
2019-01-31 12:50:24 -07:00
bfq-iosched.h
block, bfq: fix in-service-queue check for queue merging
2019-01-31 12:50:24 -07:00
bfq-wf2q.c
block, bfq: fix queue removal from weights tree
2019-01-31 12:50:24 -07:00
bio-integrity.c
block: remove the bio_integrity_advance export
2018-12-16 08:33:57 -07:00
bio.c
block: add BIO_NO_PAGE_REF flag
2019-03-18 10:44:48 -06:00
blk-cgroup.c
blkcg: Fix kernel-doc warnings
2019-03-20 14:39:09 -06:00
blk-core.c
mm: refactor readahead defines in mm.h
2019-03-12 10:04:01 -07:00
blk-exec.c
blk-flush.c
blk-mq: use blk_mq_put_driver_tag() to put tag
2019-03-24 10:26:16 -06:00
blk-integrity.c
blk-ioc.c
blk-iolatency.c
blk-iolatency: #include "blk.h"
2019-03-20 14:19:38 -06:00
blk-lib.c
blk-map.c
blk-merge.c
block: fix segment calculation for passthrough IO
2019-03-06 09:42:54 -07:00
blk-mq-cpumap.c
blk-mq-debugfs-zoned.c
block: Cleanup license notice
2019-01-17 21:21:40 -07:00
blk-mq-debugfs.c
SCSI misc on 20190306
2019-03-09 16:53:47 -08:00
blk-mq-debugfs.h
blk-mq-debugfs: support rq_qos
2018-12-16 19:53:47 -07:00
blk-mq-pci.c
blk-mq-rdma.c
blk-mq-rdma: pass in queue map to blk_mq_rdma_map_queues
2018-12-13 09:59:08 +01:00
blk-mq-sched.c
blk-mq: save queue mapping result into ctx directly
2019-02-01 08:33:04 -07:00
blk-mq-sched.h
block: mq-deadline: Fix write completion handling
2018-12-17 11:19:39 -07:00
blk-mq-sysfs.c
blk-mq: export hctx->type in debugfs instead of sysfs
2018-12-17 05:44:45 -07:00
blk-mq-tag.c
blk-mq: save queue mapping result into ctx directly
2019-02-01 08:33:04 -07:00
blk-mq-tag.h
blk-mq-virtio.c
blk-mq.c
blk-mq: fix sbitmap ws_active for shared tags
2019-03-25 13:05:47 -06:00
blk-mq.h
blk-mq: use blk_mq_put_driver_tag() to put tag
2019-03-24 10:26:16 -06:00
blk-pm.c
blk-pm.h
blk-rq-qos.c
blk-mq-debugfs: support rq_qos
2018-12-16 19:53:47 -07:00
blk-rq-qos.h
block: fix blk-iolatency accounting underflow
2018-12-17 11:19:54 -07:00
blk-settings.c
block: kill QUEUE_FLAG_FLUSH_NQ
2019-02-09 15:40:24 -07:00
blk-softirq.c
blk-stat.c
blk-stat.h
blk-sysfs.c
block: add BLK_MQ_POLL_CLASSIC for hybrid poll and return EINVAL for unexpected value
2019-03-20 14:02:07 -06:00
blk-throttle.c
blk-timeout.c
blk-wbt.c
blk-wbt: Declare local functions static
2019-01-24 11:09:21 -07:00
blk-wbt.h
blk-zoned.c
for-4.21/block-20181221
2018-12-28 13:19:59 -08:00
blk.h
blk-mq: save queue mapping result into ctx directly
2019-02-01 08:33:04 -07:00
bounce.c
block: bounce: make sure that bvec table is updated
2019-02-21 10:58:44 -07:00
bsg-lib.c
scsi: bsg-lib: handle bidi requests without block layer help
2019-02-05 21:27:40 -05:00
bsg.c
scsi: bsg-lib: handle bidi requests without block layer help
2019-02-05 21:27:40 -05:00
cmdline-parser.c
compat_ioctl.c
elevator.c
block: avoid setting none scheduler if it's already none
2019-02-11 08:21:40 -07:00
genhd.c
block: Replace function name in string with __func__
2019-02-28 14:09:08 -07:00
ioctl.c
ioprio.c
Kconfig
Kconfig updates for v4.21
2018-12-29 13:03:29 -08:00
Kconfig.iosched
kyber-iosched.c
kyber: use sbitmap add_wait_queue/list_del wait helpers
2018-12-20 12:17:21 -07:00
Makefile
mq-deadline.c
block: mq-deadline: Fix write completion handling
2018-12-17 11:19:39 -07:00
opal_proto.h
partition-generic.c
scsi_ioctl.c
sed-opal.c
t10-pi.c