From: Stefan Hajnoczi <stefanha@redhat.com>
To: Sam Li <faithilikerun@gmail.com>
Cc: qemu-devel@nongnu.org, qemu-block@nongnu.org, hare@suse.de,
dmitry.fomichev@wdc.com, Kevin Wolf <kwolf@redhat.com>,
damien.lemoal@opensource.wdc.com, Eric Blake <eblake@redhat.com>,
Fam Zheng <fam@euphon.net>, Markus Armbruster <armbru@redhat.com>,
Hanna Reitz <hreitz@redhat.com>
Subject: Re: [PATCH v6 6/8] config: add check to block layer
Date: Sat, 6 Aug 2022 08:23:20 -0400 [thread overview]
Message-ID: <Yu5dOK5UZZzuUeVt@fedora> (raw)
In-Reply-To: <20220805075751.77499-7-faithilikerun@gmail.com>
[-- Attachment #1: Type: text/plain, Size: 1799 bytes --]
On Fri, Aug 05, 2022 at 03:57:49PM +0800, Sam Li wrote:
> Putting zoned/non-zoned BlockDrivers on top of each other is not
> allowed.
>
> Signed-off-by: Sam Li <faithilikerun@gmail.com>
> Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com>
> ---
> block.c | 13 +++++++++++++
> block/file-posix.c | 1 +
> block/raw-format.c | 1 +
> include/block/block_int-common.h | 10 ++++++++++
> 4 files changed, 25 insertions(+)
>
> diff --git a/block.c b/block.c
> index bc85f46eed..8a259b158c 100644
> --- a/block.c
> +++ b/block.c
> @@ -7947,6 +7947,19 @@ void bdrv_add_child(BlockDriverState *parent_bs, BlockDriverState *child_bs,
> return;
> }
>
> + /*
> + * Non-zoned block drivers do not follow zoned storage constraints
> + * (i.e. sequential writes to zones). Refuse mixing zoned and non-zoned
> + * drivers in a graph.
> + */
> + if (!parent_bs->drv->supports_zoned_children && child_bs->drv->is_zoned) {
> + error_setg(errp, "Cannot add a %s child to a %s parent",
> + child_bs->drv->is_zoned ? "zoned" : "non-zoned",
> + parent_bs->drv->supports_zoned_children ?
> + "support zoned children" : "not support zoned children");
> + return;
> + }
This doesn't handle the case where a filter node (like I/O throttling)
is inserted above a raw block driver with a zoned_host_device child.
Can we replace child_bs->drv->is_zoned with child_bs->bl.zoned ==
BLK_Z_HM? I think the is_zoned field is unnecessary.
That way the block/raw-format.c .bdrv_refresh_limits() function can
propagate its child's zone block limits (including the zone model) and
this check will work correctly.
Stefan
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 488 bytes --]
next prev parent reply other threads:[~2022-08-08 13:54 UTC|newest]
Thread overview: 17+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-08-05 7:57 [PATCH v6 0/8] Add support for zoned device Sam Li
2022-08-05 7:57 ` [PATCH v6 1/8] include: add zoned device structs Sam Li
2022-08-05 7:57 ` [PATCH v6 2/8] file-posix: introduce get_sysfs_long_val for the long sysfs attribute Sam Li
2022-08-06 12:29 ` Stefan Hajnoczi
2022-08-08 13:56 ` Sam Li
2022-08-05 7:57 ` [PATCH v6 3/8] file-posix: introduce get_sysfs_str_val for device zoned model Sam Li
2022-08-06 12:50 ` Stefan Hajnoczi
2022-08-08 13:59 ` Sam Li
2022-08-05 7:57 ` [PATCH v6 4/8] block: add block layer APIs resembling Linux ZonedBlockDevice ioctls Sam Li
2022-08-06 13:07 ` Stefan Hajnoczi
2022-08-07 23:52 ` Sam Li
2022-08-05 7:57 ` [PATCH v6 5/8] raw-format: add zone operations to pass through requests Sam Li
2022-08-05 7:57 ` [PATCH v6 6/8] config: add check to block layer Sam Li
2022-08-06 12:23 ` Stefan Hajnoczi [this message]
2022-08-05 7:57 ` [PATCH v6 7/8] qemu-iotests: test new zone operations Sam Li
2022-08-05 7:57 ` [PATCH v6 8/8] docs/zoned-storage: add zoned device documentation Sam Li
2022-08-06 12:26 ` Stefan Hajnoczi
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=Yu5dOK5UZZzuUeVt@fedora \
--to=stefanha@redhat.com \
--cc=armbru@redhat.com \
--cc=damien.lemoal@opensource.wdc.com \
--cc=dmitry.fomichev@wdc.com \
--cc=eblake@redhat.com \
--cc=faithilikerun@gmail.com \
--cc=fam@euphon.net \
--cc=hare@suse.de \
--cc=hreitz@redhat.com \
--cc=kwolf@redhat.com \
--cc=qemu-block@nongnu.org \
--cc=qemu-devel@nongnu.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 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.