All of lore.kernel.org
 help / color / mirror / Atom feed
* btrfs zoned fixlets
@ 2022-03-24 16:52 Christoph Hellwig
  2022-03-24 16:52 ` [PATCH 1/2] btrfs: remove the zoned/zone_size union in struct btrfs_fs_info Christoph Hellwig
                   ` (4 more replies)
  0 siblings, 5 replies; 17+ messages in thread
From: Christoph Hellwig @ 2022-03-24 16:52 UTC (permalink / raw)
  To: Josef Bacik, David Sterba, Naohiro Aota; +Cc: linux-btrfs

Hi all,

this series fixes a minor and slightly less minor problem in the btrfs
zoned device code.  Note that for the second patch the comment might
not be correct any more - AFAICS 5.18 added support for the dup
profile for zoned devices, which means we do have a real issue now
if different devices have different hardware limitations.  I think we'll
need some code to check that all zoned devices have the exact same
hardware limits (max_sectors, max_segments, max_segment_size,
queue_boundary, virt_boundary), but I don't know the code well enough
to implement that myself

Found by code inspection as part of my bio cleanups.

^ permalink raw reply	[flat|nested] 17+ messages in thread

* [PATCH 1/2] btrfs: remove the zoned/zone_size union in struct btrfs_fs_info
  2022-03-24 16:52 btrfs zoned fixlets Christoph Hellwig
@ 2022-03-24 16:52 ` Christoph Hellwig
  2022-03-25  7:33   ` Johannes Thumshirn
                     ` (2 more replies)
  2022-03-24 16:52 ` [PATCH 2/2] btrfs: fix and document the zoned device choice in alloc_new_bio Christoph Hellwig
                   ` (3 subsequent siblings)
  4 siblings, 3 replies; 17+ messages in thread
From: Christoph Hellwig @ 2022-03-24 16:52 UTC (permalink / raw)
  To: Josef Bacik, David Sterba, Naohiro Aota; +Cc: linux-btrfs

Reading a value from a different member of a union is not just a great
way to obsfucate code, but also creates an aliasing violation.  Switch
btrfs_is_zoned to look at ->zone_size and remove the union.

Signed-off-by: Christoph Hellwig <hch@lst.de>
---
 fs/btrfs/ctree.h | 7 ++-----
 1 file changed, 2 insertions(+), 5 deletions(-)

diff --git a/fs/btrfs/ctree.h b/fs/btrfs/ctree.h
index b7631b88426e3..0edcce6d2db64 100644
--- a/fs/btrfs/ctree.h
+++ b/fs/btrfs/ctree.h
@@ -1045,10 +1045,7 @@ struct btrfs_fs_info {
 	 * Zone size > 0 when in ZONED mode, otherwise it's used for a check
 	 * if the mode is enabled
 	 */
-	union {
-		u64 zone_size;
-		u64 zoned;
-	};
+	u64 zone_size;
 
 	struct mutex zoned_meta_io_lock;
 	spinlock_t treelog_bg_lock;
@@ -3928,7 +3925,7 @@ static inline int btrfs_is_testing(struct btrfs_fs_info *fs_info)
 
 static inline bool btrfs_is_zoned(const struct btrfs_fs_info *fs_info)
 {
-	return fs_info->zoned != 0;
+	return fs_info->zone_size > 0;
 }
 
 static inline bool btrfs_is_data_reloc_root(const struct btrfs_root *root)
-- 
2.30.2


^ permalink raw reply related	[flat|nested] 17+ messages in thread

* [PATCH 2/2] btrfs: fix and document the zoned device choice in alloc_new_bio
  2022-03-24 16:52 btrfs zoned fixlets Christoph Hellwig
  2022-03-24 16:52 ` [PATCH 1/2] btrfs: remove the zoned/zone_size union in struct btrfs_fs_info Christoph Hellwig
