qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: "Philippe Mathieu-Daudé" <philmd@linaro.org>
To: Sam Li <faithilikerun@gmail.com>, qemu-devel@nongnu.org
Cc: stefanha@redhat.com,
	"Marc-André Lureau" <marcandre.lureau@redhat.com>,
	"Kevin Wolf" <kwolf@redhat.com>, "Fam Zheng" <fam@euphon.net>,
	"Hanna Reitz" <hreitz@redhat.com>,
	"Thomas Huth" <thuth@redhat.com>,
	"Daniel P. Berrangé" <berrange@redhat.com>,
	"Paolo Bonzini" <pbonzini@redhat.com>,
	hare@suse.de, damien.lemoal@opensource.wdc.com,
	dmitry.fomichev@wdc.com, qemu-block@nongnu.org
Subject: Re: [PATCH v18 0/8] Add support for zoned device
Date: Fri, 24 Mar 2023 12:26:04 +0100	[thread overview]
Message-ID: <41f2ee75-0465-94d4-90bb-7289e49fdb5d@linaro.org> (raw)
In-Reply-To: <20230324090605.28361-1-faithilikerun@gmail.com>

Hi Sam,

On 24/3/23 10:05, Sam Li wrote:
> Zoned Block Devices (ZBDs) devide the LBA space to block regions called zones
> that are larger than the LBA size. It can only allow sequential writes, which
> reduces write amplification in SSD, leading to higher throughput and increased
> capacity. More details about ZBDs can be found at:
> 
> https://zonedstorage.io/docs/introduction/zoned-storage
> 
> The zoned device support aims to let guests (virtual machines) access zoned
> storage devices on the host (hypervisor) through a virtio-blk device. This
> involves extending QEMU's block layer and virtio-blk emulation code.  In its
> current status, the virtio-blk device is not aware of ZBDs but the guest sees
> host-managed drives as regular drive that will runs correctly under the most
> common write workloads.
> 
> This patch series extend the block layer APIs with the minimum set of zoned
> commands that are necessary to support zoned devices. The commands are - Report
> Zones, four zone operations and Zone Append.
> 
> There has been a debate on whethre introducing new zoned_host_device BlockDriver
> specifically for zoned devices. In the end, it's been decided to stick to
> existing host_device BlockDriver interface by only adding new zoned operations
> inside it. The benefit of that is to avoid further changes - one example is
> command line syntax - to the applications like Libvirt using QEMU zoned
> emulation.
> 
> It can be tested on a null_blk device using qemu-io or qemu-iotests. For
> example, to test zone report using qemu-io:
> $ path/to/qemu-io --image-opts -n driver=host_device,filename=/dev/nullb0
> -c "zrp offset nr_zones"

Sorry to jump late, but the patch subject prefixes are a bit confusing.
Some suggestions:

> Sam Li (8):
>    include: add zoned device structs

block/block-common: ...

>    file-posix: introduce helper functions for sysfs attributes

block/file-posix: ...

>    block: add block layer APIs resembling Linux ZonedBlockDevice ioctls

block/block-backend: ...

>    raw-format: add zone operations to pass through requests

block/raw-format: ...

>    config: add check to block layer

block: ...

>    qemu-iotests: test new zone operations

iotests: ...

>    block: add some trace events for new block layer APIs

I'd squash that with patch #4 "block/raw-format: add zone operations to 
pass through requests".

Regards,

Phil.

>    docs/zoned-storage: add zoned device documentation
> 
>   block.c                                |  19 ++
>   block/block-backend.c                  | 133 ++++++++
>   block/file-posix.c                     | 444 +++++++++++++++++++++++--
>   block/io.c                             |  41 +++
>   block/raw-format.c                     |  18 +
>   block/trace-events                     |   2 +
>   docs/devel/zoned-storage.rst           |  43 +++
>   docs/system/qemu-block-drivers.rst.inc |   6 +
>   include/block/block-common.h           |  43 +++
>   include/block/block-io.h               |   9 +
>   include/block/block_int-common.h       |  29 ++
>   include/block/raw-aio.h                |   6 +-
>   include/sysemu/block-backend-io.h      |  18 +
>   meson.build                            |   4 +
>   qemu-io-cmds.c                         | 149 +++++++++
>   tests/qemu-iotests/tests/zoned         |  89 +++++
>   tests/qemu-iotests/tests/zoned.out     |  53 +++
>   17 files changed, 1069 insertions(+), 37 deletions(-)
>   create mode 100644 docs/devel/zoned-storage.rst
>   create mode 100755 tests/qemu-iotests/tests/zoned
>   create mode 100644 tests/qemu-iotests/tests/zoned.out
> 



  parent reply	other threads:[~2023-03-24 15:38 UTC|newest]

Thread overview: 11+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-03-24  9:05 [PATCH v18 0/8] Add support for zoned device Sam Li
2023-03-24  9:05 ` [PATCH v18 1/8] include: add zoned device structs Sam Li
2023-03-24  9:05 ` [PATCH v18 2/8] file-posix: introduce helper functions for sysfs attributes Sam Li
2023-03-24  9:06 ` [PATCH v18 3/8] block: add block layer APIs resembling Linux ZonedBlockDevice ioctls Sam Li
2023-03-24  9:06 ` [PATCH v18 4/8] raw-format: add zone operations to pass through requests Sam Li
2023-03-24  9:06 ` [PATCH v18 5/8] config: add check to block layer Sam Li
2023-03-24  9:06 ` [PATCH v18 6/8] qemu-iotests: test new zone operations Sam Li
2023-03-24  9:06 ` [PATCH v18 7/8] block: add some trace events for new block layer APIs Sam Li
2023-03-24  9:06 ` [PATCH v18 8/8] docs/zoned-storage: add zoned device documentation Sam Li
2023-03-24 11:26 ` Philippe Mathieu-Daudé [this message]
2023-04-03 15:28   ` [PATCH v18 0/8] Add support for zoned device 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=41f2ee75-0465-94d4-90bb-7289e49fdb5d@linaro.org \
    --to=philmd@linaro.org \
    --cc=berrange@redhat.com \
    --cc=damien.lemoal@opensource.wdc.com \
    --cc=dmitry.fomichev@wdc.com \
    --cc=faithilikerun@gmail.com \
    --cc=fam@euphon.net \
    --cc=hare@suse.de \
    --cc=hreitz@redhat.com \
    --cc=kwolf@redhat.com \
    --cc=marcandre.lureau@redhat.com \
    --cc=pbonzini@redhat.com \
    --cc=qemu-block@nongnu.org \
    --cc=qemu-devel@nongnu.org \
    --cc=stefanha@redhat.com \
    --cc=thuth@redhat.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).