On 11/17/19 5:18 PM, Damien Le Moal wrote: > On 2019/11/17 17:08, Ming Lei wrote: >> Now the requeue queue is run in scsi_end_request() unconditionally if both >> target queue and host queue is ready. We should have re-run request queue >> only after this device queue becomes busy for restarting this LUN only. >> >> Recently Long Li reported that cost of run queue may be very heavy in >> case of high queue depth. So improve this situation by only running >> requesut queue when this LUN is busy. > > s/requesut/request > > Also, shouldn't this patch have the tag: > > Reported-by: Long Li <longli@xxxxxxxxxxxxx> > > ? > > Another remark is that Long's approach is generic to the block layer > while your patch here is scsi specific. I wonder if the same problem > cannot happen with other drivers too ? The block layer is just doing what it's told, and I doubt many drivers would have the crazy kind of re-run logic that the SCSI midlayer does. As far as I'm concerned, the fix belongs on the SCSI side of things instead of being papered over on the block side. -- Jens Axboe