On Thu, Jan 09, 2020 at 12:02:16PM +0000, Dr. David Alan Gilbert wrote: > * Jason Wang (jasow...@redhat.com) wrote: > > > > On 2020/1/8 下午9:53, Dr. David Alan Gilbert (git) wrote: > > > From: "Dr. David Alan Gilbert" <dgilb...@redhat.com> > > > > > > Hyperv's synic (that we emulate) is a feature that allows the guest > > > to place some magic (4k) pages of RAM anywhere it likes in GPA. > > > This confuses vhost's RAM section merging when these pages > > > land over the top of hugepages. > > > > > > Hi David: > > > > A silly question, is this because the alignment when adding sections? If > > yes, what's the reason for doing alignment which is not a must for vhost > > memory table. > > Page alignment is a bit odd with vhost-user - it ends up having to mmap > each of the sections itself; and still has to map them as hugepages > to be able to mmap - in the old world you could sometimes have > the daemon mmaping the same chunk of memory twice into the vhost-user > process; without the aggregation you'd get a hugepage mapping for the > 0-2MB chunk for the 0-512K mapping, and then maybe another 0-2MB chunk > for some of the other parts over 512K. > With postcopy we can't have the multiple mappings of the same part of > guest memory; we need to have one mapping for userfault. > > Also, given the 16 separate synic regions, you'd probably end up having > a lot of wasted vhost-sections. > > Dave
So I'd worry that this is more an abuse of an interface. E.g. this means it's skipped from dumps, which is not nice. And for vhost I worry these patches will break pass-through of PCI attached memory. > > > > > Thanks > > > > > > > > > > Since they're not normal RAM, and they shouldn't have vhost DMAing > > > into them, exclude them from the vhost set. > > > > > > I do that by marking them as device-ram and then excluding device-ram > > > from vhost. > > > > > > bz: https://bugzilla.redhat.com/show_bug.cgi?id=1779041 > > > > > > Dr. David Alan Gilbert (2): > > > vhost: Don't pass ram device sections > > > hyperv/synic: Allocate as ram_device > > > > > > hw/hyperv/hyperv.c | 14 ++++++++------ > > > hw/virtio/vhost.c | 1 + > > > 2 files changed, 9 insertions(+), 6 deletions(-) > > > > -- > Dr. David Alan Gilbert / dgilb...@redhat.com / Manchester, UK