diff options
author | 2021-12-03 15:19:49 -0800 | |
---|---|---|
committer | 2021-12-06 22:30:34 -0500 | |
commit | 8d077ede48c1532d791c027467d152ae137c54ab (patch) | |
tree | 703844f9eb7251efddfe6f28e867ea519208aa0c /tools/perf/scripts/python/export-to-postgresql.py | |
parent | scsi: ufs: Stop using the clock scaling lock in the error handler (diff) | |
download | linux-dev-8d077ede48c1532d791c027467d152ae137c54ab.tar.xz linux-dev-8d077ede48c1532d791c027467d152ae137c54ab.zip |
scsi: ufs: Optimize the command queueing code
Remove the clock scaling lock from ufshcd_queuecommand() since it is a
performance bottleneck. Instead check the SCSI device budget bitmaps in the
code that waits for ongoing ufshcd_queuecommand() calls. A bit is set in
sdev->budget_map just before scsi_queue_rq() is called and a bit is cleared
from that bitmap if scsi_queue_rq() does not submit the request or after
the request has finished. See also the blk_mq_{get,put}_dispatch_budget()
calls in the block layer.
There is no risk for a livelock since the block layer delays queue reruns
if queueing a request fails because the SCSI host has been blocked.
Link: https://lore.kernel.org/r/20211203231950.193369-17-bvanassche@acm.org
Cc: Asutosh Das (asd) <asutoshd@codeaurora.org>
Reviewed-by: Asutosh Das <asutoshd@codeaurora.org>
Signed-off-by: Bart Van Assche <bvanassche@acm.org>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
Diffstat (limited to 'tools/perf/scripts/python/export-to-postgresql.py')
0 files changed, 0 insertions, 0 deletions