On Fri, Sep 25, 2026 at 09:04:14AM -0400, Peter Xu wrote: > On Thu, Sep 24, 2026 at 08:43:06PM -0500, Michael Roth wrote: > > v1: https://lore.kernel.org/r/[email protected] > > v2: https://lore.kernel.org/r/[email protected] > > v3: https://lore.kernel.org/r/[email protected]/ > > v4: > > https://lore.kernel.org/qemu-devel/[email protected]/ > > v5: > > https://lore.kernel.org/qemu-devel/[email protected]/ > > v6: > > - Rename the hostmem property to 'x-guest-memfd' since initial users > > are expected to be developers or early enablers (Markus) > > - Introduce accompanying 'guest-memfd' RST doc and reference it in > > the QAPI schema documentation for x-guest-memfd (Markus) > > - Move all renaming patches toward beginning of the series for > > consistency (David) > > - Fix mispellings in commit messages (David) > > - Drop ramlist lock in new ram_block_add() error path > > - Collect Reviewed-by's > > - Rebase on QEMU master > > Michael, > > Sorry, I missed your very last discussion with Markus.. only notice until > I saw the repost. I agree we can mark it experimental, but just to mention > we should have moved to use "unstable" rather than prefix "x-", then we > don't need to bother with the ABI change, see: > > commit a3c45b3e62962f99338716b1347cfb0d427cea44 > Author: Markus Armbruster <[email protected]> > Date: Thu Oct 28 12:25:12 2021 +0200 > > qapi: New special feature flag "unstable" > > No need for another repost, I can manage that with two fixups when queue, > please shoot if there's any objections. Attached at the end.
Thanks Peter, the fixups look good. Since Markus pointed out a couple other things to fix up I went ahead and squashed these into v7 which will go out shortly. Thanks, Mike > > Thanks, > > ===8<=== > From 94884f136d9d42044e3f4cfcf440df8016ad3e99 Mon Sep 17 00:00:00 2001 > From: Peter Xu <[email protected]> > Date: Fri, 25 Sep 2026 08:51:13 -0400 > Subject: [PATCH 1/2] fixup! hostmem: Support fully shared guest memfd to back > a VM > > Signed-off-by: Peter Xu <[email protected]> > --- > docs/system/guest-memfd.rst | 4 ++-- > qapi/qom.json | 9 +++++++-- > backends/hostmem-memfd.c | 10 +++++----- > 3 files changed, 14 insertions(+), 9 deletions(-) > > diff --git a/docs/system/guest-memfd.rst b/docs/system/guest-memfd.rst > index f7cef19283..d62a214a91 100644 > --- a/docs/system/guest-memfd.rst > +++ b/docs/system/guest-memfd.rst > @@ -38,10 +38,10 @@ exposed by QEMU command-line options. > For non-Confidential guests, guest-memfd can be used in a manner that > is somewhat interchangeable with a normal memfd. Currently, this is > handled by using the same memory-backend implementation as memfd, but > -with an additional 'x-guest-memfd=on' option. E.g.:: > +with an additional 'guest-memfd=on' option. E.g.:: > > qemu ... \ > - -object memory-backend-memfd,id=ID,size=SIZE,share=on,x-guest-memfd=on > + -object memory-backend-memfd,id=ID,size=SIZE,share=on,guest-memfd=on > > Note that the share=on option is required for guest-memfd, since it > does not support anonymous memory allocations or COW-like semantics. > diff --git a/qapi/qom.json b/qapi/qom.json > index 602b17ad83..7423acea8f 100644 > --- a/qapi/qom.json > +++ b/qapi/qom.json > @@ -780,10 +780,14 @@ > # @seal: if true, create a sealed-file, which will block further > # resizing of the memory (default: true) > # > -# @x-guest-memfd: if 'on', use guest-memfd to back the memory region. > +# @guest-memfd: if 'on', use guest-memfd to back the memory region. > # See the "guest-memfd" QEMU documentation for more details. > # (default: auto, since: 11.2) > # > +# Features: > +# > +# @unstable: Member @guest-memfd is experimental. > +# > # Since: 2.12 > ## > { 'struct': 'MemoryBackendMemfdProperties', > @@ -791,7 +795,8 @@ > 'data': { '*hugetlb': 'bool', > '*hugetlbsize': 'size', > '*seal': 'bool', > - '*x-guest-memfd': 'OnOffAuto' }, > + '*guest-memfd': { 'type': 'OnOffAuto', > + 'features': [ 'unstable' ] } }, > 'if': 'CONFIG_LINUX' } > > ## > diff --git a/backends/hostmem-memfd.c b/backends/hostmem-memfd.c > index a164bb659f..666593ff6c 100644 > --- a/backends/hostmem-memfd.c > +++ b/backends/hostmem-memfd.c > @@ -59,14 +59,14 @@ memfd_backend_memory_alloc(HostMemoryBackend *backend, > Error **errp) > > if (m->guest_memfd == ON_OFF_AUTO_ON) { > /* > - * NOTE: x-guest-memfd ignores seal=on/off because it always > + * NOTE: guest-memfd ignores seal=on/off because it always > * implicitly seals the FD by definition. > */ > if (!backend->share) { > - error_setg(errp, "x-guest-memfd=on must be used with share=on"); > + error_setg(errp, "guest-memfd=on must be used with share=on"); > return false; > } else if (m->hugetlb) { > - error_setg(errp, "x-guest-memfd=on doesn't support hugetlb=on"); > + error_setg(errp, "guest-memfd=on doesn't support hugetlb=on"); > return false; > } > > @@ -203,10 +203,10 @@ memfd_backend_class_init(ObjectClass *oc, const void > *data) > "Huge pages size (ex: 2M, > 1G)"); > } > > - object_class_property_add(oc, "x-guest-memfd", "OnOffAuto", > + object_class_property_add(oc, "guest-memfd", "OnOffAuto", > memfd_backend_get_guest_memfd, > memfd_backend_set_guest_memfd, NULL, NULL); > - object_class_property_set_description(oc, "x-guest-memfd", > + object_class_property_set_description(oc, "guest-memfd", > "Use guest memfd"); > > object_class_property_add_bool(oc, "seal", > -- > 2.55.0 > > > From efb5a9d33373e0dcedbfec3dce28844164ccb8c8 Mon Sep 17 00:00:00 2001 > From: Peter Xu <[email protected]> > Date: Fri, 25 Sep 2026 08:51:26 -0400 > Subject: [PATCH 2/2] fixup! tests/migration-test: Support guest-memfd init > shared mem type > > Signed-off-by: Peter Xu <[email protected]> > --- > tests/qtest/migration/framework.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/tests/qtest/migration/framework.c > b/tests/qtest/migration/framework.c > index 93225e3720..b7aef6b21c 100644 > --- a/tests/qtest/migration/framework.c > +++ b/tests/qtest/migration/framework.c > @@ -301,7 +301,7 @@ static char *migrate_mem_type_get_opts(MemType type, > const char *memory_size) > backend = g_strdup("-object memory-backend-memfd"); > break; > case MEM_TYPE_GUEST_MEMFD: > - backend = g_strdup("-object memory-backend-memfd,x-guest-memfd=on"); > + backend = g_strdup("-object memory-backend-memfd,guest-memfd=on"); > break; > default: > g_assert_not_reached(); > -- > 2.55.0 > > > > -- > Peter Xu >