@ 2022-03-24 16:52 ` Christoph Hellwig
  2022-03-25  9:09   ` Johannes Thumshirn
  2022-03-28 13:31   ` Naohiro Aota
  2022-03-25  7:35 ` btrfs zoned fixlets Johannes Thumshirn
                   ` (2 subsequent siblings)
  4 siblings, 2 replies; 17+ messages in thread
From: Christoph Hellwig @ 2022-03-24 16:52 UTC (permalink / raw)
  To: Josef Bacik, David Sterba, Naohiro Aota; +Cc: linux-btrfs

Zone Append bios only need a valid block device in struct bio, but
not the device in the btrfs_bio.  Use the information from
btrfs_zoned_get_device to set up bi_bdev and fix zoned writes on
multi-device file system with non-homogeneous capabilities and remove
the pointless btrfs_bio.device assignment.

Add big fat comments explaining what is going on here.

Signed-off-by: Christoph Hellwig <hch@lst.de>
---
 fs/btrfs/extent_io.c | 43 ++++++++++++++++++++++++++++---------------
 1 file changed, 28 insertions(+), 15 deletions(-)

diff --git a/fs/btrfs/extent_io.c b/fs/btrfs/extent_io.c
index d78b3a2d04e3b..175a3f16c2da0 100644
--- a/fs/btrfs/extent_io.c
+++ b/fs/btrfs/extent_io.c
@@ -3334,24 +3334,37 @@ static int alloc_new_bio(struct btrfs_inode *inode,
 	ret = calc_bio_boundaries(bio_ctrl, inode, file_offset);
 	if (ret < 0)
 		goto error;
-	if (wbc) {
-		struct block_device *bdev;
 
-		bdev = fs_info->fs_devices->latest_dev->bdev;
-		bio_set_dev(bio, bdev);
-		wbc_init_bio(wbc, bio);
-	}
-	if (bio_op(bio) == REQ_OP_ZONE_APPEND) {
-		struct btrfs_device *device;
+	if (wbc) {
+		/*
+		 * For Zone append we need the correct block_device that we are
+		 * going to write to set in the bio to be able to respect the
+		 * hardware limitation.  Look it up here:
+		 */
+		if (bio_op(bio) == REQ_OP_ZONE_APPEND) {
+			struct btrfs_device *dev;
+
+			dev = btrfs_zoned_get_device(fs_info, disk_bytenr,
+						     fs_info->sectorsize);
+			if (IS_ERR(dev)) {
+				ret = PTR_ERR(dev);
+				goto error;
+			}
 
-		device = btrfs_zoned_get_device(fs_info, disk_bytenr,
-						fs_info->sectorsize);
-		if (IS_ERR(device)) {
-			ret = PTR_ERR(device);
-			goto error;
+			bio_set_dev(bio, dev->bdev);
+		} else {
+			/*
+			 * Otherwise pick the last added device to support
+			 * cgroup writeback.  For multi-device file systems this
+			 * means blk-cgroup policies have to always be set on the
+			 * last added/replaced device.  This is a bit odd but has
+			 * been like that for a long time.
+			 */
+			bio_set_dev(bio, fs_info->fs_devices->latest_dev->bdev);
 		}
-
-		btrfs_bio(bio)->device = device;
+		wbc_init_bio(wbc, bio);
+	} else {
+		ASSERT(bio_op(bio) != REQ_OP_ZONE_APPEND);
 	}
 	return 0;
 error:
-- 
2.30.2


^ permalink raw reply related	[flat|nested] 17+ messages in thread

* Re: [PATCH 1/2] btrfs: remove the zoned/zone_size union in struct btrfs_fs_info
  2022-03-24 16:52 ` [PATCH 1/2] btrfs: remove the zoned/zone_size union in struct btrfs_fs_info Christoph Hellwig
@ 2022-03-25  7:33   ` Johannes Thumshirn
  2022-03-28 14:37     ` David Sterba
  2022-03-28 12:46   ` Naohiro Aota
  2022-03-28 19:01   ` David Sterba
  2 siblings, 1 reply; 17+ messages in thread
From: Johannes Thumshirn @ 2022-03-25  7:33 UTC (permalink / raw)
  To: Christoph Hellwig, Josef Bacik, David Sterba, Naohiro Aota; +Cc: linux-btrfs

