On Fri, Aug 18, 2023 at 05:50:08AM -0400, Xiaoyao Li wrote: > From: Isaku Yamahata <isaku.yamahata@xxxxxxxxx> > > Because vMMIO region needs to be shared region, guest TD may explicitly > convert such region from private to shared. Don't complain such > conversion. > > Signed-off-by: Isaku Yamahata <isaku.yamahata@xxxxxxxxx> > Signed-off-by: Xiaoyao Li <xiaoyao.li@xxxxxxxxx> > --- > accel/kvm/kvm-all.c | 20 ++++++++++++++++++-- > 1 file changed, 18 insertions(+), 2 deletions(-) > > diff --git a/accel/kvm/kvm-all.c b/accel/kvm/kvm-all.c > index fceec7f2a83f..9d0aa8c97feb 100644 > --- a/accel/kvm/kvm-all.c > +++ b/accel/kvm/kvm-all.c > @@ -3094,8 +3094,24 @@ static int kvm_convert_memory(hwaddr start, hwaddr size, bool to_private) > */ > ram_block_convert_range(rb, offset, size, to_private); > } else { > - warn_report("Convert non guest-memfd backed memory region (0x%"HWADDR_PRIx" ,+ 0x%"HWADDR_PRIx") to %s", > - start, size, to_private ? "private" : "shared"); > + MemoryRegion *mr = section.mr; > + > + /* > + * Because vMMIO region must be shared, guest TD may convert vMMIO > + * region to shared explicitly. Don't complain such case. See > + * memory_region_type() for checking if the region is MMIO region. > + */ > + if (to_private || > + memory_region_is_ram(mr) || > + memory_region_is_ram_device(mr) || > + memory_region_is_rom(mr) || > + memory_region_is_romd(mr)) { Should we also have !is_tdx_vm() as the first clause to check, as IIUC you only need the special logic for TDX VMs. > + warn_report("Convert non guest-memfd backed memory region (0x%"HWADDR_PRIx" ,+ 0x%"HWADDR_PRIx") of %s to %s", > + start, size, mr->name, to_private ? "private" : "shared"); > + } else { > + ret = 0; > + } Inconsistent indentation here due to use of tabs > + > } > > memory_region_unref(section.mr); > -- > 2.34.1 > With regards, Daniel -- |: https://berrange.com -o- https://www.flickr.com/photos/dberrange :| |: https://libvirt.org -o- https://fstop138.berrange.com :| |: https://entangle-photo.org -o- https://www.instagram.com/dberrange :|