From: dan.j.williams@intel.com (Williams, Dan J)
Subject: Block integrity registration update
Date: Tue, 13 Oct 2015 01:53:34 +0000 [thread overview]
Message-ID: <1444701214.9780.23.camel@intel.com> (raw)
In-Reply-To: <1444696266.9780.13.camel@intel.com>
On Mon, 2015-10-12@17:31 -0700, Dan J Williams wrote:
> On Mon, 2015-10-12@17:05 -0400, Martin K. Petersen wrote:
> > As requested, here's the integrity registration update for 4.4. Only
> > delta is patch 5 which retains the non-PI metadata check as requested by
> > Keith as well as the DM rework by Mike. I rebased on top of
> > block/for-4.4/drivers to accommodate the NVMe shuffle.
> >
> > [PATCH 1/5] block: Move integrity kobject to struct gendisk
> > [PATCH 2/5] block: Consolidate static integrity profile properties
> > [PATCH 3/5] block: Reduce the size of struct blk_integrity
> > [PATCH 4/5] block: Export integrity data interval size in sysfs
> > [PATCH 5/5] block: Inline blk_integrity in struct gendisk
> >
>
> I'm triggering the oops below with the libnvdimm unit tests when running
> these on top of block.git#for-4.4/drivers...
A little tracing reveals:
[ 35.116011] ndctl-2226 3.... 37126789us : blk_integrity_unregister: pmem1s: from: nvdimm_namespace_detach_btt [nd_btt]
[ 35.116011] ndctl-2226 3.... 37185506us : bio_integrity_endio: pmem1s
[ 35.116011] <...>-302 3.... 37185560us : bio_integrity_process: pmem1s
...i.e. that we're destroying the integrity profile while i/o is still
in flight. As far as I can see any driver that calls
blk_integrity_unregister() before blk_cleanup_queue() can hit this.
However, with the change to static allocation I'm not sure why a driver
would ever need to call blk_integrity_unregister() in its shutdown path.
It seems this would only be necessary for disabling integrity at run
time, but it can only do it safely when the queue is known to be idle.
Is there a way to solve this without the generic blk_freeze_queue()
implementation? [1]. The immediate fix for libnvdimm is to just stop
calling blk_integrity_unregister().
[1]: https://lists.01.org/pipermail/linux-nvdimm/2015-October/002388.html
next prev parent reply other threads:[~2015-10-13 1:53 UTC|newest]
Thread overview: 60+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-07-14 17:57 [PATCH] NVMe: Reread partitions on metadata formats Keith Busch
2015-07-14 18:49 ` Jens Axboe
2015-07-14 19:01 ` Paul Grabinar
2015-07-15 3:48 ` Dan Williams
2015-07-15 21:36 ` Jens Axboe
2015-07-15 22:28 ` Keith Busch
2015-07-16 9:19 ` Christoph Hellwig
2015-07-17 1:47 ` Martin K. Petersen
2015-07-17 9:30 ` Christoph Hellwig
2015-07-21 6:02 ` Data integrity tweaks Martin K. Petersen
2015-07-21 6:02 ` [PATCH 1/5] block: Move integrity kobject to struct gendisk Martin K. Petersen
2015-07-22 11:32 ` Sagi Grimberg
2015-07-21 6:02 ` [PATCH 2/5] block: Consolidate static integrity profile properties Martin K. Petersen
2015-07-22 11:33 ` Sagi Grimberg
2015-07-21 6:02 ` [PATCH 3/5] block: Reduce the size of struct blk_integrity Martin K. Petersen
2015-07-21 11:53 ` Christoph Hellwig
2015-07-24 15:14 ` Martin K. Petersen
2015-07-22 11:35 ` Sagi Grimberg
2015-07-21 6:02 ` [PATCH 4/5] block: Export integrity data interval size in sysfs Martin K. Petersen
2015-07-22 11:37 ` Sagi Grimberg
2015-07-24 15:26 ` Martin K. Petersen
2015-07-21 6:02 ` [PATCH 5/5] block: Inline blk_integrity in struct gendisk Martin K. Petersen
2015-07-21 12:01 ` Christoph Hellwig
2015-08-20 20:41 ` Simplify block integrity registration Martin K. Petersen
2015-08-20 20:41 ` [PATCH 1/5] block: Move integrity kobject to struct gendisk Martin K. Petersen
2015-09-16 17:26 ` Mike Snitzer
2015-08-20 20:41 ` [PATCH 2/5] block: Consolidate static integrity profile properties Martin K. Petersen
2015-08-20 20:41 ` [PATCH 3/5] block: Reduce the size of struct blk_integrity Martin K. Petersen
2015-08-20 20:41 ` [PATCH 4/5] block: Export integrity data interval size in sysfs Martin K. Petersen
2015-08-20 20:41 ` [PATCH 5/5] block: Inline blk_integrity in struct gendisk Martin K. Petersen
2015-08-21 23:47 ` Busch, Keith
2015-08-27 0:25 ` Martin K. Petersen
2015-08-27 0:25 ` [PATCH] " Martin K. Petersen
2015-08-27 8:28 ` Christoph Hellwig
2015-09-03 20:38 ` Keith Busch
2015-09-04 3:25 ` Martin K. Petersen
2015-10-12 21:05 ` Block integrity registration update Martin K. Petersen
2015-10-12 21:05 ` [PATCH 1/5] block: Move integrity kobject to struct gendisk Martin K. Petersen
2015-10-12 21:05 ` [PATCH 2/5] block: Consolidate static integrity profile properties Martin K. Petersen
2015-10-14 1:11 ` Dan Williams
2015-10-14 7:23 ` Christoph Hellwig
2015-10-14 19:42 ` Williams, Dan J
2015-10-14 19:47 ` hch
2015-10-14 20:00 ` Williams, Dan J
2015-10-14 22:42 ` Martin K. Petersen
2015-10-12 21:05 ` [PATCH 3/5] block: Reduce the size of struct blk_integrity Martin K. Petersen
2015-10-12 21:05 ` [PATCH 4/5] block: Export integrity data interval size in sysfs Martin K. Petersen
2015-10-12 21:05 ` [PATCH 5/5] block: Inline blk_integrity in struct gendisk Martin K. Petersen
2015-10-12 23:06 ` Mike Snitzer
2015-10-13 0:31 ` Block integrity registration update Williams, Dan J
2015-10-13 1:53 ` Williams, Dan J [this message]
2015-10-13 12:26 ` hch
2015-10-13 17:38 ` Dan Williams
2015-09-16 1:07 ` [PATCH 5/5] block: Inline blk_integrity in struct gendisk Mike Snitzer
2015-09-21 20:45 ` Mike Snitzer
2015-10-09 7:36 ` Christoph Hellwig
2015-10-12 1:17 ` Martin K. Petersen
2015-08-20 20:45 ` Simplify block integrity registration Mike Snitzer
2015-07-17 1:44 ` [PATCH] NVMe: Reread partitions on metadata formats Martin K. Petersen
2015-07-15 17:37 ` Paul Grabinar
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1444701214.9780.23.camel@intel.com \
--to=dan.j.williams@intel.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).