Re: [PATCH v5 00/12] Make RamDiscardManager work with multiple sources & virtio-mem
Marc-André Lureau <[email protected]> Fri, 19 Jun 2026 00:11:48 +0400
| Newsgroups | org.nongnu.qemu-rust,org.kernel.vger.kvm,org.nongnu.qemu-devel |
|---|---|
| Message-ID | <CAJ+F1CKRvSWDOvKC98e_7uyjgJMuXfhOHP83H0s7a=+ZrYxA1g@mail.gmail.com> |
Hi On Thu, Jun 4, 2026 at 5:46=E2=80=AFPM Marc-Andr=C3=A9 Lureau <[email protected]> wrote: > > Hi, > > This is an attempt to fix the incompatibility of virtio-mem with confiden= tial > VMs. The solution implements what was discussed earlier with D. Hildenbra= nd: > https://patchwork.ozlabs.org/project/qemu-devel/patch/20250407074939.1865= [email protected]/#3502238 > > The first patches are misc cleanups. Then some code refactoring to have s= plit a > manager/source. And finally, the manager learns to deal with multiple sou= rces. > > This has been tested together with the Linux kernel series from > Zhenzhong Duan [1] for TDX guests. > > (help fix https://issues.redhat.com/browse/RHEL-131968) Can the patch 1-11 be queued or are we missing something? (RFC patch 12 can be dropped for now) thanks > > v5: > - explain why InterfaceClass in rust binding is not needed after > moving RamDiscardSource > - drop extraneous added blank line > - replaced a runtime "if (has_rdm)"" with an assert() > - dropped "RFC: hw/virtio: start virtio-mem guest_memfd regions as > shared", in favour of start-private memory approach from "[RFC PATCH > 0/6] Support virtio-mem memory hotplug in TDX guests" [1] > - demote "monitor: add 'info ramblock-attributes'" as RFC > - rebased and collected trailers > > v4: > - added "system/physmem: make ram_block_discard_range() handle guest_mem= fd" > - 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=C3=A9dric > - 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 > > - Link to v4: https://lore.kernel.org/qemu-devel/20260504-rdm5-v4-0-bdf61= [email protected] > > [1]: https://lore.kernel.org/lkml/20260604093551.1511079-1-zhenzhong.duan= @intel.com/ > > --- > Marc-Andr=C3=A9 Lureau (12): > 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 itera= tion > 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 re= claim > system/memory: add RamDiscardManager reference counting and cleanup > tests: add unit tests for RamDiscardManager multi-source aggregatio= n > system/physmem: make ram_block_discard_range() handle guest_memfd > RFC: monitor: add 'info ramblock-attributes' command > > MAINTAINERS | 4 + > qapi/machine.json | 56 ++ > 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 | 279 +----- > include/system/ram-discard-manager.h | 358 ++++++++ > include/system/ramblock.h | 5 +- > accel/kvm/kvm-all.c | 2 +- > hw/core/machine-hmp-cmds.c | 32 + > hw/vfio/cpr-legacy.c | 4 +- > hw/vfio/listener.c | 10 +- > hw/virtio/virtio-mem.c | 259 +----- > migration/ram.c | 6 +- > system/memory.c | 88 +- > system/memory_mapping.c | 4 +- > system/physmem.c | 27 +- > system/ram-block-attributes.c | 328 +++---- > 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, 2569 insertions(+), 824 deletions(-) > --- > base-commit: 405c32d2b18a683ba36301351af75125d9afda08 > change-id: 20260414-rdm5-b6df2366d603 > > Best regards, > -- > Marc-Andr=C3=A9 Lureau <[email protected]> > >