Thread (6 messages) 6 messages, 2 authors, 2018-01-06
STALE3116d
Revisions (3)
  1. v1 [diff vs current]
  2. v2 [diff vs current]
  3. v3 current

[PATCH V3 0/4] blk-mq: fix race related with device deletion/reset/switching sched

From: Ming Lei <hidden>
Date: 2018-01-06 08:27:58

Hi,

The 1st patch fixes one kernel oops triggered by IOs vs. deleting SCSI
device, and this issue can be triggered easily on scsi_debug.

The other 3 patch fixes recent Yi Zhang's reports about his NVMe stress
tests, most of them are related with switching io sched, NVMe reset or
updating nr_hw_queues.

V3:
	- fix 'blk-mq: support concurrent blk_mq_quiesce_queue' on SCSI,
	  which calls quiesce two times, and split blk_quiesce_queue into
	  two parts and fix this issue
	- remove previous patch 6, and Sagi provides one better patch to
	fix that, see '[PATCH v2] nvme-pci: allocate device queues storage space at probe'
	- remove patch 2 of 'blk-mq: support concurrent blk_mq_quiesce_queue()'
	  which need a bit much more work, especially we need to cleanup
	  NVMe's usage on quiesce & unquiesce first, so delay it for V4.17.

V2:
	- address stale queue mapping in blk_mq_update_queue_map(), instead
	of PCI transport, since such issue exists on other transport too,
	as suggested by Christoph
	- avoid to introduce nvme_admin_queue_rq() since the nvme queue can
	be got from hctx->driver_data, which is reliable


Thanks,
Ming

Ming Lei (4):
  blk-mq: quiesce queue before freeing queue
  blk-mq: quiesce queue during switching io sched and updating
    nr_requests
  blk-mq: avoid to map CPU into stale hw queue
  blk-mq: fix race between updating nr_hw_queues and switching io sched

 block/blk-core.c |  9 +++++++++
 block/blk-mq.c   | 53 ++++++++++++++++++++++++++++++++++++++++++++++++++---
 block/elevator.c |  2 ++
 3 files changed, 61 insertions(+), 3 deletions(-)

-- 
2.9.5
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help