On Thu, 6 Apr 2023 at 09:40, Muhammad Usama Anjum usama.anjum@collabora.com wrote: [...]
--- a/fs/proc/task_mmu.c +++ b/fs/proc/task_mmu.c
[...]
+static int pagemap_scan_pmd_entry(pmd_t *pmd, unsigned long start,
unsigned long end, struct mm_walk *walk)+{
struct pagemap_scan_private *p = walk->private;bool is_written, is_file, is_present, is_swap;struct vm_area_struct *vma = walk->vma;unsigned long addr = end;spinlock_t *ptl;int ret = 0;pte_t *pte;+#ifdef CONFIG_TRANSPARENT_HUGEPAGE
ptl = pmd_trans_huge_lock(pmd, vma);if (ptl) {
[...]
return ret;}+process_smaller_pages:
if (pmd_trans_unstable(pmd))return 0;
Why pmd_trans_unstable() is needed here and not only after split_huge_pmd()?
Best regards Michał Mirosław