public inbox for linux-ext4@vger.kernel.org
 help / color / mirror / Atom feed
From: Robert Pang <robertpang@google.com>
To: yi.zhang@huaweicloud.com, Zhang Yi <yi.zhang@huawei.com>
Cc: bmarzins@redhat.com, brauner@kernel.org, chaitanyak@nvidia.com,
	 chengzhihao1@huawei.com, djwong@kernel.org,
	dm-devel@lists.linux.dev,  hch@lst.de, john.g.garry@oracle.com,
	linux-block@vger.kernel.org,  linux-ext4@vger.kernel.org,
	linux-fsdevel@vger.kernel.org,  linux-kernel@vger.kernel.org,
	linux-nvme@lists.infradead.org,  linux-scsi@vger.kernel.org,
	linux-xfs@vger.kernel.org,  martin.petersen@oracle.com,
	shinichiro.kawasaki@wdc.com, tytso@mit.edu,
	 yangerkun@huawei.com, yukuai3@huawei.com, robertpang@google.com
Subject: Re: [PATCH v2 2/9] nvme: set max_hw_wzeroes_unmap_sectors if device supports DEAC bit
Date: Tue, 24 Feb 2026 16:05:31 -0800	[thread overview]
Message-ID: <20260225000531.3658802-1-robertpang@google.com> (raw)
In-Reply-To: <20250619111806.3546162-3-yi.zhang@huaweicloud.com>

Dear Zhang Yi,

In reviewing your patch series implementing support for the
FALLOC_FL_WRITE_ZEROES flag, I noted the logic propagating
max_write_zeroes_sectors to max_hw_wzeroes_unmap_sectors in commit 545fb46e5bc6
"nvme: set max_hw_wzeroes_unmap_sectors if device supports DEAC bit" [1]. This
appears to be intended for devices that support the Write Zeroes command
alongside the DEAC bit to indicate unmap capability.

Furthermore, within core.c, the NVME_QUIRK_DEALLOCATE_ZEROES quirk already
identifies devices that deterministically return zeroes after a deallocate
command [2]. This quirk currently enables Write Zeroes support via discard in
existing implementations [3, 4].

Given this, would it be appropriate to respect NVME_QUIRK_DEALLOCATE_ZEROES also
to enable unmap Write Zeroes for these devices, following the prior commit
6e02318eaea5 "nvme: add support for the Write Zeroes command" [5]? I have
included a proposed change to nvme_update_ns_info_block() below for your
consideration.

Best regards
Robert Pang

diff --git a/drivers/nvme/host/core.c b/drivers/nvme/host/core.c
index f5ebcaa2f859..9c7e2cabfab3 100644
--- a/drivers/nvme/host/core.c
+++ b/drivers/nvme/host/core.c
@@ -2422,7 +2422,9 @@ static int nvme_update_ns_info_block(struct nvme_ns *ns,
         * require that, it must be a no-op if reads from deallocated data
         * do not return zeroes.
         */
-       if ((id->dlfeat & 0x7) == 0x1 && (id->dlfeat & (1 << 3))) {
+       if ((id->dlfeat & 0x7) == 0x1 && (id->dlfeat & (1 << 3)) ||
+           (ns->ctrl->quirks & NVME_QUIRK_DEALLOCATE_ZEROES) &&
+           (ns->ctrl->oncs & NVME_CTRL_ONCS_DSM)) {
                ns->head->features |= NVME_NS_DEAC;
                lim.max_hw_wzeroes_unmap_sectors = lim.max_write_zeroes_sectors;
        }

[1] https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=545fb46e5bc6
[2] https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/drivers/nvme/host/nvme.h#n72
[3] https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/drivers/nvme/host/core.c#n938
[4] https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/drivers/nvme/host/core.c#n2122
[5] https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=6e02318eaea5

  parent reply	other threads:[~2026-02-25  0:07 UTC|newest]

Thread overview: 25+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-06-19 11:17 [PATCH v2 0/9] fallocate: introduce FALLOC_FL_WRITE_ZEROES flag Zhang Yi
2025-06-19 11:17 ` [PATCH v2 1/9] block: introduce max_{hw|user}_wzeroes_unmap_sectors to queue limits Zhang Yi
2025-06-23  5:39   ` Christoph Hellwig
2025-08-21 12:55   ` John Garry
2025-08-23  4:37     ` Zhang Yi
2025-06-19 11:17 ` [PATCH v2 2/9] nvme: set max_hw_wzeroes_unmap_sectors if device supports DEAC bit Zhang Yi
2025-06-23  5:40   ` Christoph Hellwig
2026-02-25  0:05   ` Robert Pang [this message]
2026-02-25  2:32     ` Zhang Yi
2026-02-25 21:43       ` Robert Pang
2026-02-26 11:09         ` Zhang Yi
2026-02-27  1:34           ` Robert Pang
2025-06-19 11:18 ` [PATCH v2 3/9] nvmet: set WZDS and DRB if device enables unmap write zeroes operation Zhang Yi
2025-06-23  5:40   ` Christoph Hellwig
2025-06-19 11:18 ` [PATCH v2 4/9] scsi: sd: set max_hw_wzeroes_unmap_sectors if device supports SD_ZERO_*_UNMAP Zhang Yi
2025-06-19 11:18 ` [PATCH v2 5/9] dm: clear unmap write zeroes limits when disabling write zeroes Zhang Yi
2025-06-19 11:18 ` [PATCH v2 6/9] fs: introduce FALLOC_FL_WRITE_ZEROES to fallocate Zhang Yi
2025-06-19 11:18 ` [PATCH v2 7/9] block: factor out common part in blkdev_fallocate() Zhang Yi
2025-06-19 11:18 ` [PATCH v2 8/9] block: add FALLOC_FL_WRITE_ZEROES support Zhang Yi
2025-06-19 11:18 ` [PATCH v2 9/9] ext4: " Zhang Yi
2025-06-23 10:46 ` [PATCH v2 0/9] fallocate: introduce FALLOC_FL_WRITE_ZEROES flag Christian Brauner
2025-07-03  3:35   ` Zhang Yi
2025-07-04  8:39     ` Christian Brauner
2025-06-23 15:08 ` Martin K. Petersen
2025-06-26 13:57   ` Zhang Yi

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=20260225000531.3658802-1-robertpang@google.com \
    --to=robertpang@google.com \
    --cc=bmarzins@redhat.com \
    --cc=brauner@kernel.org \
    --cc=chaitanyak@nvidia.com \
    --cc=chengzhihao1@huawei.com \
    --cc=djwong@kernel.org \
    --cc=dm-devel@lists.linux.dev \
    --cc=hch@lst.de \
    --cc=john.g.garry@oracle.com \
    --cc=linux-block@vger.kernel.org \
    --cc=linux-ext4@vger.kernel.org \
    --cc=linux-fsdevel@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-nvme@lists.infradead.org \
    --cc=linux-scsi@vger.kernel.org \
    --cc=linux-xfs@vger.kernel.org \
    --cc=martin.petersen@oracle.com \
    --cc=shinichiro.kawasaki@wdc.com \
    --cc=tytso@mit.edu \
    --cc=yangerkun@huawei.com \
    --cc=yi.zhang@huawei.com \
    --cc=yi.zhang@huaweicloud.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox