From: Anand Jain <anand.jain@oracle.com>
To: Naohiro Aota <naohiro.aota@wdc.com>,
linux-btrfs@vger.kernel.org, dsterba@suse.com
Cc: hare@suse.com, linux-fsdevel@vger.kernel.org,
Jens Axboe <axboe@kernel.dk>,
Christoph Hellwig <hch@infradead.org>,
"Darrick J. Wong" <darrick.wong@oracle.com>
Subject: Re: [PATCH v10 00/41] btrfs: zoned block device support
Date: Tue, 10 Nov 2020 22:00:14 +0800 [thread overview]
Message-ID: <1a58611e-3116-57e1-3462-bb1888416d67@oracle.com> (raw)
In-Reply-To: <cover.1605007036.git.naohiro.aota@wdc.com>
On 10/11/20 7:26 pm, Naohiro Aota wrote:
> This series adds zoned block device support to btrfs.
>
> This series is also available on github.
> Kernel https://github.com/naota/linux/tree/btrfs-zoned-v10
This branch is not reachable. Should it be
https://github.com/naota/linux/tree/btrfs-zoned-for-v10 ?
But the commits in this branch are at a pre-fixups stage.
Thanks, Anand
> Userland https://github.com/naota/btrfs-progs/tree/btrfs-zoned
> xfstests https://github.com/naota/fstests/tree/btrfs-zoned
>
> Userland tool depends on patched util-linux (libblkid and wipefs) to handle
> log-structured superblock. To ease the testing, pre-compiled static linked
> userland tools are available here:
> https://wdc.app.box.com/s/fnhqsb3otrvgkstq66o6bvdw6tk525kp
>
> This v10 still leaves the following issues left for later fix. But, the
> first part of the series should be good shape to be merged.
> - Bio submission path & splitting an ordered extent
> - Redirtying freed tree blocks
> - Switch to keeping it dirty
> - Not working correctly for now
> - Dedicated tree-log block group
> - We need tree-log for zoned device
> - Dbench (32 clients) is 85% slower with "-o notreelog"
> - Need to separate tree-log block group from other metadata space_info
> - Relocation
> - Use normal write command for relocation
> - Relocated device extents must be reset
> - It should be discarded on regular btrfs too though
>
> Changes from v9:
> - Extract iomap_dio_bio_opflags() to set the proper bi_opf flag
> - write pointer emulation
> - Rewrite using btrfs_previous_extent_item()
> - Convert ASSERT() to runtime check
> - Exclude regular superblock positions
> - Fix an error on writing to conventional zones
> - Take the transaction lock in mark_block_group_to_copy()
> - Rename 'hmzoned_devices' to 'zoned_devices' in btrfs_check_zoned_mode()
> - Add do_discard_extent() helper
> - Move zoned check into fetch_cluster_info()
> - Drop setting bdev to bio in btrfs_bio_add_page() (will fix later once
> we support multiple devices)
> - Subtract bytes_zone_unusable properly when removing a block group
> - Add "struct block_device *bdev" directly to btrfs_rmap_block()
> - Rename btrfs_zone_align to btrfs_align_offset_to_zone
> - Add comment to use pr_info in place of btrfs_info
> - Add comment for superblock log zones
> - Fix coding style
> - Fix typos
>
> btrfs-progs and xfstests series will follow.
>
> This version of ZONED btrfs switched from normal write command to zone
> append write command. You do not need to specify LBA (at the write pointer)
> to write for zone append write command. Instead, you only select a zone to
> write with its start LBA. Then the device (NVMe ZNS), or the emulation of
> zone append command in the sd driver in the case of SAS or SATA HDDs,
> automatically writes the data at the write pointer position and return the
> written LBA as a command reply.
>
> The benefit of using the zone append write command is that write command
> issuing order does not matter. So, we can eliminate block group lock and
> utilize asynchronous checksum, which can reorder the IOs.
>
> Eliminating the lock improves performance. In particular, on a workload
> with massive competing to the same zone [1], we observed 36% performance
> improvement compared to normal write.
>
> [1] Fio running 16 jobs with 4KB random writes for 5 minutes
>
> However, there are some limitations. We cannot use the non-SINGLE profile.
> Supporting non-SINGLE profile with zone append writing is not trivial. For
> example, in the DUP profile, we send a zone append writing IO to two zones
> on a device. The device reply with written LBAs for the IOs. If the offsets
> of the returned addresses from the beginning of the zone are different,
> then it results in different logical addresses.
>
> For the same reason, we cannot issue multiple IOs for one ordered extent.
> Thus, the size of an ordered extent is limited under max_zone_append_size.
> This limitation will cause fragmentation and increased usage of metadata.
> In the future, we can add optimization to merge ordered extents after
> end_bio.
>
> * Patch series description
>
> A zoned block device consists of a number of zones. Zones are either
> conventional and accepting random writes or sequential and requiring
> that writes be issued in LBA order from each zone write pointer
> position. This patch series ensures that the sequential write
> constraint of sequential zones is respected while fundamentally not
> changing BtrFS block and I/O management for block stored in
> conventional zones.
>
> To achieve this, the default chunk size of btrfs is changed on zoned
> block devices so that chunks are always aligned to a zone. Allocation
> of blocks within a chunk is changed so that the allocation is always
> sequential from the beginning of the chunks. To do so, an allocation
> pointer is added to block groups and used as the allocation hint. The
> allocation changes also ensure that blocks freed below the allocation
> pointer are ignored, resulting in sequential block allocation
> regardless of the chunk usage.
>
> The zone of a chunk is reset to allow reuse of the zone only when the
> block group is being freed, that is, when all the chunks of the block
> group are unused.
>
> For btrfs volumes composed of multiple zoned disks, a restriction is
> added to ensure that all disks have the same zone size. This
> restriction matches the existing constraint that all chunks in a block
> group must have the same size.
>
> * Enabling tree-log
>
> The tree-log feature does not work on ZONED mode as is. Blocks for a
> tree-log tree are allocated mixed with other metadata blocks, and btrfs
> writes and syncs the tree-log blocks to devices at the time of fsync(),
> which is different timing than a global transaction commit. As a result,
> both writing tree-log blocks and writing other metadata blocks become
> non-sequential writes which ZONED mode must avoid.
>
> This series introduces a dedicated block group for tree-log blocks to
> create two metadata writing streams, one for tree-log blocks and the
> other for metadata blocks. As a result, each write stream can now be
> written to devices separately and sequentially.
>
> * Log-structured superblock
>
> Superblock (and its copies) is the only data structure in btrfs which
> has a fixed location on a device. Since we cannot overwrite in a
> sequential write required zone, we cannot place superblock in the
> zone.
>
> This series implements superblock log writing. It uses two zones as a
> circular buffer to write updated superblocks. Once the first zone is filled
> up, start writing into the second zone. The first zone will be reset once
> both zones are filled. We can determine the postion of the latest
> superblock by reading the write pointer information from a device.
>
> * Patch series organization
>
> Patches 1 and 2 are preparing patches for block and iomap layer.
>
> Patch 3 introduces the ZONED incompatible feature flag to indicate that the
> btrfs volume was formatted for use on zoned block devices.
>
> Patches 4 to 6 implement functions to gather information on the zones of
> the device (zones type, write pointer position, and max_zone_append_size).
>
> Patches 7 to 10 disable features which are not compatible with the
> sequential write constraints of zoned block devices. These includes
> space_cache, NODATACOW, fallocate, and MIXED_BG.
>
> Patch 11 implements the log-structured superblock writing.
>
> Patches 12 and 13 tweak the device extent allocation for ZONED mode and add
> verification to check if a device extent is properly aligned to zones.
>
> Patches 14 to 17 implements sequential block allocator for ZONED mode.
>
> Patch 18 implement a zone reset for unused block groups.
>
> Patches 19 to 30 implement the writing path for several types of IO
> (non-compressed data, direct IO, and metadata). These include re-dirtying
> once-freed metadata blocks to prevent write holes.
>
> Patches 31 to 40 tweak some btrfs features work with ZONED mode. These
> include device-replace, relocation, repairing IO error, and tree-log.
>
> Finally, patch 41 adds the ZONED feature to the list of supported features.
>
> * Patch testing note
>
> ** Zone-aware util-linux
>
> Since the log-structured superblock feature changed the location of
> superblock magic, the current util-linux (libblkid) cannot detect ZONED
> btrfs anymore. You need to apply a to-be posted patch to util-linux to make
> it "zone aware".
>
> ** Testing device
>
> You need devices with zone append writing command support to run ZONED
> btrfs.
>
> Other than real devices, null_blk supports zone append write command. You
> can use memory backed null_blk to run the test on it. Following script
> creates 12800 MB /dev/nullb0.
>
> sysfs=/sys/kernel/config/nullb/nullb0
> size=12800 # MB
>
> # drop nullb0
> if [[ -d $sysfs ]]; then
> echo 0 > "${sysfs}"/power
> rmdir $sysfs
> fi
> lsmod | grep -q null_blk && rmmod null_blk
> modprobe null_blk nr_devices=0
>
> mkdir "${sysfs}"
>
> echo "${size}" > "${sysfs}"/size
> echo 1 > "${sysfs}"/zoned
> echo 0 > "${sysfs}"/zone_nr_conv
> echo 1 > "${sysfs}"/memory_backed
>
> echo 1 > "${sysfs}"/power
> udevadm settle
>
> Zoned SCSI devices such as SMR HDDs or scsi_debug also support the zone
> append command as an emulated command within the SCSI sd driver. This
> emulation is completely transparent to the user and provides the same
> semantic as a NVMe ZNS native drive support.
>
> Also, there is a qemu patch available to enable NVMe ZNS device.
>
> ** xfstests
>
> We ran xfstests on ZONED btrfs, and, if we omit some cases that are known
> to fail currently, all test cases pass.
>
> Cases that can be ignored:
> 1) failing also with the regular btrfs on regular devices,
> 2) trying to test fallocate feature without testing with
> "_require_xfs_io_command "falloc"",
> 3) trying to test incompatible features for ZONED btrfs (e.g. RAID5/6)
> 4) trying to use incompatible setup for ZONED btrfs (e.g. dm-linear not
> aligned to zone boundary, swap)
> 5) trying to create a file system with too small size, (we require at least
> 9 zones to initiate a ZONED btrfs)
> 6) dropping original MKFS_OPTIONS ("-O zoned"), so it cannot create ZONED
> btrfs (btrfs/003)
> 7) having ENOSPC which incurred by larger metadata block group size
>
> I will send a patch series for xfstests to handle these cases (2-6)
> properly.
>
> Patched xfstests is available here:
>
> https://github.com/naota/fstests/tree/btrfs-zoned
>
> Also, you need to apply the following patch if you run xfstests with
> tcmu devices. xfstests btrfs/003 failed to "_devmgt_add" after
> "_devmgt_remove" without this patch.
>
> https://marc.info/?l=linux-scsi&m=156498625421698&w=2
>
> v9 https://lore.kernel.org/linux-btrfs/cover.1604065156.git.naohiro.aota@wdc.com/
> v8 https://lore.kernel.org/linux-btrfs/cover.1601572459.git.naohiro.aota@wdc.com/
> v7 https://lore.kernel.org/linux-btrfs/20200911123259.3782926-1-naohiro.aota@wdc.com/
> v6 https://lore.kernel.org/linux-btrfs/20191213040915.3502922-1-naohiro.aota@wdc.com/
> v5 https://lore.kernel.org/linux-btrfs/20191204082513.857320-1-naohiro.aota@wdc.com/
> v4 https://lwn.net/Articles/797061/
> v3 https://lore.kernel.org/linux-btrfs/20190808093038.4163421-1-naohiro.aota@wdc.com/
> v2 https://lore.kernel.org/linux-btrfs/20190607131025.31996-1-naohiro.aota@wdc.com/
> v1 https://lore.kernel.org/linux-btrfs/20180809180450.5091-1-naota@elisp.net/
>
> Changelog
> v9
> - Direct-IO path now follow several hardware restrictions (other than
> max_zone_append_size) by using ZONE_APPEND support of iomap
> - introduces union of fs_info->zone_size and fs_info->zoned [Johannes]
> - and use btrfs_is_zoned(fs_info) in place of btrfs_fs_incompat(fs_info, ZONED)
> - print if zoned is enabled or not when printing module info [Johannes]
> - drop patch of disabling inode_cache on ZONED
> - moved for_teelog flag to a proper location [Johannes]
> - Code style fixes [Johannes]
> - Add comment about adding physical layer things to ordered extent
> structure
> - Pass file_offset explicitly to extract_ordered_extent() instead of
> determining it from bio
> - Bug fixes
> - write out fsync region so that the logical address of ordered extents
> and checksums are properly finalized
> - free zone_info at umount time
> - fix superblock log handling when entering zones[1] in the first time
> - fixes double free of log-tree roots [Johannes]
> - Drop erroneous ASSERT in do_allocation_zoned()
> v8
> - Use bio_add_hw_page() to build up bio to honor hardware restrictions
> - add bio_add_zone_append_page() as a wrapper of the function
> - Split file extent on submitting bio
> - If bio_add_zone_append_page() fails, split the file extent and send
> out bio
> - so, we can ensure one bio == one file extent
> - Fix build bot issues
> - Rebased on misc-next
> v7:
> - Use zone append write command instead of normal write command
> - Bio issuing order does not matter
> - No need to use lock anymore
> - Can use asynchronous checksum
> - Removed RAID support for now
> - Rename HMZONED to ZONED
> - Split some patches
> - Rebased on kdave/for-5.9-rc3 + iomap direct IO
> v6:
> - Use bitmap helpers (Johannes)
> - Code cleanup (Johannes)
> - Rebased on kdave/for-5.5
> - Enable the tree-log feature.
> - Treat conventional zones as sequential zones, so we can now allow
> mixed allocation of conventional zone and sequential write required
> zone to construct a block group.
> - Implement log-structured superblock
> - No need for one conventional zone at the beginning of a device.
> - Fix deadlock of direct IO writing
> - Fix building with !CONFIG_BLK_DEV_ZONED (Johannes)
> - Fix leak of zone_info (Johannes)
> v5:
> - Rebased on kdave/for-5.5
> - Enable the tree-log feature.
> - Treat conventional zones as sequential zones, so we can now allow
> mixed allocation of conventional zone and sequential write required
> zone to construct a block group.
> - Implement log-structured superblock
> - No need for one conventional zone at the beginning of a device.
> - Fix deadlock of direct IO writing
> - Fix building with !CONFIG_BLK_DEV_ZONED (Johannes)
> - Fix leak of zone_info (Johannes)
> v4:
> - Move memory allcation of zone informattion out of
> btrfs_get_dev_zones() (Anand)
> - Add disabled features table in commit log (Anand)
> - Ensure "max_chunk_size >= devs_min * data_stripes * zone_size"
> v3:
> - Serialize allocation and submit_bio instead of bio buffering in
> btrfs_map_bio().
> -- Disable async checksum/submit in HMZONED mode
> - Introduce helper functions and hmzoned.c/h (Josef, David)
> - Add support for repairing IO failure
> - Add support for NOCOW direct IO write (Josef)
> - Disable preallocation entirely
> -- Disable INODE_MAP_CACHE
> -- relocation is reworked not to rely on preallocation in HMZONED mode
> - Disable NODATACOW
> -Disable MIXED_BG
> - Device extent that cover super block position is banned (David)
> v2:
> - Add support for dev-replace
> -- To support dev-replace, moved submit_buffer one layer up. It now
> handles bio instead of btrfs_bio.
> -- Mark unmirrored Block Group readonly only when there are writable
> mirrored BGs. Necessary to handle degraded RAID.
> - Expire worker use vanilla delayed_work instead of btrfs's async-thread
> - Device extent allocator now ensure that region is on the same zone type.
> - Add delayed allocation shrinking.
> - Rename btrfs_drop_dev_zonetypes() to btrfs_destroy_dev_zonetypes
> - Fix
> -- Use SECTOR_SHIFT (Nikolay)
> -- Use btrfs_err (Nikolay)
>
>
> Johannes Thumshirn (1):
> block: add bio_add_zone_append_page
>
> Naohiro Aota (40):
> iomap: support REQ_OP_ZONE_APPEND
> btrfs: introduce ZONED feature flag
> btrfs: get zone information of zoned block devices
> btrfs: check and enable ZONED mode
> btrfs: introduce max_zone_append_size
> btrfs: disallow space_cache in ZONED mode
> btrfs: disallow NODATACOW in ZONED mode
> btrfs: disable fallocate in ZONED mode
> btrfs: disallow mixed-bg in ZONED mode
> btrfs: implement log-structured superblock for ZONED mode
> btrfs: implement zoned chunk allocator
> btrfs: verify device extent is aligned to zone
> btrfs: load zone's alloction offset
> btrfs: emulate write pointer for conventional zones
> btrfs: track unusable bytes for zones
> btrfs: do sequential extent allocation in ZONED mode
> btrfs: reset zones of unused block groups
> btrfs: redirty released extent buffers in ZONED mode
> btrfs: extract page adding function
> btrfs: use bio_add_zone_append_page for zoned btrfs
> btrfs: handle REQ_OP_ZONE_APPEND as writing
> btrfs: split ordered extent when bio is sent
> btrfs: extend btrfs_rmap_block for specifying a device
> btrfs: use ZONE_APPEND write for ZONED btrfs
> btrfs: enable zone append writing for direct IO
> btrfs: introduce dedicated data write path for ZONED mode
> btrfs: serialize meta IOs on ZONED mode
> btrfs: wait existing extents before truncating
> btrfs: avoid async metadata checksum on ZONED mode
> btrfs: mark block groups to copy for device-replace
> btrfs: implement cloning for ZONED device-replace
> btrfs: implement copying for ZONED device-replace
> btrfs: support dev-replace in ZONED mode
> btrfs: enable relocation in ZONED mode
> btrfs: relocate block group to repair IO failure in ZONED
> btrfs: split alloc_log_tree()
> btrfs: extend zoned allocator to use dedicated tree-log block group
> btrfs: serialize log transaction on ZONED mode
> btrfs: reorder log node allocation
> btrfs: enable to mount ZONED incompat flag
>
> block/bio.c | 38 +
> fs/btrfs/Makefile | 1 +
> fs/btrfs/block-group.c | 84 +-
> fs/btrfs/block-group.h | 18 +-
> fs/btrfs/ctree.h | 20 +-
> fs/btrfs/dev-replace.c | 195 +++++
> fs/btrfs/dev-replace.h | 3 +
> fs/btrfs/disk-io.c | 93 ++-
> fs/btrfs/disk-io.h | 2 +
> fs/btrfs/extent-tree.c | 218 ++++-
> fs/btrfs/extent_io.c | 130 ++-
> fs/btrfs/extent_io.h | 2 +
> fs/btrfs/file.c | 6 +-
> fs/btrfs/free-space-cache.c | 58 ++
> fs/btrfs/free-space-cache.h | 2 +
> fs/btrfs/inode.c | 164 +++-
> fs/btrfs/ioctl.c | 13 +
> fs/btrfs/ordered-data.c | 79 ++
> fs/btrfs/ordered-data.h | 10 +
> fs/btrfs/relocation.c | 35 +-
> fs/btrfs/scrub.c | 145 ++++
> fs/btrfs/space-info.c | 13 +-
> fs/btrfs/space-info.h | 4 +-
> fs/btrfs/super.c | 19 +-
> fs/btrfs/sysfs.c | 4 +
> fs/btrfs/tests/extent-map-tests.c | 2 +-
> fs/btrfs/transaction.c | 10 +
> fs/btrfs/transaction.h | 3 +
> fs/btrfs/tree-log.c | 52 +-
> fs/btrfs/volumes.c | 322 +++++++-
> fs/btrfs/volumes.h | 7 +
> fs/btrfs/zoned.c | 1272 +++++++++++++++++++++++++++++
> fs/btrfs/zoned.h | 295 +++++++
> fs/iomap/direct-io.c | 41 +-
> include/linux/bio.h | 2 +
> include/linux/iomap.h | 1 +
> include/uapi/linux/btrfs.h | 1 +
> 37 files changed, 3246 insertions(+), 118 deletions(-)
> create mode 100644 fs/btrfs/zoned.c
> create mode 100644 fs/btrfs/zoned.h
>
next prev parent reply other threads:[~2020-11-10 14:00 UTC|newest]
Thread overview: 117+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-11-10 11:26 [PATCH v10 00/41] btrfs: zoned block device support Naohiro Aota
2020-11-10 11:26 ` [PATCH v10 01/41] block: add bio_add_zone_append_page Naohiro Aota
2020-11-10 17:20 ` Christoph Hellwig
2020-11-11 7:20 ` Johannes Thumshirn
2020-11-10 11:26 ` [PATCH v10 02/41] iomap: support REQ_OP_ZONE_APPEND Naohiro Aota
2020-11-10 17:25 ` Christoph Hellwig
2020-11-10 18:55 ` Darrick J. Wong
2020-11-10 19:01 ` Darrick J. Wong
2020-11-24 11:29 ` Christoph Hellwig
2020-11-30 18:11 ` Darrick J. Wong
2020-12-01 10:16 ` Johannes Thumshirn
2020-12-09 9:31 ` Christoph Hellwig
2020-12-09 10:08 ` Johannes Thumshirn
2020-12-09 10:10 ` hch
2020-12-09 10:16 ` Johannes Thumshirn
2020-12-09 13:38 ` Johannes Thumshirn
2020-12-11 7:26 ` Johannes Thumshirn
2020-12-11 21:24 ` Chaitanya Kulkarni
2020-12-12 10:22 ` Johannes Thumshirn
2020-11-10 11:26 ` [PATCH v10 03/41] btrfs: introduce ZONED feature flag Naohiro Aota
2020-11-19 21:31 ` David Sterba
2020-11-10 11:26 ` [PATCH v10 04/41] btrfs: get zone information of zoned block devices Naohiro Aota
2020-11-12 6:57 ` Anand Jain
2020-11-12 7:35 ` Johannes Thumshirn
2020-11-12 7:44 ` Damien Le Moal
2020-11-12 9:44 ` Anand Jain
2020-11-13 21:34 ` David Sterba
2020-11-12 9:39 ` Johannes Thumshirn
2020-11-12 12:57 ` Naohiro Aota
2020-11-18 11:17 ` Anand Jain
2020-11-30 11:16 ` Anand Jain
2020-11-25 21:47 ` David Sterba
2020-11-25 22:07 ` David Sterba
2020-11-25 23:50 ` Damien Le Moal
2020-11-26 14:11 ` David Sterba
2020-11-25 22:16 ` David Sterba
2020-11-10 11:26 ` [PATCH v10 05/41] btrfs: check and enable ZONED mode Naohiro Aota
2020-11-18 11:29 ` Anand Jain
2020-11-27 18:44 ` David Sterba
2020-11-30 12:12 ` Anand Jain
2020-11-30 13:15 ` Damien Le Moal
2020-12-01 2:19 ` Anand Jain
2020-12-01 2:29 ` Damien Le Moal
2020-12-01 5:53 ` Anand Jain
2020-12-01 6:09 ` Damien Le Moal
2020-12-01 7:12 ` Anand Jain
2020-12-01 10:45 ` Graham Cobb
2020-12-01 11:03 ` Damien Le Moal
2020-12-01 11:11 ` hch
2020-12-01 11:27 ` Damien Le Moal
2020-11-10 11:26 ` [PATCH v10 06/41] btrfs: introduce max_zone_append_size Naohiro Aota
2020-11-19 9:23 ` Anand Jain
2020-11-27 18:47 ` David Sterba
2020-11-10 11:26 ` [PATCH v10 07/41] btrfs: disallow space_cache in ZONED mode Naohiro Aota
2020-11-19 10:42 ` Anand Jain
2020-11-20 4:08 ` Anand Jain
2020-11-10 11:26 ` [PATCH v10 08/41] btrfs: disallow NODATACOW " Naohiro Aota
2020-11-20 4:17 ` Anand Jain
2020-11-23 17:21 ` David Sterba
2020-11-24 3:29 ` Anand Jain
2020-11-10 11:26 ` [PATCH v10 09/41] btrfs: disable fallocate " Naohiro Aota
2020-11-20 4:28 ` Anand Jain
2020-11-10 11:26 ` [PATCH v10 10/41] btrfs: disallow mixed-bg " Naohiro Aota
2020-11-20 4:32 ` Anand Jain
2020-11-10 11:26 ` [PATCH v10 11/41] btrfs: implement log-structured superblock for " Naohiro Aota
2020-11-23 17:46 ` David Sterba
2020-11-24 9:30 ` Johannes Thumshirn
2020-11-24 6:46 ` Anand Jain
2020-11-24 7:16 ` Hannes Reinecke
2020-11-10 11:26 ` [PATCH v10 12/41] btrfs: implement zoned chunk allocator Naohiro Aota
2020-11-24 11:36 ` Anand Jain
2020-11-25 1:57 ` Naohiro Aota
2020-11-25 7:17 ` Anand Jain
2020-11-25 11:48 ` Naohiro Aota
2020-11-25 9:59 ` Graham Cobb
2020-11-25 11:50 ` Naohiro Aota
2020-12-09 5:27 ` Anand Jain
2020-11-10 11:26 ` [PATCH v10 13/41] btrfs: verify device extent is aligned to zone Naohiro Aota
2020-11-27 6:27 ` Anand Jain
2020-11-10 11:26 ` [PATCH v10 14/41] btrfs: load zone's alloction offset Naohiro Aota
2020-12-08 9:54 ` Anand Jain
2020-11-10 11:26 ` [PATCH v10 15/41] btrfs: emulate write pointer for conventional zones Naohiro Aota
2020-11-10 11:26 ` [PATCH v10 16/41] btrfs: track unusable bytes for zones Naohiro Aota
2020-11-10 11:26 ` [PATCH v10 17/41] btrfs: do sequential extent allocation in ZONED mode Naohiro Aota
2020-11-10 11:26 ` [PATCH v10 18/41] btrfs: reset zones of unused block groups Naohiro Aota
2020-11-10 11:26 ` [PATCH v10 19/41] btrfs: redirty released extent buffers in ZONED mode Naohiro Aota
2020-11-10 11:26 ` [PATCH v10 20/41] btrfs: extract page adding function Naohiro Aota
2020-11-10 11:26 ` [PATCH v10 21/41] btrfs: use bio_add_zone_append_page for zoned btrfs Naohiro Aota
2020-11-10 11:26 ` [PATCH v10 22/41] btrfs: handle REQ_OP_ZONE_APPEND as writing Naohiro Aota
2020-11-10 11:26 ` [PATCH v10 23/41] btrfs: split ordered extent when bio is sent Naohiro Aota
2020-11-11 2:01 ` kernel test robot
2020-11-11 2:26 ` kernel test robot
2020-11-11 3:46 ` kernel test robot
2020-11-11 3:46 ` [RFC PATCH] btrfs: extract_ordered_extent() can be static kernel test robot
2020-11-11 4:12 ` [PATCH v10.1 23/41] btrfs: split ordered extent when bio is sent Naohiro Aota
2020-11-10 11:26 ` [PATCH v10 24/41] btrfs: extend btrfs_rmap_block for specifying a device Naohiro Aota
2020-11-10 11:26 ` [PATCH v10 25/41] btrfs: use ZONE_APPEND write for ZONED btrfs Naohiro Aota
2020-11-10 11:26 ` [PATCH v10 26/41] btrfs: enable zone append writing for direct IO Naohiro Aota
2020-11-10 11:26 ` [PATCH v10 27/41] btrfs: introduce dedicated data write path for ZONED mode Naohiro Aota
2020-11-10 11:26 ` [PATCH v10 28/41] btrfs: serialize meta IOs on " Naohiro Aota
2020-11-10 11:26 ` [PATCH v10 29/41] btrfs: wait existing extents before truncating Naohiro Aota
2020-11-10 11:26 ` [PATCH v10 30/41] btrfs: avoid async metadata checksum on ZONED mode Naohiro Aota
2020-11-10 11:26 ` [PATCH v10 31/41] btrfs: mark block groups to copy for device-replace Naohiro Aota
2020-11-10 11:26 ` [PATCH v10 32/41] btrfs: implement cloning for ZONED device-replace Naohiro Aota
2020-11-10 11:26 ` [PATCH v10 33/41] btrfs: implement copying " Naohiro Aota
2020-11-10 11:26 ` [PATCH v10 34/41] btrfs: support dev-replace in ZONED mode Naohiro Aota
2020-11-10 11:26 ` [PATCH v10 35/41] btrfs: enable relocation " Naohiro Aota
2020-11-10 11:26 ` [PATCH v10 36/41] btrfs: relocate block group to repair IO failure in ZONED Naohiro Aota
2020-11-10 11:26 ` [PATCH v10 37/41] btrfs: split alloc_log_tree() Naohiro Aota
2020-11-10 11:26 ` [PATCH v10 38/41] btrfs: extend zoned allocator to use dedicated tree-log block group Naohiro Aota
2020-11-11 4:58 ` [PATCH v10.1 " Naohiro Aota
2020-11-10 11:26 ` [PATCH v10 39/41] btrfs: serialize log transaction on ZONED mode Naohiro Aota
2020-11-10 11:26 ` [PATCH v10 40/41] btrfs: reorder log node allocation Naohiro Aota
2020-11-10 11:26 ` [PATCH v10 41/41] btrfs: enable to mount ZONED incompat flag Naohiro Aota
2020-11-10 14:00 ` Anand Jain [this message]
2020-11-11 5:07 ` [PATCH v10 00/41] btrfs: zoned block device support Naohiro Aota
2020-11-27 19:28 ` David Sterba
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=1a58611e-3116-57e1-3462-bb1888416d67@oracle.com \
--to=anand.jain@oracle.com \
--cc=axboe@kernel.dk \
--cc=darrick.wong@oracle.com \
--cc=dsterba@suse.com \
--cc=hare@suse.com \
--cc=hch@infradead.org \
--cc=linux-btrfs@vger.kernel.org \
--cc=linux-fsdevel@vger.kernel.org \
--cc=naohiro.aota@wdc.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;
as well as URLs for NNTP newsgroup(s).