All of lore.kernel.org
 help / color / mirror / Atom feed
From: Christoph Hellwig <hch@lst.de>
To: Kanchan Joshi <joshiiitr@gmail.com>
Cc: Christoph Hellwig <hch@lst.de>, Jens Axboe <axboe@kernel.dk>,
	"Martin K. Petersen" <martin.petersen@oracle.com>,
	Mike Snitzer <snitzer@kernel.org>,
	Mikulas Patocka <mpatocka@redhat.com>, Song Liu <song@kernel.org>,
	Yu Kuai <yukuai3@huawei.com>,
	Dan Williams <dan.j.williams@intel.com>,
	Vishal Verma <vishal.l.verma@intel.com>,
	Dave Jiang <dave.jiang@intel.com>,
	Ira Weiny <ira.weiny@intel.com>, Keith Busch <kbusch@kernel.org>,
	Sagi Grimberg <sagi@grimberg.me>,
	Chaitanya Kulkarni <kch@nvidia.com>,
	linux-block@vger.kernel.org, dm-devel@lists.linux.dev,
	linux-raid@vger.kernel.org, nvdimm@lists.linux.dev,
	linux-nvme@lists.infradead.org, linux-scsi@vger.kernel.org
Subject: Re: [PATCH 04/12] block: remove the blk_integrity_profile structure
Date: Thu, 6 Jun 2024 06:49:06 +0200	[thread overview]
Message-ID: <20240606044906.GB8395@lst.de> (raw)
In-Reply-To: <CA+1E3rJn3uNfkoFtm_am9qwQmwWvhu3nPVMaM63AJ2GBdxZTmQ@mail.gmail.com>

On Wed, Jun 05, 2024 at 08:05:20PM +0530, Kanchan Joshi wrote:
> On Wed, Jun 5, 2024 at 12:01???PM Christoph Hellwig <hch@lst.de> wrote:
> > @@ -446,13 +446,14 @@ bool bio_integrity_prep(struct bio *bio)
> >         if (bio_integrity(bio))
> >                 return true;
> >
> > +       if (!bi->csum_type)
> > +               return true;
> 
> Changes look mostly good, but trigger a behavior change for non-PI
> metadata format.
> 
> Earlier nop profile was registered for that case. And the block-layer
> continued to attach an appropriately sized meta buffer to incoming IO, even
> though it did not generate/verify. Hence, IOs don't fail.
> 
> Now also we show that the nop profile is set, but the above
> "csum_type" check ensures that
> meta buffer is not attached and REQ_INTEGRITY is not set in the bio.
> NVMe will start failing IOs with BLK_STS_NOTSUPP now [*].

Yes.  I didn't remember that odd case and failed to test it, but I can
trivially reproduce it now.

Which brings up another issue: bio_integrity_prep allocates the metadata
buffer using kmalloc, so we'll leak write random kernel memory to the
devices for this case which is ... not good.  I guess for stable fixes
and backports I'll add a real generate_fn that just zeroes all the
memory for now.


  reply	other threads:[~2024-06-06  4:49 UTC|newest]

Thread overview: 34+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-06-05  6:28 move integrity settings to queue_limits Christoph Hellwig
2024-06-05  6:28 ` [PATCH 01/12] dm-integrity: use the nop integrity profile Christoph Hellwig
2024-06-05 14:52   ` Milan Broz
2024-06-06  4:45     ` Christoph Hellwig
2024-06-06  0:12   ` Chaitanya Kulkarni
2024-06-05  6:28 ` [PATCH 02/12] block: remove the unused BIP_{CTRL,DISK}_NOCHECK flags Christoph Hellwig
2024-06-05 16:16   ` Bart Van Assche
2024-06-05 23:31   ` Kanchan Joshi
2024-06-06  0:13   ` Chaitanya Kulkarni
2024-06-05  6:28 ` [PATCH 03/12] block: remove the BIP_IP_CHECKSUM flag Christoph Hellwig
2024-06-05 16:21   ` Bart Van Assche
2024-06-05 23:31   ` Kanchan Joshi
2024-06-06  0:14   ` Chaitanya Kulkarni
2024-06-05  6:28 ` [PATCH 04/12] block: remove the blk_integrity_profile structure Christoph Hellwig
2024-06-05 14:35   ` Kanchan Joshi
2024-06-06  4:49     ` Christoph Hellwig [this message]
2024-06-05 16:31   ` Bart Van Assche
2024-06-06  4:50     ` Christoph Hellwig
2024-06-06 15:38       ` Bart Van Assche
2024-06-05  6:28 ` [PATCH 05/12] block: remove the blk_flush_integrity call in blk_integrity_unregister Christoph Hellwig
2024-06-05  6:28 ` [PATCH 06/12] block: factor out flag_{store,show} helper for integrity Christoph Hellwig
2024-06-05 16:00   ` Keith Busch
2024-06-06  0:16   ` Chaitanya Kulkarni
2024-06-05  6:28 ` [PATCH 07/12] block: use kstrtoul in flag_store Christoph Hellwig
2024-06-05 16:00   ` Keith Busch
2024-06-06  0:16   ` Chaitanya Kulkarni
2024-06-05  6:28 ` [PATCH 08/12] block: don't pretend to generate/verify for non-PI metadata Christoph Hellwig
2024-06-05  6:28 ` [PATCH 09/12] block: don't require stable pages " Christoph Hellwig
2024-06-05  6:28 ` [PATCH 10/12] block: bypass the STABLE_WRITES flag for protection information Christoph Hellwig
2024-06-05  6:28 ` [PATCH 11/12] block: invert the BLK_INTEGRITY_{GENERATE,VERIFY} flags Christoph Hellwig
2024-06-06  0:20   ` Chaitanya Kulkarni
2024-06-05  6:28 ` [PATCH 12/12] block: move integrity information into queue_limits Christoph Hellwig
2024-06-05 16:56   ` Bart Van Assche
2024-06-06  4:51     ` Christoph Hellwig

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=20240606044906.GB8395@lst.de \
    --to=hch@lst.de \
    --cc=axboe@kernel.dk \
    --cc=dan.j.williams@intel.com \
    --cc=dave.jiang@intel.com \
    --cc=dm-devel@lists.linux.dev \
    --cc=ira.weiny@intel.com \
    --cc=joshiiitr@gmail.com \
    --cc=kbusch@kernel.org \
    --cc=kch@nvidia.com \
    --cc=linux-block@vger.kernel.org \
    --cc=linux-nvme@lists.infradead.org \
    --cc=linux-raid@vger.kernel.org \
    --cc=linux-scsi@vger.kernel.org \
    --cc=martin.petersen@oracle.com \
    --cc=mpatocka@redhat.com \
    --cc=nvdimm@lists.linux.dev \
    --cc=sagi@grimberg.me \
    --cc=snitzer@kernel.org \
    --cc=song@kernel.org \
    --cc=vishal.l.verma@intel.com \
    --cc=yukuai3@huawei.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.