summaryrefslogtreecommitdiffstats
path: root/block/blk.h
diff options
context:
space:
mode:
authorShaohua Li2013-12-31 04:38:50 +0100
committerJens Axboe2014-01-30 20:57:25 +0100
commitf0276924fa35a3607920a58cf5d878212824b951 (patch)
tree5759cef09f3ba6b2f206ace779fef298a8b9d7be /block/blk.h
parentpercpu_ida: fix a live lock (diff)
downloadkernel-qcow2-linux-f0276924fa35a3607920a58cf5d878212824b951.tar.gz
kernel-qcow2-linux-f0276924fa35a3607920a58cf5d878212824b951.tar.xz
kernel-qcow2-linux-f0276924fa35a3607920a58cf5d878212824b951.zip
blk-mq: Don't reserve a tag for flush request
Reserving a tag (request) for flush to avoid dead lock is a overkill. A tag is valuable resource. We can track the number of flush requests and disallow having too many pending flush requests allocated. With this patch, blk_mq_alloc_request_pinned() could do a busy nop (but not a dead loop) if too many pending requests are allocated and new flush request is allocated. But this should not be a problem, too many pending flush requests are very rare case. I verified this can fix the deadlock caused by too many pending flush requests. Signed-off-by: Shaohua Li <shli@fusionio.com> Signed-off-by: Jens Axboe <axboe@kernel.dk>
Diffstat (limited to 'block/blk.h')
0 files changed, 0 insertions, 0 deletions