Fine by me, but it was explicitly requested to be this way IIRC.

Anyways,
Reviewed-by: Johannes Thumshirn <johannes.thumshirn@wdc.com>

^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: btrfs zoned fixlets
  2022-03-24 16:52 btrfs zoned fixlets Christoph Hellwig
  2022-03-24 16:52 ` [PATCH 1/2] btrfs: remove the zoned/zone_size union in struct btrfs_fs_info Christoph Hellwig
  2022-03-24 16:52 ` [PATCH 2/2] btrfs: fix and document the zoned device choice in alloc_new_bio Christoph Hellwig
@ 2022-03-25  7:35 ` Johannes Thumshirn
  2022-03-25  7:50   ` Christoph Hellwig
  2022-04-08 16:41 ` Christoph Hellwig
  2022-04-11 16:39 ` David Sterba
  4 siblings, 1 reply; 17+ messages in thread
From: Johannes Thumshirn @ 2022-03-25  7:35 UTC (permalink / raw)
  To: Christoph Hellwig, Josef Bacik, David Sterba, Naohiro Aota; +Cc: linux-btrfs

On 24/03/2022 17:55, Christoph Hellwig wrote:
> Hi all,
> 
> this series fixes a minor and slightly less minor problem in the btrfs
> zoned device code.  Note that for the second patch the comment might
> not be correct any more - AFAICS 5.18 added support for the dup
> profile for zoned devices, which means we do have a real issue now
> if different devices have different hardware limitations.

It's not a problem, as a) DUP is not spanning multiple devices, but
only used on one device and b) DUP is (as of now) only used on meta-data
which can't use zone append.


^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: btrfs zoned fixlets
  2022-03-25  7:35 ` btrfs zoned fixlets Johannes Thumshirn
@ 2022-03-25  7:50   ` Christoph Hellwig
  0 siblings, 0 replies; 17+ messages in thread
From: Christoph Hellwig @ 2022-03-25  7:50 UTC (permalink / raw)
  To: Johannes Thumshirn
  Cc: Christoph Hellwig, Josef Bacik, David Sterba, Naohiro Aota, linux-btrfs

On Fri, Mar 25, 2022 at 07:35:57AM +0000, Johannes Thumshirn wrote:
> On 24/03/2022 17:55, Christoph Hellwig wrote:
> > Hi all,
> > 
> > this series fixes a minor and slightly less minor problem in the btrfs
> > zoned device code.  Note that for the second patch the comment might
> > not be correct any more - AFAICS 5.18 added support for the dup
> > profile for zoned devices, which means we do have a real issue now
> > if different devices have different hardware limitations.
> 
> It's not a problem, as a) DUP is not spanning multiple devices, but
> only used on one device and b) DUP is (as of now) only used on meta-data
> which can't use zone append.

Ok, in that case the comment that I wrote based on the 5.17-ish code
is still correct.

^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: [PATCH 2/2] btrfs: fix and document the zoned device choice in alloc_new_bio
  2022-03-24 16:52 ` [PATCH 2/2] btrfs: fix and document the zoned device choice in alloc_new_bio Christoph Hellwig
@ 2022-03-25  9:09   ` Johannes Thumshirn
  2022-03-28 19:12     ` David Sterba
  2022-03-28 13:31   ` Naohiro Aota
  1 sibling, 1 reply; 17+ messages in thread
From: Johannes Thumshirn @ 2022-03-25  9:09 UTC (permalink / raw)
  To: Christoph Hellwig, Josef Bacik, David Sterba, Naohiro Aota; +Cc: linux-btrfs

On 24/03/2022 17:54, Christoph Hellwig wrote:
> Zone Append bios only need a valid block device in struct bio, but
> not the device in the btrfs_bio.  Use the information from
> btrfs_zoned_get_device to set up bi_bdev and fix zoned writes on
> multi-device file system with non-homogeneous capabilities and remove
> the pointless btrfs_bio.device assignment.
> 
> Add big fat comments explaining what is going on here.

