From: Damien Le Moal <dlemoal@kernel.org>
To: 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: [PATCH v2 00/15] Introduce cached report zones
Date: Mon, 3 Nov 2025 22:31:08 +0900 [thread overview]
Message-ID: <20251103133123.645038-1-dlemoal@kernel.org> (raw)
This patch series implements a cached report zones using information
from the block layer zone write plugs and a new zone condition tracking.
This avoids having to execute slow report zones commands on the device
when for instance mounting file systems, which can significantly speed
things up, especially in setups with multiple SMR HDDs (e.g. a BTRFS
RAID volume).
The first patch improves handling of zone management commands. Patch 2
fixes zone resource updates and the following 3 patches cleanup the zone
code in preparation for introducing cached zone report support.
From patch 6 to 13, cached report zones is implemented and made
available to users with a new ioctl() command.
Finally, patches 14 and 15 introduce the use of cached report zones in
the mount operation of XFS and BTRFS.
These patches are against Jens' for-next tree.
Changes from v1:
- Move the patch "block: handle zone management operations completions"
at the beginning of the series and added a Fixes tag.
- Reworked a little patch 2 as suggested by Bart (error path handling)
- Added patch 8 as requested by Bart.
- Added patch 12 as suggested by Bart.
- Corrected various typos in commit messages and code comments.
- Added review tags
Damien Le Moal (15):
block: handle zone management operations completions
block: freeze queue when updating zone resources
block: cleanup blkdev_report_zones()
block: introduce disk_report_zone()
block: reorganize struct blk_zone_wplug
block: use zone condition to determine conventional zones
block: track zone conditions
block: refactor blkdev_report_zones() code
block: introduce blkdev_get_zone_info()
block: introduce blkdev_report_zones_cached()
block: introduce BLKREPORTZONESV2 ioctl
block: improve zone_wplugs debugfs attribute output
block: add zone write plug condition to debugfs zone_wplugs
btrfs: use blkdev_report_zones_cached()
xfs: use blkdev_report_zones_cached()
block/blk-zoned.c | 788 +++++++++++++++++++++++-------
block/blk.h | 14 +
block/ioctl.c | 1 +
drivers/block/null_blk/null_blk.h | 3 +-
drivers/block/null_blk/zoned.c | 4 +-
drivers/block/ublk_drv.c | 4 +-
drivers/block/virtio_blk.c | 11 +-
drivers/block/zloop.c | 4 +-
drivers/md/dm-zone.c | 54 +-
drivers/md/dm.h | 3 +-
drivers/nvme/host/core.c | 5 +-
drivers/nvme/host/multipath.c | 4 +-
drivers/nvme/host/nvme.h | 2 +-
drivers/nvme/host/zns.c | 10 +-
drivers/scsi/sd.h | 2 +-
drivers/scsi/sd_zbc.c | 17 +-
fs/btrfs/zoned.c | 11 +-
fs/xfs/xfs_zone_alloc.c | 2 +-
include/linux/blkdev.h | 49 +-
include/linux/device-mapper.h | 10 +-
include/uapi/linux/blkzoned.h | 41 +-
include/uapi/linux/fs.h | 2 +-
22 files changed, 767 insertions(+), 274 deletions(-)
base-commit: ba6a8208cc205c6545c610b5863ea89466fc486a
--
2.51.0
next reply other threads:[~2025-11-03 13:35 UTC|newest]
Thread overview: 41+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-11-03 13:31 Damien Le Moal [this message]
2025-11-03 13:31 ` [PATCH v2 01/15] block: handle zone management operations completions Damien Le Moal
2025-11-03 13:53 ` Johannes Thumshirn
2025-11-03 13:31 ` [PATCH v2 02/15] block: freeze queue when updating zone resources Damien Le Moal
2025-11-03 13:46 ` Christoph Hellwig
2025-11-03 13:55 ` Johannes Thumshirn
2025-11-03 13:31 ` [PATCH v2 03/15] block: cleanup blkdev_report_zones() Damien Le Moal
2025-11-03 13:56 ` Johannes Thumshirn
2025-11-03 13:31 ` [PATCH v2 04/15] block: introduce disk_report_zone() Damien Le Moal
2025-11-03 14:01 ` Johannes Thumshirn
2025-11-04 0:36 ` kernel test robot
2025-11-03 13:31 ` [PATCH v2 05/15] block: reorganize struct blk_zone_wplug Damien Le Moal
2025-11-03 14:01 ` Johannes Thumshirn
2025-11-03 13:31 ` [PATCH v2 06/15] block: use zone condition to determine conventional zones Damien Le Moal
2025-11-03 14:52 ` Johannes Thumshirn
2025-11-03 13:31 ` [PATCH v2 07/15] block: track zone conditions Damien Le Moal
2025-11-03 15:00 ` Johannes Thumshirn
2025-11-03 13:31 ` [PATCH v2 08/15] block: refactor blkdev_report_zones() code Damien Le Moal
2025-11-03 13:47 ` Christoph Hellwig
2025-11-03 15:01 ` Johannes Thumshirn
2025-11-03 13:31 ` [PATCH v2 09/15] block: introduce blkdev_get_zone_info() Damien Le Moal
2025-11-03 15:12 ` Johannes Thumshirn
2025-11-03 13:31 ` [PATCH v2 10/15] block: introduce blkdev_report_zones_cached() Damien Le Moal
2025-11-03 13:31 ` [PATCH v2 11/15] block: introduce BLKREPORTZONESV2 ioctl Damien Le Moal
2025-11-03 15:17 ` Johannes Thumshirn
2025-11-03 22:12 ` Bart Van Assche
2025-11-03 23:01 ` Damien Le Moal
2025-11-04 0:15 ` Damien Le Moal
2025-11-04 1:01 ` Bart Van Assche
2025-11-04 1:20 ` Damien Le Moal
2025-11-04 7:23 ` Johannes Thumshirn
2025-11-04 7:38 ` Damien Le Moal
2025-11-03 13:31 ` [PATCH v2 12/15] block: improve zone_wplugs debugfs attribute output Damien Le Moal
2025-11-03 13:47 ` Christoph Hellwig
2025-11-03 15:18 ` Johannes Thumshirn
2025-11-03 13:31 ` [PATCH v2 13/15] block: add zone write plug condition to debugfs zone_wplugs Damien Le Moal
2025-11-03 15:23 ` Johannes Thumshirn
2025-11-03 13:31 ` [PATCH v2 14/15] btrfs: use blkdev_report_zones_cached() Damien Le Moal
2025-11-03 15:26 ` Johannes Thumshirn
2025-11-03 13:31 ` [PATCH v2 15/15] xfs: " Damien Le Moal
2025-11-03 15:27 ` Johannes Thumshirn
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=20251103133123.645038-1-dlemoal@kernel.org \
--to=dlemoal@kernel.org \
--cc=axboe@kernel.dk \
--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;
as well as URLs for NNTP newsgroup(s).