• Sean Christopherson's avatar
    KVM: x86/mmu: Use huge pages for DAX-backed files · e851265a
    Sean Christopherson authored
    Walk the host page tables to identify hugepage mappings for ZONE_DEVICE
    pfns, i.e. DAX pages.  Explicitly query kvm_is_zone_device_pfn() when
    deciding whether or not to bother walking the host page tables, as DAX
    pages do not set up the head/tail infrastructure, i.e. will return false
    for PageCompound() even when using huge pages.
    
    Zap ZONE_DEVICE sptes when disabling dirty logging, e.g. if live
    migration fails, to allow KVM to rebuild large pages for DAX-based
    mappings.  Presumably DAX favors large pages, and worst case scenario is
    a minor performance hit as KVM will need to re-fault all DAX-based
    pages.
    Suggested-by: default avatarBarret Rhoden <brho@google.com>
    Cc: David Hildenbrand <david@redhat.com>
    Cc: Dan Williams <dan.j.williams@intel.com>
    Cc: Jason Zeng <jason.zeng@intel.com>
    Cc: Dave Jiang <dave.jiang@intel.com>
    Cc: Liran Alon <liran.alon@oracle.com>
    Cc: linux-nvdimm <linux-nvdimm@lists.01.org>
    Signed-off-by: default avatarSean Christopherson <sean.j.christopherson@intel.com>
    Signed-off-by: default avatarPaolo Bonzini <pbonzini@redhat.com>
    e851265a
mmu.c 168 KB