Looks like the old code worked by sheer luck, as we had wbc set and thus
always assigned fs_info->fs_devices->latest_dev->bdev to the bio. Which 
would obviously not work on a multi device FS.


Reviewed-by: Johannes Thumshirn <johannes.thumshirn@wdc.com>

^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: [PATCH 1/2] btrfs: remove the zoned/zone_size union in struct btrfs_fs_info
  2022-03-24 16:52 ` [PATCH 1/2] btrfs: remove the zoned/zone_size union in struct btrfs_fs_info Christoph Hellwig
  2022-03-25  7:33   ` Johannes Thumshirn
@ 2022-03-28 12:46   ` Naohiro Aota
  2022-03-28 19:01   ` David Sterba
  2 siblings, 0 replies; 17+ messages in thread
From: Naohiro Aota @ 2022-03-28 12:46 UTC (permalink / raw)
  To: Christoph Hellwig; +Cc: Josef Bacik, David Sterba, linux-btrfs

On Thu, Mar 24, 2022 at 05:52:09PM +0100, Christoph Hellwig wrote:
> Reading a value from a different member of a union is not just a great
> way to obsfucate code, but also creates an aliasing violation.  Switch
> btrfs_is_zoned to look at ->zone_size and remove the union.
> 
> Signed-off-by: Christoph Hellwig <hch@lst.de>

Also, fine for me.

Reviewed-by: Naohiro Aota <naohiro.aota@wdc.com>

^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: [PATCH 2/2] btrfs: fix and document the zoned device choice in alloc_new_bio
  2022-03-24 16:52 ` [PATCH 2/2] btrfs: fix and document the zoned device choice in alloc_new_bio Christoph Hellwig
  2022-03-25  9:09   ` Johannes Thumshirn
@ 2022-03-28 13:31   ` Naohiro Aota
  1 sibling, 0 replies; 17+ messages in thread
From: Naohiro Aota @ 2022-03-28 13:31 UTC (permalink / raw)
  To: Christoph Hellwig; +Cc: Josef Bacik, David Sterba, linux-btrfs

On Thu, Mar 24, 2022 at 05:52:10PM +0100, Christoph Hellwig wrote:
> Zone Append bios only need a valid block device in struct bio, but
> not the device in the btrfs_bio.  Use the information from
> btrfs_zoned_get_device to set up bi_bdev and fix zoned writes on
> multi-device file system with non-homogeneous capabilities and remove
> the pointless btrfs_bio.device assignment.
> 
> Add big fat comments explaining what is going on here.

Looks good to me.

Reviewed-by: Naohiro Aota <naohiro.aota@wdc.com>

I'm wondering why I used the ->device here. Maybe, it was left over
from pre-btrfs_bio_add_page().

^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: [PATCH 1/2] btrfs: remove the zoned/zone_size union in struct btrfs_fs_info
  2022-03-25  7:33   ` Johannes Thumshirn
@ 2022-03-28 14:37     ` David Sterba
  0 siblings, 0 replies; 17+ messages in thread
From: David Sterba @ 2022-03-28 14:37 UTC (permalink / raw)
  To: Johannes Thumshirn
  Cc: Christoph Hellwig, Josef Bacik, David Sterba, Naohiro Aota, linux-btrfs

On Fri, Mar 25, 2022 at 07:33:25AM +0000, Johannes Thumshirn wrote:
> Fine by me, but it was explicitly requested to be this way IIRC.

This was before there was the btrfs_is_zoned helper that now wraps the
condition.

^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: [PATCH 1/2] btrfs: remove the zoned/zone_size union in struct btrfs_fs_info
  2022-03-24 16:52 ` [PATCH 1/2] btrfs: remove the zoned/zone_size union in struct btrfs_fs_info Christoph Hellwig
  2022-03-25  7:33   ` Johannes Thumshirn
  2022-03-28 12:46   ` Naohiro Aota
