summaryrefslogtreecommitdiffstats
path: root/include/drm/drm_format_helper.h
diff options
context:
space:
mode:
authorNaohiro Aota <naohiro.aota@wdc.com>2021-10-27 01:51:27 +0900
committerJens Axboe <axboe@kernel.dk>2021-10-26 16:00:36 -0600
commit9586e67b911c95ba158fcc247b230e9c2d718623 (patch)
tree71af4c5b5d89759e42e27dbfef0872056d45a40a /include/drm/drm_format_helper.h
parentd308ae0d299a6bb15be4efb91849582d19c23213 (diff)
downloadlinux-9586e67b911c95ba158fcc247b230e9c2d718623.tar.bz2
block: schedule queue restart after BLK_STS_ZONE_RESOURCE
When dispatching a zone append write request to a SCSI zoned block device, if the target zone of the request is already locked, the device driver will return BLK_STS_ZONE_RESOURCE and the request will be pushed back to the hctx dipatch queue. The queue will be marked as RESTART in dd_finish_request() and restarted in __blk_mq_free_request(). However, this restart applies to the hctx of the completed request. If the requeued request is on a different hctx, dispatch will no be retried until another request is submitted or the next periodic queue run triggers, leading to up to 30 seconds latency for the requeued request. Fix this problem by scheduling a queue restart similarly to the BLK_STS_RESOURCE case or when we cannot get the budget. Also, consolidate the checks into the "need_resource" variable to simplify the condition. Signed-off-by: Naohiro Aota <naohiro.aota@wdc.com> Reviewed-by: Christoph Hellwig <hch@lst.de> Cc: Niklas Cassel <Niklas.Cassel@wdc.com> Link: https://lore.kernel.org/r/20211026165127.4151055-1-naohiro.aota@wdc.com Signed-off-by: Jens Axboe <axboe@kernel.dk>
Diffstat (limited to 'include/drm/drm_format_helper.h')
0 files changed, 0 insertions, 0 deletions