Hi Andrew, "Aneesh Kumar K.V" <aneesh.kumar@xxxxxxxxxxxxx> writes: > ppc64 use CMA area for the allocation of guest page table (hash page table). We won't > be able to start guest if we fail to allocate hash page table. We have observed > hash table allocation failure because we failed to migrate pages out of CMA region > because they were pinned. This happen when we are using VFIO. VFIO on ppc64 pins > the entire guest RAM. If the guest RAM pages get allocated out of CMA region, we > won't be able to migrate those pages. The pages are also pinned for the lifetime of the > guest. > > Currently we support migration of non-compound pages. With THP and with the addition of > hugetlb migration we can end up allocating compound pages from CMA region. This > patch series add support for migrating compound pages. The first path adds the helper > get_user_pages_cma_migrate() which pin the page making sure we migrate them out of > CMA region before incrementing the reference count. > > Aneesh Kumar K.V (2): > mm: Add get_user_pages_cma_migrate > powerpc/mm/iommu: Allow migration of cma allocated pages during > mm_iommu_get > > arch/powerpc/mm/mmu_context_iommu.c | 120 ++++++++----------------- > include/linux/hugetlb.h | 2 + > include/linux/migrate.h | 3 + > mm/hugetlb.c | 4 +- > mm/migrate.c | 132 ++++++++++++++++++++++++++++ > 5 files changed, 174 insertions(+), 87 deletions(-) Any feedback on this. -aneesh