@ 2022-03-28 19:01   ` David Sterba
  2 siblings, 0 replies; 17+ messages in thread
From: David Sterba @ 2022-03-28 19:01 UTC (permalink / raw)
  To: Christoph Hellwig; +Cc: Josef Bacik, David Sterba, Naohiro Aota, linux-btrfs

On Thu, Mar 24, 2022 at 05:52:09PM +0100, Christoph Hellwig wrote:
> Reading a value from a different member of a union is not just a great
> way to obsfucate code, but also creates an aliasing violation.

Is it a violation in this case? Both are of the same type, violation
could be int/u64 and others but even in this case this is transparent to
the compiler and union cast is the cleanest way to access same bytes in
a structure. Anaywy now the helper btrfs_is_zoned is used everywhere
which abstracts the condition, which was the original idea for the
union.

^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: [PATCH 2/2] btrfs: fix and document the zoned device choice in alloc_new_bio
  2022-03-25  9:09   ` Johannes Thumshirn
@ 2022-03-28 19:12     ` David Sterba
  2022-03-28 23:04       ` Naohiro Aota
  0 siblings, 1 reply; 17+ messages in thread
From: David Sterba @ 2022-03-28 19:12 UTC (permalink / raw)
  To: Johannes Thumshirn
  Cc: Christoph Hellwig, Josef Bacik, David Sterba, Naohiro Aota, linux-btrfs

On Fri, Mar 25, 2022 at 09:09:56AM +0000, Johannes Thumshirn wrote:
> On 24/03/2022 17:54, Christoph Hellwig wrote:
> > Zone Append bios only need a valid block device in struct bio, but
> > not the device in the btrfs_bio.  Use the information from
> > btrfs_zoned_get_device to set up bi_bdev and fix zoned writes on
> > multi-device file system with non-homogeneous capabilities and remove
> > the pointless btrfs_bio.device assignment.
> > 
> > Add big fat comments explaining what is going on here.
> 
> Looks like the old code worked by sheer luck, as we had wbc set and thus
> always assigned fs_info->fs_devices->latest_dev->bdev to the bio. Which 
> would obviously not work on a multi device FS.

No, it worked fine because the real bio is set just before writing the
data somewhere deep in the io submit path in submit_stripe_bio().

