• Balbir Singh's avatar
    KVM: PPC: Book3S HV: Migrate pinned pages out of CMA · 2e5bbb54
    Balbir Singh authored
    When PCI Device pass-through is enabled via VFIO, KVM-PPC will
    pin pages using get_user_pages_fast(). One of the downsides of
    the pinning is that the page could be in CMA region. The CMA
    region is used for other allocations like the hash page table.
    Ideally we want the pinned pages to be from non CMA region.
    
    This patch (currently only for KVM PPC with VFIO) forcefully
    migrates the pages out (huge pages are omitted for the moment).
    There are more efficient ways of doing this, but that might
    be elaborate and might impact a larger audience beyond just
    the kvm ppc implementation.
    
    The magic is in new_iommu_non_cma_page() which allocates the
    new page from a non CMA region.
    
    I've tested the patches lightly at my end. The full solution
    requires migration of THP pages in the CMA region. That work
    will be done incrementally on top of this.
    Signed-off-by: default avatarBalbir Singh <bsingharora@gmail.com>
    Acked-by: default avatarAlexey Kardashevskiy <aik@ozlabs.ru>
    [mpe: Merged via powerpc tree as that's where the changes are]
    Signed-off-by: default avatarMichael Ellerman <mpe@ellerman.id.au>
    2e5bbb54
mmu_context_iommu.c 8.44 KB