From: Niklas Cassel <cassel@kernel.org>
To: Daejun Park <daejun7.park@samsung.com>
Cc: "qemu-devel@nongnu.org" <qemu-devel@nongnu.org>,
Jeuk Kim <jeuk20.kim@samsung.com>,
"farosas@suse.de" <farosas@suse.de>,
"lvivier@redhat.com" <lvivier@redhat.com>,
"pbonzini@redhat.com" <pbonzini@redhat.com>,
"kwolf@redhat.com" <kwolf@redhat.com>,
"hreitz@redhat.com" <hreitz@redhat.com>,
"qemu-block@nongnu.org" <qemu-block@nongnu.org>,
"pierrick.bouvier@oss.qualcomm.com"
<pierrick.bouvier@oss.qualcomm.com>,
"stanleyjhu@google.com" <stanleyjhu@google.com>,
Keoseong Park <keosung.park@samsung.com>,
"qemu-stable@nongnu.org" <qemu-stable@nongnu.org>,
"Michael S. Tsirkin" <mst@redhat.com>,
Stefan Hajnoczi <stefanha@redhat.com>, Fam Zheng <fam@euphon.net>,
John Snow <jsnow@redhat.com>, "Denis V. Lunev" <den@openvz.org>,
Sam Li <faithilikerun@gmail.com>,
Damien Le Moal <dlemoal@kernel.org>
Subject: Re: [PATCH v3 0/6] Support for Zoned UFS
Date: Mon, 26 Oct 2026 14:04:52 +0100 [thread overview]
Message-ID: <at9P9OWMQUQR501_@ryzen> (raw)
In-Reply-To: <20261020001647epcms2p52cd58173164a43e252c33a3eb5935dc8@epcms2p5>
Hello Daejun,
On Tue, Oct 20, 2026 at 09:16:47AM +0900, Daejun Park wrote:
> This series lets a ufs-lu be a host-managed zoned block device (ZBC)
> with zoned=on, so that the zoned storage stack, for example f2fs on
> host-managed zones, can be tested on UFS without zoned UFS hardware.
> Patches 1-3 fix the command path that the zoned code relies on and can
> be merged first; patch 4 documents zoned logical units, patch 5 adds
> them and patch 6 the tests.
>
> Not modelled: persistent zone state, conventional and gap zones, and the
> zoned UFS descriptor bits.
>
> Tested with the UFS qtests (also under ASan and UBSan) and with Linux
> 7.3-rc7 and android17-6.18 guests, legacy doorbell and MCQ: fio
> --zonemode=zbd with verification, blkzone, and f2fs on android17-6.18.
This series does not appear to be making use of the zoned block layer APIs
that currently exist in QEMU (see e.g. include/block/block-common.h and
block/io.c).
I know that NVMe currently does not use it, but I don't think we should
allow adding zoned storage support in additional storage protocols, if
they do not make use of the QEMU zoned block layer APIs.
Sam Li has a series that converts NVMe to use the QEMU zoned block layer
APIs, even though that series seems to have stalled:
https://lore.kernel.org/qemu-devel/20240122190013.41302-1-faithilikerun@gmail.com/
Currently, it is only virtio-blk which is making use of the QEMU zoned
block layer APIs, and the only supported backend is file-posix.c.
However, there is work in progress to add qcow2 backend support for
the QEMU zoned block layer APIs:
https://lore.kernel.org/qemu-devel/20261026121259.3354561-1-cassel@kernel.org/
Which requires the (still not merged...) prep series:
https://lore.kernel.org/qemu-devel/20260921142819.2916043-1-cassel@kernel.org/
If you make use of the QEMU zoned block layer APIs, you will get support
for conventional zones, and will not need to add a UFS property for
max_open_zones. Once the qcow2 series lands, you will also get persistence.
If you want inspiration, you can see how virtio_blk_zone_report_complete()
(hw/block/virtio-blk.c) converts between the QEMU zoned block layer zone
states BLK_ZS_* and the virtio-blk VIRTIO_BLK_ZS_* defined zone states.
If you want futher inspiration, you could look at my (work in progress)
branch (note: this branch is going to be rebased multiple times), which
converts between the QEMU zoned block layer zone states BLK_ZS_* and the
zone states defined by the Zone ATA Commands (ZAC) specification:
https://github.com/floatious/qemu/tree/zac/
Kind regards,
Niklas
prev parent reply other threads:[~2026-10-26 13:05 UTC|newest]
Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <CGME20261020001647epcms2p52cd58173164a43e252c33a3eb5935dc8@epcms2p5>
2026-10-20 0:16 ` [PATCH v3 0/6] Support for Zoned UFS Daejun Park
2026-10-20 0:17 ` [PATCH v3 1/6] hw/ufs: Fail SCSI commands that move data without a PRDT Daejun Park
2026-10-20 0:18 ` [PATCH v3 2/6] hw/ufs: Pass SYNCHRONIZE CACHE(16) to scsi-hd as SYNCHRONIZE CACHE(10) Daejun Park
2026-10-20 0:19 ` [PATCH v3 3/6] hw/ufs: Check the PRDT size against the transfer length of the CDB Daejun Park
2026-10-20 12:24 ` Stanley Jhu
2026-10-20 0:19 ` [PATCH v3 4/6] docs/system: Document zoned UFS logical units Daejun Park
2026-10-20 0:21 ` [PATCH v3 5/6] hw/ufs: Support for Zoned UFS Daejun Park
2026-10-20 12:24 ` Stanley Jhu
2026-10-20 0:22 ` [PATCH v3 6/6] tests/qtest: Add tests " Daejun Park
2026-10-22 3:09 ` [PATCH v3 0/6] Support " Jeuk Kim
2026-10-26 13:04 ` Niklas Cassel [this message]
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=at9P9OWMQUQR501_@ryzen \
--to=cassel@kernel.org \
--cc=daejun7.park@samsung.com \
--cc=den@openvz.org \
--cc=dlemoal@kernel.org \
--cc=faithilikerun@gmail.com \
--cc=fam@euphon.net \
--cc=farosas@suse.de \
--cc=hreitz@redhat.com \
--cc=jeuk20.kim@samsung.com \
--cc=jsnow@redhat.com \
--cc=keosung.park@samsung.com \
--cc=kwolf@redhat.com \
--cc=lvivier@redhat.com \
--cc=mst@redhat.com \
--cc=pbonzini@redhat.com \
--cc=pierrick.bouvier@oss.qualcomm.com \
--cc=qemu-block@nongnu.org \
--cc=qemu-devel@nongnu.org \
--cc=qemu-stable@nongnu.org \
--cc=stanleyjhu@google.com \
--cc=stefanha@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 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.