That it has to be set here is because of the cgroup implementation that
accesses it, see 429aebc0a9a0 ("btrfs: get bdev directly from fs_devices
in submit_extent_page").

Which brings me to the question if Christoph's fix is correct because
the comment for the wbc + zoned append is assuming something that's not
true.

^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: [PATCH 2/2] btrfs: fix and document the zoned device choice in alloc_new_bio
  2022-03-28 19:12     ` David Sterba
@ 2022-03-28 23:04       ` Naohiro Aota
  2022-03-30 15:10         ` David Sterba
  0 siblings, 1 reply; 17+ messages in thread
From: Naohiro Aota @ 2022-03-28 23:04 UTC (permalink / raw)
  To: dsterba, Johannes Thumshirn, Christoph Hellwig, Josef Bacik,
	David Sterba, linux-btrfs

On Mon, Mar 28, 2022 at 09:12:40PM +0200, David Sterba wrote:
> On Fri, Mar 25, 2022 at 09:09:56AM +0000, Johannes Thumshirn wrote:
> > On 24/03/2022 17:54, Christoph Hellwig wrote:
> > > Zone Append bios only need a valid block device in struct bio, but
> > > not the device in the btrfs_bio.  Use the information from
> > > btrfs_zoned_get_device to set up bi_bdev and fix zoned writes on
> > > multi-device file system with non-homogeneous capabilities and remove
> > > the pointless btrfs_bio.device assignment.
> > > 
> > > Add big fat comments explaining what is going on here.
> > 
> > Looks like the old code worked by sheer luck, as we had wbc set and thus
> > always assigned fs_info->fs_devices->latest_dev->bdev to the bio. Which 
> > would obviously not work on a multi device FS.
> 
> No, it worked fine because the real bio is set just before writing the
> data somewhere deep in the io submit path in submit_stripe_bio().
> 
> That it has to be set here is because of the cgroup implementation that
> accesses it, see 429aebc0a9a0 ("btrfs: get bdev directly from fs_devices
> in submit_extent_page").
> 
> Which brings me to the question if Christoph's fix is correct because
> the comment for the wbc + zoned append is assuming something that's not
> true.

While the real bio is setup in submit_stripe_bio(), we need to set the
device destination for bio_add_zone_append_page() called in
btrfs_bio_add_page(). The bio_add_zone_append_page() checks that the
bio length is not exceeding max_zone_append_sectors() of the device,
and checks other hardware restrictions.

^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: [PATCH 2/2] btrfs: fix and document the zoned device choice in alloc_new_bio
  2022-03-28 23:04       ` Naohiro Aota
@ 2022-03-30 15:10         ` David Sterba
  0 siblings, 0 replies; 17+ messages in thread
From: David Sterba @ 2022-03-30 15:10 UTC (permalink / raw)
  To: Naohiro Aota
  Cc: dsterba, Johannes Thumshirn, Christoph Hellwig, Josef Bacik,
	David Sterba, linux-btrfs

On Mon, Mar 28, 2022 at 11:04:26PM +0000, Naohiro Aota wrote:
> On Mon, Mar 28, 2022 at 09:12:40PM +0200, David Sterba wrote:
> > On Fri, Mar 25, 2022 at 09:09:56AM +0000, Johannes Thumshirn wrote:
> > > On 24/03/2022 17:54, Christoph Hellwig wrote:
> > > > Zone Append bios only need a valid block device in struct bio, but
> > > > not the device in the btrfs_bio.  Use the information from
> > > > btrfs_zoned_get_device to set up bi_bdev and fix zoned writes on
> > > > multi-device file system with non-homogeneous capabilities and remove
> > > > the pointless btrfs_bio.device assignment.
> > > > 
> > > > Add big fat comments explaining what is going on here.
> > > 
> > > Looks like the old code worked by sheer luck, as we had wbc set and thus
> > > always assigned fs_info->fs_devices->latest_dev->bdev to the bio. Which 
> > > would obviously not work on a multi device FS.
> > 
> > No, it worked fine because the real bio is set just before writing the
> > data somewhere deep in the io submit path in submit_stripe_bio().
> > 
> > That it has to be set here is because of the cgroup implementation that
> > accesses it, see 429aebc0a9a0 ("btrfs: get bdev directly from fs_devices
> > in submit_extent_page").
> > 
> > Which brings me to the question if Christoph's fix is correct because
> > the comment for the wbc + zoned append is assuming something that's not
> > true.
> 
> While the real bio is setup in submit_stripe_bio(), we need to set the

Oh sorry I actually wanted to say that the real 'bdev' is set in
submit_stripe_bio (ie. the one where the write is going to be done).

> device destination for bio_add_zone_append_page() called in
> btrfs_bio_add_page(). The bio_add_zone_append_page() checks that the
> bio length is not exceeding max_zone_append_sectors() of the device,
> and checks other hardware restrictions.

Yeah, but can this still mean that it's checking potentially different
devices with different hw restrictions? In alloc_new_bio() it's one and in
submit_stripe_bio() it's a different one.

Before the cgroup writeback was added to bios, the only reason why
bio_set_bdev required the block device is to check if it's the same one
as before and drop some bit:

static inline void bio_set_dev(struct bio *bio, struct block_device *bdev)
{
	bio_clear_flag(bio, BIO_REMAPPED);
	if (bio->bi_bdev != bdev)
		bio_clear_flag(bio, BIO_THROTTLED);
	bio->bi_bdev = bdev;
	bio_associate_blkg(bio);		<-- this was not here
}

So the latest_dev was just a stub to satisfy the bio API requirements.
Please note that its existence spans a long time and things have
changed, I remember that Chris' answer to why we need the latest_dev was
"to put something to the bios". Ie. we don't need it because we have to
write same data to different block devices and distribute that in
submit_stripe_bio(), while the bios have to be set much earlier
expecting a block device.

I'm not sure we have a 1:1 match in what the APIs provide and expect and
what btrfs wants to do. At this point multi-device support for zoned
mode is not complete so we probably won't observe any problems with
hardware with different restrictions.

^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: btrfs zoned fixlets
  2022-03-24 16:52 btrfs zoned fixlets Christoph Hellwig
                   ` (2 preceding siblings ...)
  2022-03-25  7:35 ` btrfs zoned fixlets Johannes Thumshirn
@ 2022-04-08 16:41 ` Christoph Hellwig
  2022-04-08 16:50   ` David Sterba
  2022-04-11 16:39 ` David Sterba
  4 siblings, 1 reply; 17+ messages in thread
From: Christoph Hellwig @ 2022-04-08 16:41 UTC (permalink / raw)
  To: Josef Bacik, David Sterba, Naohiro Aota; +Cc: linux-btrfs

David, 

do you plan to pick these up?

^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: btrfs zoned fixlets
  2022-04-08 16:41 ` Christoph Hellwig
@ 2022-04-08 16:50   ` David Sterba
  0 siblings, 0 replies; 17+ messages in thread
From: David Sterba @ 2022-04-08 16:50 UTC (permalink / raw)
  To: Christoph Hellwig; +Cc: Josef Bacik, David Sterba, Naohiro Aota, linux-btrfs

On Fri, Apr 08, 2022 at 06:41:01PM +0200, Christoph Hellwig wrote:
> David, 
> 
> do you plan to pick these up?

Yes I do but I had some questions after the initial review and don't
know when I'll get back to it because of other patches being reviewed.

^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: btrfs zoned fixlets
  2022-03-24 16:52 btrfs zoned fixlets Christoph Hellwig
                   ` (3 preceding siblings ...)
  2022-04-08 16:41 ` Christoph Hellwig
@ 2022-04-11 16:39 ` David Sterba
  4 siblings, 0 replies; 17+ messages in thread
From: David Sterba @ 2022-04-11 16:39 UTC (permalink / raw)
  To: Christoph Hellwig; +Cc: Josef Bacik, David Sterba, Naohiro Aota, linux-btrfs

On Thu, Mar 24, 2022 at 05:52:08PM +0100, Christoph Hellwig wrote:
> Hi all,
> 
> this series fixes a minor and slightly less minor problem in the btrfs
> zoned device code.  Note that for the second patch the comment might
> not be correct any more - AFAICS 5.18 added support for the dup
> profile for zoned devices, which means we do have a real issue now
> if different devices have different hardware limitations.  I think we'll
> need some code to check that all zoned devices have the exact same
> hardware limits (max_sectors, max_segments, max_segment_size,
> queue_boundary, virt_boundary), but I don't know the code well enough
> to implement that myself
> 
> Found by code inspection as part of my bio cleanups.

Added to misc-next, thanks.

^ permalink raw reply	[flat|nested] 17+ messages in thread

end of thread, other threads:[~2022-04-11 16:43 UTC | newest]

Thread overview: 17+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-03-24 16:52 btrfs zoned fixlets Christoph Hellwig
2022-03-24 16:52 ` [PATCH 1/2] btrfs: remove the zoned/zone_size union in struct btrfs_fs_info Christoph Hellwig
2022-03-25  7:33   ` Johannes Thumshirn
2022-03-28 14:37     ` David Sterba
2022-03-28 12:46   ` Naohiro Aota
2022-03-28 19:01   ` David Sterba
2022-03-24 16:52 ` [PATCH 2/2] btrfs: fix and document the zoned device choice in alloc_new_bio Christoph Hellwig
2022-03-25  9:09   ` Johannes Thumshirn
2022-03-28 19:12     ` David Sterba
2022-03-28 23:04       ` Naohiro Aota
2022-03-30 15:10         ` David Sterba
2022-03-28 13:31   ` Naohiro Aota
2022-03-25  7:35 ` btrfs zoned fixlets Johannes Thumshirn
2022-03-25  7:50   ` Christoph Hellwig
2022-04-08 16:41 ` Christoph Hellwig
2022-04-08 16:50   ` David Sterba
2022-04-11 16:39 ` David Sterba

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.