Lines Matching refs:pmd
568 static void smaps_pmd_entry(pmd_t *pmd, unsigned long addr, in smaps_pmd_entry() argument
577 if (pmd_present(*pmd)) { in smaps_pmd_entry()
579 page = follow_trans_huge_pmd(vma, addr, pmd, FOLL_DUMP); in smaps_pmd_entry()
580 } else if (unlikely(thp_migration_supported() && is_swap_pmd(*pmd))) { in smaps_pmd_entry()
581 swp_entry_t entry = pmd_to_swp_entry(*pmd); in smaps_pmd_entry()
599 smaps_account(mss, page, true, pmd_young(*pmd), pmd_dirty(*pmd), in smaps_pmd_entry()
603 static void smaps_pmd_entry(pmd_t *pmd, unsigned long addr, in smaps_pmd_entry() argument
609 static int smaps_pte_range(pmd_t *pmd, unsigned long addr, unsigned long end, in smaps_pte_range() argument
616 ptl = pmd_trans_huge_lock(pmd, vma); in smaps_pte_range()
618 smaps_pmd_entry(pmd, addr, walk); in smaps_pte_range()
623 if (pmd_trans_unstable(pmd)) in smaps_pte_range()
630 pte = pte_offset_map_lock(vma->vm_mm, pmd, addr, &ptl); in smaps_pte_range()
1132 pmd_t old, pmd = *pmdp; in clear_soft_dirty_pmd() local
1134 if (pmd_present(pmd)) { in clear_soft_dirty_pmd()
1138 pmd = pmd_mkdirty(pmd); in clear_soft_dirty_pmd()
1140 pmd = pmd_mkyoung(pmd); in clear_soft_dirty_pmd()
1142 pmd = pmd_wrprotect(pmd); in clear_soft_dirty_pmd()
1143 pmd = pmd_clear_soft_dirty(pmd); in clear_soft_dirty_pmd()
1145 set_pmd_at(vma->vm_mm, addr, pmdp, pmd); in clear_soft_dirty_pmd()
1146 } else if (is_migration_entry(pmd_to_swp_entry(pmd))) { in clear_soft_dirty_pmd()
1147 pmd = pmd_swp_clear_soft_dirty(pmd); in clear_soft_dirty_pmd()
1148 set_pmd_at(vma->vm_mm, addr, pmdp, pmd); in clear_soft_dirty_pmd()
1158 static int clear_refs_pte_range(pmd_t *pmd, unsigned long addr, in clear_refs_pte_range() argument
1167 ptl = pmd_trans_huge_lock(pmd, vma); in clear_refs_pte_range()
1170 clear_soft_dirty_pmd(vma, addr, pmd); in clear_refs_pte_range()
1174 if (!pmd_present(*pmd)) in clear_refs_pte_range()
1177 page = pmd_page(*pmd); in clear_refs_pte_range()
1180 pmdp_test_and_clear_young(vma, addr, pmd); in clear_refs_pte_range()
1188 if (pmd_trans_unstable(pmd)) in clear_refs_pte_range()
1191 pte = pte_offset_map_lock(vma->vm_mm, pmd, addr, &ptl); in clear_refs_pte_range()
1460 pmd_t pmd = *pmdp; in pagemap_pmd_range() local
1466 if (pmd_present(pmd)) { in pagemap_pmd_range()
1467 page = pmd_page(pmd); in pagemap_pmd_range()
1470 if (pmd_soft_dirty(pmd)) in pagemap_pmd_range()
1472 if (pmd_uffd_wp(pmd)) in pagemap_pmd_range()
1475 frame = pmd_pfn(pmd) + in pagemap_pmd_range()
1479 else if (is_swap_pmd(pmd)) { in pagemap_pmd_range()
1480 swp_entry_t entry = pmd_to_swp_entry(pmd); in pagemap_pmd_range()
1490 if (pmd_swp_soft_dirty(pmd)) in pagemap_pmd_range()
1492 if (pmd_swp_uffd_wp(pmd)) in pagemap_pmd_range()
1494 VM_BUG_ON(!is_pmd_migration_entry(pmd)); in pagemap_pmd_range()
1812 static struct page *can_gather_numa_stats_pmd(pmd_t pmd, in can_gather_numa_stats_pmd() argument
1819 if (!pmd_present(pmd)) in can_gather_numa_stats_pmd()
1822 page = vm_normal_page_pmd(vma, addr, pmd); in can_gather_numa_stats_pmd()
1837 static int gather_pte_stats(pmd_t *pmd, unsigned long addr, in gather_pte_stats() argument
1847 ptl = pmd_trans_huge_lock(pmd, vma); in gather_pte_stats()
1851 page = can_gather_numa_stats_pmd(*pmd, vma, addr); in gather_pte_stats()
1853 gather_stats(page, md, pmd_dirty(*pmd), in gather_pte_stats()
1859 if (pmd_trans_unstable(pmd)) in gather_pte_stats()
1862 orig_pte = pte = pte_offset_map_lock(walk->mm, pmd, addr, &ptl); in gather_pte_stats()