mbox series

[V2,0/3] blk-mq: introduce bio retrieve mechanism

Message ID 1539767232-9389-1-git-send-email-jianchao.w.wang@oracle.com (mailing list archive)
Headers show
Series blk-mq: introduce bio retrieve mechanism | expand

Message

jianchao.wang Oct. 17, 2018, 9:07 a.m. UTC
Hi Jenss

This patchset introduces a new bio retrieve mechanism. It will
flush all the requests, take the bios down from them and end them,
then submit the bios again later. Then we could
avoid:
 - fail requests on the dying hw queues, this could be fatal for
   filesystem.
 - depend on storage device to drain the queue before update hw queues.
   this could introduce hung into nvme_reset_work.

The 1st patch introduce the bio retrieve mechanism
The 2nd patch apply the bio retrieve mechanism in updating hw queues
The 3rd patch unquiesces the queues after updating hw queues in nvme_reset_work

V2:
 - clear BIO_QUEUE_ENTERED of requeued bios (1/3)
 - sync bio_requeue_work in blk_cleanup_queue (1/3)
 - discard the unnecessary synchronize_sched (2/3)
 - discard the 4th patch which is wrong
 - some misc comment changes

Jianchao Wang(3)
blk-mq: introduce bio retrieve mechanism
blk-mq: retrieve bios before update nr_hw_queues
nvme-pci: unquiesce queues after update hw queues


 block/blk-core.c        |  2 ++
 block/blk-mq-sched.c    | 88 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 block/blk-mq.c          | 47 ++++++++++++++++++++++++++++++++++++++++++++++-
 drivers/nvme/host/pci.c |  4 ++--
 include/linux/blk-mq.h  |  4 ++++
 include/linux/blkdev.h  |  2 ++
 6 files changed, 144 insertions(+), 3 deletions(-)

Thanks
Jianchao