public inbox for linux-scsi@vger.kernel.org
 help / color / mirror / Atom feed
From: Damien Le Moal <dlemoal@kernel.org>
To: Bart Van Assche <bvanassche@acm.org>,
	Jens Axboe <axboe@kernel.dk>,
	linux-block@vger.kernel.org, linux-nvme@lists.infradead.org,
	Keith Busch <keith.busch@wdc.com>, Christoph Hellwig <hch@lst.de>,
	dm-devel@lists.linux.dev, Mike Snitzer <snitzer@kernel.org>,
	Mikulas Patocka <mpatocka@redhat.com>,
	"Martin K . Petersen" <martin.petersen@oracle.com>,
	linux-scsi@vger.kernel.org, linux-xfs@vger.kernel.org,
	Carlos Maiolino <cem@kernel.org>,
	linux-btrfs@vger.kernel.org, David Sterba <dsterba@suse.com>
Subject: Re: [PATCH 07/13] block: track zone conditions
Date: Tue, 4 Nov 2025 07:40:49 +0900	[thread overview]
Message-ID: <88b37ced-cb7b-46c8-958e-778bde7baa0d@kernel.org> (raw)
In-Reply-To: <95c729d6-fd73-4480-af1c-68075b31cd1d@acm.org>

On 11/4/25 00:48, Bart Van Assche wrote:
> On 11/2/25 10:05 PM, Damien Le Moal wrote:
>> On 11/1/25 06:17, Bart Van Assche wrote:
>>> On 10/30/25 11:13 PM, Damien Le Moal wrote:
>>>> Implement tracking of the runtime changes to zone conditions using
>>>> the new cond field in struct blk_zone_wplug. The size of this structure
>>>> remains 112 Bytes as the new field replaces the 4 Bytes padding at the
>>>> end of the structure. For zones that do not have a zone write plug, the
>>>> zones_cond array of a disk is used to track changes to zone conditions,
>>>> e.g. when a zone reset, reset all or finish operation is executed.
>>>
>>> Why is it necessary to track the condition of sequential zones that do
>>> not have a zone write plug? Please explain what the use cases are.
>>
>> Because zones that do not have a zone write plug can be empty OR full.
> 
> Why does the block layer have to track this information? Filesystems can
> easily derive this information from the filesystem metadata information,
> isn't it?

The title of this patch series is: Introduce cached report zones.
For that, the answer to your question is I think obvious. Otherwise, how do you
exactly propose to report correctly the condition of a zone without have that
condition tracked and cached in memory ?

The point here is to provide as much information (almost) as a device generated
report zone, but much fasterer, using cached information only, thus avoiding any
(much slower) command execution on the device. And as these patches show, that
is not that hard to do, with the trade-off of a slightly higher memory usage per
device.

See the numbers for XFS and BTRFS mount speedup in patch 14 and 15. The gains
are even higher when mounting a large BTRFS RAID volume with many SMR drives.


-- 
Damien Le Moal
Western Digital Research

  parent reply	other threads:[~2025-11-03 22:40 UTC|newest]

