diff options
author | Jens Axboe <axboe@fb.com> | 2016-03-30 10:21:08 -0600 |
---|---|---|
committer | Jens Axboe <axboe@fb.com> | 2016-11-05 17:09:53 -0600 |
commit | d278d4a8892f13b6a9eb6102b356402f0e062324 (patch) | |
tree | 2d1f9dc740b6d47257404c02292493568c8ee656 /drivers/scsi/scsi.c | |
parent | 600271d9000027c013c01be87cbb90a5a18c5c3f (diff) |
block: add code to track actual device queue depth
For blk-mq, ->nr_requests does track queue depth, at least at init
time. But for the older queue paths, it's simply a soft setting.
On top of that, it's generally larger than the hardware setting
on purpose, to allow backup of requests for merging.
Fill a hole in struct request with a 'queue_depth' member, that
drivers can call to more closely inform the block layer of the
real queue depth.
Signed-off-by: Jens Axboe <axboe@fb.com>
Reviewed-by: Jan Kara <jack@suse.cz>
Diffstat (limited to 'drivers/scsi/scsi.c')
-rw-r--r-- | drivers/scsi/scsi.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/drivers/scsi/scsi.c b/drivers/scsi/scsi.c index 1deb6adc411f..75455d4dab68 100644 --- a/drivers/scsi/scsi.c +++ b/drivers/scsi/scsi.c @@ -621,6 +621,9 @@ int scsi_change_queue_depth(struct scsi_device *sdev, int depth) wmb(); } + if (sdev->request_queue) + blk_set_queue_depth(sdev->request_queue, depth); + return sdev->queue_depth; } EXPORT_SYMBOL(scsi_change_queue_depth); |