On Tue, Nov 07, 2017 at 10:29:38AM +0800, Ming Lei wrote: > On Mon, Nov 06, 2017 at 05:07:31PM -0800, Bart Van Assche wrote: > > Since we are close to the merge window and since it is too late for > > reworking patches and algorithms that have turned out to be flawed, > > revert multiple recent patches. Revert patch "blk-mq: don't handle > > TAG_SHARED in restart" and all patches that conflict with the revert > > of that patch because that patch is based on an incorrect assumption, > > namely that the SCSI starved list can be used as a replacement for > > the blk-mq queue restarting mechanism. Revert patch "scsi: implement > > .get_budget and .put_budget for blk-mq" because it triggers an > > infinite loop on my test setup ("scsi 9:0:0:0: rejecting I/O to dead > > device" + RCU lockup complaint in blk_mq_sched_dispatch_requests()). > > The loop can be fixed by > > 88022d7201e9 blk-mq: don't handle failure in .get_budget BTW, the exact reason is that the rq to be failed isn't deleted from 'list' in blk_mq_dispatch_rq_list(). Trust me, I have make sure your srp-test won't hang/crash in my test. Even my test covered more, such as the following report: https://marc.info/?t=150988393300001&r=1&w=2 which is a long-term issue which should be from introduction of blk-mq. Thanks, Ming