Messages in this thread | | | From | Dan Williams <> | Date | Wed, 6 Nov 2019 21:48:22 -0800 | Subject | Re: [PATCH 1/2] KVM: MMU: Do not treat ZONE_DEVICE pages as being reserved |
| |
On Wed, Nov 6, 2019 at 4:01 PM Dan Williams <dan.j.williams@intel.com> wrote: > > On Wed, Nov 6, 2019 at 3:39 PM Sean Christopherson > <sean.j.christopherson@intel.com> wrote: > > > > On Wed, Nov 06, 2019 at 03:20:11PM -0800, Dan Williams wrote: > > > After some more thought I'd feel more comfortable just collapsing the > > > ZONE_DEVICE case into the VM_IO/VM_PFNMAP case. I.e. with something > > > like this (untested) that just drops the reference immediately and let > > > kvm_is_reserved_pfn() do the right thing going forward. > > > > This will break the page fault flow, as it will allow the page to be > > whacked before KVM can ensure it will get proper notification from the > > mmu_notifier. E.g. KVM would install the PFN in its secondary MMU after > > getting the invalidate notification for the PFN. > > How do mmu notifiers get held off by page references and does that > machinery work with ZONE_DEVICE? Why is this not a concern for the > VM_IO and VM_PFNMAP case?
Put another way, I see no protection against truncate/invalidate afforded by a page pin. If you need guarantees that the page remains valid in the VMA until KVM can install a mmu notifier that needs to happen under the mmap_sem as far as I can see. Otherwise gup just weakly asserts "this pinned page was valid in this vma at one point in time".
| |