public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: Caleb Sander Mateos <csander@purestorage.com>
To: Keith Busch <kbusch@kernel.org>, Jens Axboe <axboe@kernel.dk>,
	Christoph Hellwig <hch@lst.de>, Sagi Grimberg <sagi@grimberg.me>,
	Chaitanya Kulkarni <kch@nvidia.com>
Cc: linux-nvme@lists.infradead.org, linux-kernel@vger.kernel.org,
	Caleb Sander Mateos <csander@purestorage.com>
Subject: [PATCH 0/6] nvme: improve discard_granularity spec compliance
Date: Thu, 19 Feb 2026 20:28:03 -0700	[thread overview]
Message-ID: <20260220032809.758089-1-csander@purestorage.com> (raw)

NVMe block devices always report the logical block size for the
discard_granularity queue limit. However, more accurate values may be
available in the NPDG/NPDA fields of the Identify Namespace structure or
the NPDGL/NPDAL fields of the NVM Command Set Specific Identify
Namespace structure. So use these values to compute discard_granularity.

Also fix the use of the OPTPERF field to better comply with version 2.1
of the NVMe spec.

Update the target side to report NPDGL and NPDAL as wel, in case the
discard granularity doesn't fit in the 16-bit NPDG and NPDA fields.

Caleb Sander Mateos (6):
  nvme: add preferred I/O size fields to struct nvme_id_ns_nvm
  nvme: update nvme_id_ns OPTPERF constants
  nvme: always issue I/O Command Set specific Identify Namespace
  nvme: set discard_granularity from NPDG/NPDA
  nvmet: use NVME_NS_FEAT_OPTPERF_SHIFT
  nvmet: report NPDGL and NPDAL

 drivers/nvme/host/core.c          | 21 ++++++++++++++++-----
 drivers/nvme/target/admin-cmd.c   |  2 ++
 drivers/nvme/target/io-cmd-bdev.c | 19 +++++++++++++++----
 drivers/nvme/target/nvmet.h       |  2 ++
 include/linux/nvme.h              | 10 ++++++++--
 5 files changed, 43 insertions(+), 11 deletions(-)

-- 
2.45.2


             reply	other threads:[~2026-02-20  3:28 UTC|newest]

Thread overview: 18+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-02-20  3:28 Caleb Sander Mateos [this message]
2026-02-20  3:28 ` [PATCH 1/6] nvme: add preferred I/O size fields to struct nvme_id_ns_nvm Caleb Sander Mateos
2026-02-20 16:06   ` Christoph Hellwig
2026-02-21  2:55     ` Caleb Sander Mateos
2026-02-23 13:24       ` Christoph Hellwig
2026-02-20  3:28 ` [PATCH 2/6] nvme: update nvme_id_ns OPTPERF constants Caleb Sander Mateos
2026-02-20 16:07   ` Christoph Hellwig
2026-02-20 16:17     ` Caleb Sander Mateos
2026-02-20 16:20       ` Christoph Hellwig
2026-02-20  3:28 ` [PATCH 3/6] nvme: always issue I/O Command Set specific Identify Namespace Caleb Sander Mateos
2026-02-20 16:08   ` Christoph Hellwig
2026-02-20  3:28 ` [PATCH 4/6] nvme: set discard_granularity from NPDG/NPDA Caleb Sander Mateos
2026-02-20 16:10   ` Christoph Hellwig
2026-02-20  3:28 ` [PATCH 5/6] nvmet: use NVME_NS_FEAT_OPTPERF_SHIFT Caleb Sander Mateos
2026-02-20 16:10   ` Christoph Hellwig
2026-02-20  3:28 ` [PATCH 6/6] nvmet: report NPDGL and NPDAL Caleb Sander Mateos
2026-02-20 16:11   ` Christoph Hellwig
2026-02-20 16:05 ` [PATCH 0/6] nvme: improve discard_granularity spec compliance 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=20260220032809.758089-1-csander@purestorage.com \
    --to=csander@purestorage.com \
    --cc=axboe@kernel.dk \
    --cc=hch@lst.de \
    --cc=kbusch@kernel.org \
    --cc=kch@nvidia.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-nvme@lists.infradead.org \
    --cc=sagi@grimberg.me \
    /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