Thread overview: 63+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-10-31  6:12 [PATCH 00/13] Introduce cached report zones Damien Le Moal
2025-10-31  6:12 ` [PATCH 01/13] block: freeze queue when updating zone resources Damien Le Moal
2025-10-31  8:44   ` Christoph Hellwig
2025-10-31 17:48   ` Bart Van Assche
2025-11-03  5:55     ` Damien Le Moal
2025-11-03  7:18       ` Daniel Vacek
2025-11-03  7:23         ` Damien Le Moal
2025-11-03  7:30         ` Damien Le Moal
2025-11-03 11:17   ` Hannes Reinecke
2025-10-31  6:12 ` [PATCH 02/13] block: cleanup blkdev_report_zones() Damien Le Moal
2025-10-31  8:45   ` Christoph Hellwig
2025-10-31 17:55   ` Bart Van Assche
2025-11-03 11:15   ` Hannes Reinecke
2025-10-31  6:12 ` [PATCH 03/13] block: handle zone management operations completions Damien Le Moal
2025-10-31  8:46   ` Christoph Hellwig
2025-10-31 18:01   ` Bart Van Assche
2025-11-03  6:25     ` Damien Le Moal
2025-11-03 11:41   ` Hannes Reinecke
2025-11-03 12:59     ` Damien Le Moal
2025-10-31  6:12 ` [PATCH 04/13] block: introduce disk_report_zone() Damien Le Moal
2025-10-31  8:47   ` Christoph Hellwig
2025-10-31 20:54   ` Bart Van Assche
2025-11-03  5:56     ` Damien Le Moal
2025-10-31  6:12 ` [PATCH 05/13] block: reorganize struct blk_zone_wplug Damien Le Moal
2025-10-31  8:47   ` Christoph Hellwig
2025-10-31 20:55   ` Bart Van Assche
2025-10-31  6:13 ` [PATCH 06/13] block: use zone condition to determine conventional zones Damien Le Moal
2025-10-31  8:48   ` Christoph Hellwig
2025-10-31 21:04   ` Bart Van Assche
2025-11-03  6:00     ` Damien Le Moal
2025-10-31  6:13 ` [PATCH 07/13] block: track zone conditions Damien Le Moal
2025-10-31  8:51   ` Christoph Hellwig
2025-10-31 21:17   ` Bart Van Assche
2025-11-03  6:05     ` Damien Le Moal
2025-11-03 15:48       ` Bart Van Assche
2025-11-03 16:34         ` Chaitanya Kulkarni
2025-11-03 22:53           ` Damien Le Moal
2025-11-04 12:03             ` Christoph Hellwig
2025-11-03 18:31         ` Bart Van Assche
2025-11-03 22:34           ` Damien Le Moal
2025-11-03 22:40         ` Damien Le Moal [this message]
2025-10-31  6:13 ` [PATCH 08/13] block: introduce blkdev_get_zone_info() Damien Le Moal
2025-10-31  8:52   ` Christoph Hellwig
2025-10-31 21:40   ` Bart Van Assche
2025-11-03  6:08     ` Damien Le Moal
2025-11-03 10:29       ` Christoph Hellwig
2025-10-31  6:13 ` [PATCH 09/13] block: introduce blkdev_report_zones_cached() Damien Le Moal
2025-10-31  8:53   ` Christoph Hellwig
2025-10-31 21:53   ` Bart Van Assche
2025-11-03  6:12     ` Damien Le Moal
2025-11-03  7:18     ` Damien Le Moal
2025-10-31  6:13 ` [PATCH 10/13] block: introduce BLKREPORTZONESV2 ioctl Damien Le Moal
2025-10-31  8:54   ` Christoph Hellwig
2025-10-31 16:52   ` Bart Van Assche
2025-11-03  5:51     ` Damien Le Moal
2025-11-03 10:23       ` Christoph Hellwig
2025-10-31  6:13 ` [PATCH 11/13] block: add zone write plug condition to debugfs zone_wplugs Damien Le Moal
2025-10-31  8:54   ` Christoph Hellwig
2025-10-31 21:55   ` Bart Van Assche
2025-10-31  6:13 ` [PATCH 12/13] btrfs: use blkdev_report_zones_cached() Damien Le Moal
2025-10-31 19:01   ` David Sterba
2025-10-31  6:13 ` [PATCH 13/13] xfs: " Damien Le Moal
2025-10-31  8:55   ` 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=88b37ced-cb7b-46c8-958e-778bde7baa0d@kernel.org \
    --to=dlemoal@kernel.org \
    --cc=axboe@kernel.dk \
    --cc=bvanassche@acm.org \
    --cc=cem@kernel.org \
    --cc=dm-devel@lists.linux.dev \
    --cc=dsterba@suse.com \
    --cc=hch@lst.de \
    --cc=keith.busch@wdc.com \
    --cc=linux-block@vger.kernel.org \
    --cc=linux-btrfs@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=mpatocka@redhat.com \
    --cc=snitzer@kernel.org \
    /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