Lines Matching refs:vma

136 m_next_vma(struct proc_maps_private *priv, struct vm_area_struct *vma)  in m_next_vma()  argument
138 if (vma == priv->tail_vma) in m_next_vma()
140 return vma->vm_next ?: priv->tail_vma; in m_next_vma()
143 static void m_cache_vma(struct seq_file *m, struct vm_area_struct *vma) in m_cache_vma() argument
146 m->version = m_next_vma(m->private, vma) ? vma->vm_end : -1UL; in m_cache_vma()
154 struct vm_area_struct *vma; in m_start() local
174 vma = find_vma(mm, last_addr - 1); in m_start()
175 if (vma && vma->vm_start <= last_addr) in m_start()
176 vma = m_next_vma(priv, vma); in m_start()
177 if (vma) in m_start()
178 return vma; in m_start()
183 for (vma = mm->mmap; pos; pos--) { in m_start()
184 m->version = vma->vm_start; in m_start()
185 vma = vma->vm_next; in m_start()
187 return vma; in m_start()
264 static int is_stack(struct vm_area_struct *vma) in is_stack() argument
271 return vma->vm_start <= vma->vm_mm->start_stack && in is_stack()
272 vma->vm_end >= vma->vm_mm->start_stack; in is_stack()
296 show_map_vma(struct seq_file *m, struct vm_area_struct *vma) in show_map_vma() argument
298 struct mm_struct *mm = vma->vm_mm; in show_map_vma()
299 struct file *file = vma->vm_file; in show_map_vma()
300 vm_flags_t flags = vma->vm_flags; in show_map_vma()
308 struct inode *inode = file_inode(vma->vm_file); in show_map_vma()
311 pgoff = ((loff_t)vma->vm_pgoff) << PAGE_SHIFT; in show_map_vma()
314 start = vma->vm_start; in show_map_vma()
315 end = vma->vm_end; in show_map_vma()
328 if (vma->vm_ops && vma->vm_ops->name) { in show_map_vma()
329 name = vma->vm_ops->name(vma); in show_map_vma()
334 name = arch_vma_name(vma); in show_map_vma()
341 if (vma->vm_start <= mm->brk && in show_map_vma()
342 vma->vm_end >= mm->start_brk) { in show_map_vma()
347 if (is_stack(vma)) in show_map_vma()
482 walk->vma->vm_file->f_mapping, addr, end); in smaps_pte_hole()
492 struct vm_area_struct *vma = walk->vma; in smaps_pte_entry() local
496 page = vm_normal_page(vma, addr, *pte); in smaps_pte_entry()
519 page = find_get_entry(vma->vm_file->f_mapping, in smaps_pte_entry()
520 linear_page_index(vma, addr)); in smaps_pte_entry()
543 struct vm_area_struct *vma = walk->vma; in smaps_pmd_entry() local
547 page = follow_trans_huge_pmd(vma, addr, pmd, FOLL_DUMP); in smaps_pmd_entry()
570 struct vm_area_struct *vma = walk->vma; in smaps_pte_range() local
574 ptl = pmd_trans_huge_lock(pmd, vma); in smaps_pte_range()
589 pte = pte_offset_map_lock(vma->vm_mm, pmd, addr, &ptl); in smaps_pte_range()
598 static void show_smap_vma_flags(struct seq_file *m, struct vm_area_struct *vma) in show_smap_vma_flags() argument
662 if (vma->vm_flags & (1UL << i)) { in show_smap_vma_flags()
677 struct vm_area_struct *vma = walk->vma; in smaps_hugetlb_range() local
681 page = vm_normal_page(vma, addr, *pte); in smaps_hugetlb_range()
694 mss->shared_hugetlb += huge_page_size(hstate_vma(vma)); in smaps_hugetlb_range()
696 mss->private_hugetlb += huge_page_size(hstate_vma(vma)); in smaps_hugetlb_range()
702 static void smap_gather_stats(struct vm_area_struct *vma, in smap_gather_stats() argument
710 .mm = vma->vm_mm, in smap_gather_stats()
716 if (vma->vm_file && shmem_mapping(vma->vm_file->f_mapping)) { in smap_gather_stats()
727 unsigned long shmem_swapped = shmem_swap_usage(vma); in smap_gather_stats()
729 if (!shmem_swapped || (vma->vm_flags & VM_SHARED) || in smap_gather_stats()
730 !(vma->vm_flags & VM_WRITE)) { in smap_gather_stats()
740 walk_page_vma(vma, &smaps_walk); in smap_gather_stats()
741 if (vma->vm_flags & VM_LOCKED) in smap_gather_stats()
775 struct vm_area_struct *vma = v; in show_smap() local
780 smap_gather_stats(vma, &mss); in show_smap()
782 show_map_vma(m, vma); in show_smap()
784 SEQ_PUT_DEC("Size: ", vma->vm_end - vma->vm_start); in show_smap()
785 SEQ_PUT_DEC(" kB\nKernelPageSize: ", vma_kernel_pagesize(vma)); in show_smap()
786 SEQ_PUT_DEC(" kB\nMMUPageSize: ", vma_mmu_pagesize(vma)); in show_smap()
792 seq_printf(m, "ProtectionKey: %8u\n", vma_pkey(vma)); in show_smap()
793 show_smap_vma_flags(m, vma); in show_smap()
795 m_cache_vma(m, vma); in show_smap()
805 struct vm_area_struct *vma; in show_smaps_rollup() local
824 for (vma = priv->mm->mmap; vma; vma = vma->vm_next) { in show_smaps_rollup()
825 smap_gather_stats(vma, &mss); in show_smaps_rollup()
826 last_vma_end = vma->vm_end; in show_smaps_rollup()
929 static inline void clear_soft_dirty(struct vm_area_struct *vma, in clear_soft_dirty() argument
941 ptent = ptep_modify_prot_start(vma->vm_mm, addr, pte); in clear_soft_dirty()
944 ptep_modify_prot_commit(vma->vm_mm, addr, pte, ptent); in clear_soft_dirty()
947 set_pte_at(vma->vm_mm, addr, pte, ptent); in clear_soft_dirty()
951 static inline void clear_soft_dirty(struct vm_area_struct *vma, in clear_soft_dirty() argument
958 static inline void clear_soft_dirty_pmd(struct vm_area_struct *vma, in clear_soft_dirty_pmd() argument
965 old = pmdp_invalidate(vma, addr, pmdp); in clear_soft_dirty_pmd()
974 set_pmd_at(vma->vm_mm, addr, pmdp, pmd); in clear_soft_dirty_pmd()
977 set_pmd_at(vma->vm_mm, addr, pmdp, pmd); in clear_soft_dirty_pmd()
981 static inline void clear_soft_dirty_pmd(struct vm_area_struct *vma, in clear_soft_dirty_pmd() argument
991 struct vm_area_struct *vma = walk->vma; in clear_refs_pte_range() local
996 ptl = pmd_trans_huge_lock(pmd, vma); in clear_refs_pte_range()
999 clear_soft_dirty_pmd(vma, addr, pmd); in clear_refs_pte_range()
1009 pmdp_test_and_clear_young(vma, addr, pmd); in clear_refs_pte_range()
1020 pte = pte_offset_map_lock(vma->vm_mm, pmd, addr, &ptl); in clear_refs_pte_range()
1025 clear_soft_dirty(vma, addr, pte); in clear_refs_pte_range()
1032 page = vm_normal_page(vma, addr, ptent); in clear_refs_pte_range()
1037 ptep_test_and_clear_young(vma, addr, pte); in clear_refs_pte_range()
1050 struct vm_area_struct *vma = walk->vma; in clear_refs_test_walk() local
1052 if (vma->vm_flags & VM_PFNMAP) in clear_refs_test_walk()
1061 if (cp->type == CLEAR_REFS_ANON && vma->vm_file) in clear_refs_test_walk()
1063 if (cp->type == CLEAR_REFS_MAPPED && !vma->vm_file) in clear_refs_test_walk()
1074 struct vm_area_struct *vma; in clear_refs_write() local
1125 for (vma = mm->mmap; vma; vma = vma->vm_next) { in clear_refs_write()
1126 if (!(vma->vm_flags & VM_SOFTDIRTY)) in clear_refs_write()
1133 for (vma = mm->mmap; vma; vma = vma->vm_next) { in clear_refs_write()
1134 vma->vm_flags &= ~VM_SOFTDIRTY; in clear_refs_write()
1135 vma_set_page_prot(vma); in clear_refs_write()
1206 struct vm_area_struct *vma = find_vma(walk->mm, addr); in pagemap_pte_hole() local
1211 if (vma) in pagemap_pte_hole()
1212 hole_end = min(end, vma->vm_start); in pagemap_pte_hole()
1222 if (!vma) in pagemap_pte_hole()
1226 if (vma->vm_flags & VM_SOFTDIRTY) in pagemap_pte_hole()
1228 for (; addr < min(end, vma->vm_end); addr += PAGE_SIZE) { in pagemap_pte_hole()
1239 struct vm_area_struct *vma, unsigned long addr, pte_t pte) in pte_to_pagemap_entry() argument
1248 page = _vm_normal_page(vma, addr, pte, true); in pte_to_pagemap_entry()
1271 if (vma->vm_flags & VM_SOFTDIRTY) in pte_to_pagemap_entry()
1280 struct vm_area_struct *vma = walk->vma; in pagemap_pmd_range() local
1287 ptl = pmd_trans_huge_lock(pmdp, vma); in pagemap_pmd_range()
1293 if (vma->vm_flags & VM_SOFTDIRTY) in pagemap_pmd_range()
1357 pme = pte_to_pagemap_entry(pm, vma, addr, *pte); in pagemap_pmd_range()
1376 struct vm_area_struct *vma = walk->vma; in pagemap_hugetlb_range() local
1381 if (vma->vm_flags & VM_SOFTDIRTY) in pagemap_hugetlb_range()
1607 static struct page *can_gather_numa_stats(pte_t pte, struct vm_area_struct *vma, in can_gather_numa_stats() argument
1616 page = vm_normal_page(vma, addr, pte); in can_gather_numa_stats()
1632 struct vm_area_struct *vma, in can_gather_numa_stats_pmd() argument
1641 page = vm_normal_page_pmd(vma, addr, pmd); in can_gather_numa_stats_pmd()
1660 struct vm_area_struct *vma = walk->vma; in gather_pte_stats() local
1666 ptl = pmd_trans_huge_lock(pmd, vma); in gather_pte_stats()
1670 page = can_gather_numa_stats_pmd(*pmd, vma, addr); in gather_pte_stats()
1683 struct page *page = can_gather_numa_stats(*pte, vma, addr); in gather_pte_stats()
1728 struct vm_area_struct *vma = v; in show_numa_map() local
1730 struct file *file = vma->vm_file; in show_numa_map()
1731 struct mm_struct *mm = vma->vm_mm; in show_numa_map()
1748 pol = __get_vma_policy(vma, vma->vm_start); in show_numa_map()
1756 seq_printf(m, "%08lx %s", vma->vm_start, buffer); in show_numa_map()
1761 } else if (vma->vm_start <= mm->brk && vma->vm_end >= mm->start_brk) { in show_numa_map()
1763 } else if (is_stack(vma)) { in show_numa_map()
1767 if (is_vm_hugetlb_page(vma)) in show_numa_map()
1771 walk_page_vma(vma, &walk); in show_numa_map()
1791 if (md->active < md->pages && !is_vm_hugetlb_page(vma)) in show_numa_map()
1801 seq_printf(m, " kernelpagesize_kB=%lu", vma_kernel_pagesize(vma) >> 10); in show_numa_map()
1804 m_cache_vma(m, vma); in show_numa_map()