A collapse operation causes new THP allocation to occur, and may migrate memory from one node to another.
Handle this the same as zone_device for now (disallow collapse). Signed-off-by: Gregory Price <[email protected]> --- mm/khugepaged.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/mm/khugepaged.c b/mm/khugepaged.c index 89ce6bcbc376b..fb4378cc17b10 100644 --- a/mm/khugepaged.c +++ b/mm/khugepaged.c @@ -700,7 +700,7 @@ static enum scan_result __collapse_huge_page_isolate(struct vm_area_struct *vma, goto out; } page = vm_normal_page(vma, addr, pteval); - if (unlikely(!page) || unlikely(is_zone_device_page(page))) { + if (unlikely(!page) || unlikely(page_is_private_managed(page))) { result = SCAN_PAGE_NULL; goto out; } @@ -1687,7 +1687,7 @@ static enum scan_result collapse_scan_pmd(struct mm_struct *mm, } page = vm_normal_page(vma, addr, pteval); - if (unlikely(!page) || unlikely(is_zone_device_page(page))) { + if (unlikely(!page) || unlikely(page_is_private_managed(page))) { result = SCAN_PAGE_NULL; goto out_unmap; } @@ -1944,7 +1944,7 @@ static enum scan_result try_collapse_pte_mapped_thp(struct mm_struct *mm, unsign } page = vm_normal_page(vma, addr, ptent); - if (WARN_ON_ONCE(page && is_zone_device_page(page))) + if (WARN_ON_ONCE(page && page_is_private_managed(page))) page = NULL; /* * Note that uprobe, debugger, or MAP_PRIVATE may change the -- 2.53.0-Meta

