On Tue, Jul 16, 2024 at 09:03:00AM -0700, Sean Christopherson wrote: > > + To support huge pages, guest_memfd will take ownership of the hugepages, and > > provide interested parties (userspace, KVM, iommu) with pages to be used. > > + guest_memfd will track usage of (sub)pages, for both private and shared > > memory > > + Pages will be broken into smaller (probably 4K) chunks at creation time to > > simplify implementation (as opposed to splitting at runtime when private to > > shared conversion is requested by the guest) > > FWIW, I doubt we'll ever release a version with mmap()+guest_memfd support that > shatters pages at creation. I can see it being an intermediate step, e.g. to > prove correctness and provide a bisection point, but shattering hugepages at > creation would effectively make hugepage support useless. Why? If the private memory retains its contiguity seperately but the struct pages are removed from the vmemmap, what is the downside? As I understand it the point is to give a large contiguous range to the private world and use only 4k pages to give the hypervisor world access to limited amounts of the memory. Is there a reason that not having the shared memory elevated to higher contiguity a deal breaker? Jason