On 1/13/2025 6:56 PM, David Hildenbrand wrote: > On 13.12.24 08:08, Chenyi Qiang wrote: >> As guest_memfd is now managed by guest_memfd_manager with >> RamDiscardManager, only block uncoordinated discard. >> >> Signed-off-by: Chenyi Qiang <chenyi.qiang@xxxxxxxxx> >> --- >> system/physmem.c | 2 +- >> 1 file changed, 1 insertion(+), 1 deletion(-) >> >> diff --git a/system/physmem.c b/system/physmem.c >> index 532182a6dd..585090b063 100644 >> --- a/system/physmem.c >> +++ b/system/physmem.c >> @@ -1872,7 +1872,7 @@ static void ram_block_add(RAMBlock *new_block, >> Error **errp) >> assert(kvm_enabled()); >> assert(new_block->guest_memfd < 0); >> - ret = ram_block_discard_require(true); >> + ret = ram_block_coordinated_discard_require(true); >> if (ret < 0) { >> error_setg_errno(errp, -ret, >> "cannot set up private guest memory: >> discard currently blocked"); > > Would that also unlock virtio-mem by accident? Hum, that's true. At present, the rdm in MR can only point to one instance, thus if we unlock virtio-mem and try to use it with guest_memfd, it would trigger assert in memory_region_set_ram_discard_manager(). Maybe we need to add some explicit check in virtio-mem to exclude it with guest_memfd at present? >