[PATCH 00/11] blk_integrity lifetime fixes

Dan Williams dan.j.williams at intel.com
Tue Oct 13 19:37:54 PDT 2015


Sorry, flubbed the nvme mailing list address these patches are also in
the nvdimm patchwork and cc'd to that list if you missed them...

https://lists.01.org/pipermail/linux-nvdimm/2015-October/002430.html
https://patchwork.kernel.org/project/linux-nvdimm/list/

On Tue, Oct 13, 2015 at 7:27 PM, Dan Williams <dan.j.williams at intel.com> wrote:
> The recent "Block integrity registration update" caused a failing
> signature that had been triggering intermittently in the libnvdimm unit
> tests to start failing reliably every run.  These tests run through all
> several blk_integrity configurations and ends up stressing the block
> device setup/teardown path.  These are incremental fixes to "Block
> integrity registration update".
>
> Patch 1: makes the failing occurrence much lower and should be folded
> into "[PATCH 2/5] block: Consolidate static integrity profile
> properties" of the "Block integrity registration update" series.
>
> Patches 2 - 6: drop now unnecessary calls to blk_integrity_unregister()
> at driver shutdown time.
>
> Patches 7 - 8: quiesce i/o while disabling blk_integrity
>
> Patch 9: pre-cursor for patches 10, 11 extends queue lifetime guarantees
> to bio-based drivers.
>
> Patch 10: move blk_integrity to the request_queue since the usage has
> more similar lifetime to the queue than the disk
>
> Patch 11: stop-gap fix to guarantee that synchronous bio-based drivers
> wait for queued bio integrity work at shutdown.
>
> ---
>
> Dan Williams (11):
>       libnvdimm: fix blk_integrity profile allocation
>       nvme: drop blk_integrity_unregister() at shutdown
>       libnvdimm, btt: drop blk_integrity_unregister() at shutdown
>       dm: drop blk_integrity_unregister() at shutdown
>       md: drop blk_integrity_unregister() at shutdown
>       scsi: drop blk_integrity_unregister() at shutdown
>       md: suspend i/o during runtime blk_integrity_unregister
>       nvme: suspend i/o during runtime blk_integrity_unregister
>       block: generic request_queue reference counting
>       block: move blk_integrity to request_queue
>       block: blk_flush_integrity() for bio-based drivers
>
>
>  block/bio-integrity.c     |    5 +++
>  block/blk-core.c          |   74 +++++++++++++++++++++++++++++++++++++-----
>  block/blk-integrity.c     |   63 ++++++++++++++++++-----------------
>  block/blk-mq-sysfs.c      |    6 ---
>  block/blk-mq.c            |   80 ++++++++++++++-------------------------------
>  block/blk-sysfs.c         |    7 +++-
>  block/blk.h               |   16 +++++++++
>  block/genhd.c             |    2 -
>  block/partition-generic.c |    2 +
>  drivers/md/dm-table.c     |    4 +-
>  drivers/md/dm.c           |    2 -
>  drivers/md/md.c           |    6 ++-
>  drivers/md/multipath.c    |    2 +
>  drivers/md/raid1.c        |    2 +
>  drivers/md/raid10.c       |    2 +
>  drivers/nvdimm/btt.c      |    1 -
>  drivers/nvdimm/core.c     |    4 +-
>  drivers/nvme/host/pci.c   |   18 ++++++----
>  drivers/scsi/sd.c         |    1 -
>  drivers/scsi/sd_dif.c     |    2 +
>  fs/block_dev.c            |    2 +
>  include/linux/blk-mq.h    |    1 -
>  include/linux/blkdev.h    |   13 +++++--
>  include/linux/genhd.h     |   16 +++------
>  24 files changed, 188 insertions(+), 143 deletions(-)



More information about the Linux-nvme mailing list