From: Peter Xu <peterx@redhat.com>
To: "Marc-André Lureau" <marcandre.lureau@redhat.com>
Cc: qemu-devel@nongnu.org, "Cédric Le Goater" <clg@redhat.com>,
"David Hildenbrand" <david@kernel.org>,
"Chenyi Qiang" <chenyi.qiang@intel.com>,
"Paolo Bonzini" <pbonzini@redhat.com>
Subject: Re: [PATCH v4 00/13] Make RamDiscardManager work with multiple sources & virtio-mem
Date: Wed, 13 May 2026 16:53:48 -0400 [thread overview]
Message-ID: <agTk3NSZaI9IwlUs@x1.local> (raw)
In-Reply-To: <20260504-rdm5-v4-0-bdf61e57c1e1@redhat.com>
On Mon, May 04, 2026 at 04:30:06PM +0400, Marc-André Lureau wrote:
> Hi,
>
> This is an attempt to fix the incompatibility of virtio-mem with confidential
> VMs. The solution implements what was discussed earlier with D. Hildenbrand:
> https://patchwork.ozlabs.org/project/qemu-devel/patch/20250407074939.18657-5-chenyi.qiang@intel.com/#3502238
>
> The first patches are misc cleanups. Then some code refactoring to have split a
> manager/source. And finally, the manager learns to deal with multiple sources.
>
> I haven't done thorough testing. I only launched a SEV guest with a virtio-mem
> device. It would be nice to have more tests for those scenarios with
> VFIO/virtio-mem/confvm.. In any case, review & testing needed!
>
> (help fix https://issues.redhat.com/browse/RHEL-131968)
Copy David for virtio-mem: David, please see if you're OK with virtio-mem
side of things; if you have time look at everything it'll be even better.
Copy Chenyi: would you please check with your environment on whether you
still hit issue with this series?
The whole series can be found here:
https://lore.kernel.org/all/20260504-rdm5-v4-0-bdf61e57c1e1@redhat.com/
Side note: this version still contain quite some "over 80 chars" checkpatch
complains... please consider fixing them when repost.
Thanks,
>
> v4:
> - added "system/physmem: make ram_block_discard_range() handle guest_memfd"
> - added "monitor: add 'info ramblock-attributes' command"
> - added "RFC: hw/virtio: start virtio-mem guest_memfd regions as shared"
> - skip calling source in notify_populate (it may not have updated its
> internal state)
> - rebased, collected trailer tags
>
> v3: issues found by Cédric
> - fix assertion error on shutdown, due to rcu-defer cleanup
> - fix API doc warnings
>
> v2:
> - drop replay_{populated,discarded} from source, suggested by Peter Xu
> - add extra manager cleanup
> - add r-b tags for preliminary patches
>
> ---
> Marc-André Lureau (13):
> system/memory: split RamDiscardManager into source and manager
> system/memory: move RamDiscardManager to separate compilation unit
> system/memory: constify section arguments
> system/ram-discard-manager: implement replay via is_populated iteration
> virtio-mem: remove replay_populated/replay_discarded implementation
> system/ram-discard-manager: drop replay from source interface
> system/memory: implement RamDiscardManager multi-source aggregation
> system/physmem: destroy ram block attributes before RCU-deferred reclaim
> system/memory: add RamDiscardManager reference counting and cleanup
> tests: add unit tests for RamDiscardManager multi-source aggregation
> system/physmem: make ram_block_discard_range() handle guest_memfd
> monitor: add 'info ramblock-attributes' command
> RFC: hw/virtio: start virtio-mem guest_memfd regions as shared
>
> MAINTAINERS | 4 +
> qapi/machine.json | 55 ++
> include/hw/vfio/vfio-container.h | 2 +-
> include/hw/vfio/vfio-cpr.h | 2 +-
> include/hw/virtio/virtio-mem.h | 3 -
> include/monitor/hmp.h | 1 +
> include/system/memory.h | 283 +-----
> include/system/ram-discard-manager.h | 358 ++++++++
> include/system/ramblock.h | 6 +-
> accel/kvm/kvm-all.c | 5 +-
> hw/core/machine-hmp-cmds.c | 32 +
> hw/vfio/cpr-legacy.c | 4 +-
> hw/vfio/listener.c | 10 +-
> hw/virtio/virtio-mem.c | 286 ++-----
> migration/ram.c | 6 +-
> system/memory.c | 83 +-
> system/memory_mapping.c | 4 +-
> system/physmem.c | 27 +-
> system/ram-block-attributes.c | 329 +++----
> system/ram-discard-manager.c | 612 +++++++++++++
> target/i386/kvm/tdx.c | 2 +-
> tests/unit/test-ram-discard-manager-stubs.c | 48 ++
> tests/unit/test-ram-discard-manager.c | 1235 +++++++++++++++++++++++++++
> hmp-commands-info.hx | 13 +
> rust/bindings/system-sys/lib.rs | 2 +-
> system/meson.build | 1 +
> system/trace-events | 2 +-
> tests/unit/meson.build | 8 +-
> 28 files changed, 2597 insertions(+), 826 deletions(-)
> ---
> base-commit: ac0cc20ad2fe0b8df2e5d9458e90a095ac711ab1
> change-id: 20260414-rdm5-b6df2366d603
>
> Best regards,
> --
> Marc-André Lureau <marcandre.lureau@redhat.com>
>
--
Peter Xu
next prev parent reply other threads:[~2026-05-13 20:54 UTC|newest]
Thread overview: 23+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-05-04 12:30 [PATCH v4 00/13] Make RamDiscardManager work with multiple sources & virtio-mem Marc-André Lureau
2026-05-04 12:30 ` [PATCH v4 01/13] system/memory: split RamDiscardManager into source and manager Marc-André Lureau
2026-05-04 12:30 ` [PATCH v4 02/13] system/memory: move RamDiscardManager to separate compilation unit Marc-André Lureau
2026-05-04 12:30 ` [PATCH v4 03/13] system/memory: constify section arguments Marc-André Lureau
2026-05-04 12:30 ` [PATCH v4 04/13] system/ram-discard-manager: implement replay via is_populated iteration Marc-André Lureau
2026-05-13 20:40 ` Peter Xu
2026-05-04 12:30 ` [PATCH v4 05/13] virtio-mem: remove replay_populated/replay_discarded implementation Marc-André Lureau
2026-05-13 20:40 ` Peter Xu
2026-05-04 12:30 ` [PATCH v4 06/13] system/ram-discard-manager: drop replay from source interface Marc-André Lureau
2026-05-13 20:40 ` Peter Xu
2026-05-04 12:30 ` [PATCH v4 07/13] system/memory: implement RamDiscardManager multi-source aggregation Marc-André Lureau
2026-05-04 12:30 ` [PATCH v4 08/13] system/physmem: destroy ram block attributes before RCU-deferred reclaim Marc-André Lureau
2026-05-04 12:30 ` [PATCH v4 09/13] system/memory: add RamDiscardManager reference counting and cleanup Marc-André Lureau
2026-05-04 12:30 ` [PATCH v4 10/13] tests: add unit tests for RamDiscardManager multi-source aggregation Marc-André Lureau
2026-05-04 12:30 ` [PATCH v4 11/13] system/physmem: make ram_block_discard_range() handle guest_memfd Marc-André Lureau
2026-05-13 20:37 ` Peter Xu
2026-05-04 12:30 ` [PATCH v4 12/13] monitor: add 'info ramblock-attributes' command Marc-André Lureau
2026-05-13 20:39 ` Peter Xu
2026-05-04 12:30 ` [PATCH v4 13/13] RFC: hw/virtio: start virtio-mem guest_memfd regions as shared Marc-André Lureau
2026-05-13 20:47 ` Peter Xu
2026-05-14 7:32 ` Chenyi Qiang
2026-05-13 20:53 ` Peter Xu [this message]
2026-05-14 5:15 ` [PATCH v4 00/13] Make RamDiscardManager work with multiple sources & virtio-mem Chenyi Qiang
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=agTk3NSZaI9IwlUs@x1.local \
--to=peterx@redhat.com \
--cc=chenyi.qiang@intel.com \
--cc=clg@redhat.com \
--cc=david@kernel.org \
--cc=marcandre.lureau@redhat.com \
--cc=pbonzini@redhat.com \
--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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox