Lines Matching refs:vma
129 m_next_vma(struct proc_maps_private *priv, struct vm_area_struct *vma) in m_next_vma() argument
131 if (vma == priv->tail_vma) in m_next_vma()
133 return vma->vm_next ?: priv->tail_vma; in m_next_vma()
136 static void m_cache_vma(struct seq_file *m, struct vm_area_struct *vma) in m_cache_vma() argument
139 m->version = m_next_vma(m->private, vma) ? vma->vm_start : -1UL; in m_cache_vma()
147 struct vm_area_struct *vma; in m_start() local
167 vma = find_vma(mm, last_addr); in m_start()
168 if (vma && (vma = m_next_vma(priv, vma))) in m_start()
169 return vma; in m_start()
174 for (vma = mm->mmap; pos; pos--) { in m_start()
175 m->version = vma->vm_start; in m_start()
176 vma = vma->vm_next; in m_start()
178 return vma; in m_start()
252 struct vm_area_struct *vma, bool is_pid) in pid_of_stack() argument
261 task = task_of_stack(task, vma, is_pid); in pid_of_stack()
271 show_map_vma(struct seq_file *m, struct vm_area_struct *vma, int is_pid) in show_map_vma() argument
273 struct mm_struct *mm = vma->vm_mm; in show_map_vma()
274 struct file *file = vma->vm_file; in show_map_vma()
276 vm_flags_t flags = vma->vm_flags; in show_map_vma()
284 struct inode *inode = file_inode(vma->vm_file); in show_map_vma()
287 pgoff = ((loff_t)vma->vm_pgoff) << PAGE_SHIFT; in show_map_vma()
291 start = vma->vm_start; in show_map_vma()
292 if (stack_guard_page_start(vma, start)) in show_map_vma()
294 end = vma->vm_end; in show_map_vma()
295 if (stack_guard_page_end(vma, end)) in show_map_vma()
319 if (vma->vm_ops && vma->vm_ops->name) { in show_map_vma()
320 name = vma->vm_ops->name(vma); in show_map_vma()
325 name = arch_vma_name(vma); in show_map_vma()
334 if (vma->vm_start <= mm->brk && in show_map_vma()
335 vma->vm_end >= mm->start_brk) { in show_map_vma()
340 tid = pid_of_stack(priv, vma, is_pid); in show_map_vma()
346 if (!is_pid || (vma->vm_start <= mm->start_stack && in show_map_vma()
347 vma->vm_end >= mm->start_stack)) { in show_map_vma()
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()
527 struct vm_area_struct *vma = walk->vma; in smaps_pmd_entry() local
531 page = follow_trans_huge_pmd(vma, addr, pmd, FOLL_DUMP); in smaps_pmd_entry()
548 struct vm_area_struct *vma = walk->vma; in smaps_pte_range() local
552 if (pmd_trans_huge_lock(pmd, vma, &ptl) == 1) { in smaps_pte_range()
565 pte = pte_offset_map_lock(vma->vm_mm, pmd, addr, &ptl); in smaps_pte_range()
573 static void show_smap_vma_flags(struct seq_file *m, struct vm_area_struct *vma) in show_smap_vma_flags() argument
623 if (vma->vm_flags & (1UL << i)) { in show_smap_vma_flags()
637 struct vm_area_struct *vma = walk->vma; in smaps_hugetlb_range() local
641 page = vm_normal_page(vma, addr, *pte); in smaps_hugetlb_range()
652 mss->shared_hugetlb += huge_page_size(hstate_vma(vma)); in smaps_hugetlb_range()
654 mss->private_hugetlb += huge_page_size(hstate_vma(vma)); in smaps_hugetlb_range()
662 struct vm_area_struct *vma = v; in show_smap() local
669 .mm = vma->vm_mm, in show_smap()
675 walk_page_vma(vma, &smaps_walk); in show_smap()
677 show_map_vma(m, vma, is_pid); in show_smap()
697 (vma->vm_end - vma->vm_start) >> 10, in show_smap()
711 vma_kernel_pagesize(vma) >> 10, in show_smap()
712 vma_mmu_pagesize(vma) >> 10, in show_smap()
713 (vma->vm_flags & VM_LOCKED) ? in show_smap()
716 show_smap_vma_flags(m, vma); in show_smap()
717 m_cache_vma(m, vma); in show_smap()
783 static inline void clear_soft_dirty(struct vm_area_struct *vma, in clear_soft_dirty() argument
795 ptent = ptep_modify_prot_start(vma->vm_mm, addr, pte); in clear_soft_dirty()
798 ptep_modify_prot_commit(vma->vm_mm, addr, pte, ptent); in clear_soft_dirty()
801 set_pte_at(vma->vm_mm, addr, pte, ptent); in clear_soft_dirty()
805 static inline void clear_soft_dirty(struct vm_area_struct *vma, in clear_soft_dirty() argument
812 static inline void clear_soft_dirty_pmd(struct vm_area_struct *vma, in clear_soft_dirty_pmd() argument
815 pmd_t pmd = pmdp_huge_get_and_clear(vma->vm_mm, addr, pmdp); in clear_soft_dirty_pmd()
820 if (vma->vm_flags & VM_SOFTDIRTY) in clear_soft_dirty_pmd()
821 vma->vm_flags &= ~VM_SOFTDIRTY; in clear_soft_dirty_pmd()
823 set_pmd_at(vma->vm_mm, addr, pmdp, pmd); in clear_soft_dirty_pmd()
826 static inline void clear_soft_dirty_pmd(struct vm_area_struct *vma, in clear_soft_dirty_pmd() argument
836 struct vm_area_struct *vma = walk->vma; in clear_refs_pte_range() local
841 if (pmd_trans_huge_lock(pmd, vma, &ptl) == 1) { in clear_refs_pte_range()
843 clear_soft_dirty_pmd(vma, addr, pmd); in clear_refs_pte_range()
850 pmdp_test_and_clear_young(vma, addr, pmd); in clear_refs_pte_range()
861 pte = pte_offset_map_lock(vma->vm_mm, pmd, addr, &ptl); in clear_refs_pte_range()
866 clear_soft_dirty(vma, addr, pte); in clear_refs_pte_range()
873 page = vm_normal_page(vma, addr, ptent); in clear_refs_pte_range()
878 ptep_test_and_clear_young(vma, addr, pte); in clear_refs_pte_range()
891 struct vm_area_struct *vma = walk->vma; in clear_refs_test_walk() local
893 if (vma->vm_flags & VM_PFNMAP) in clear_refs_test_walk()
902 if (cp->type == CLEAR_REFS_ANON && vma->vm_file) in clear_refs_test_walk()
904 if (cp->type == CLEAR_REFS_MAPPED && !vma->vm_file) in clear_refs_test_walk()
915 struct vm_area_struct *vma; in clear_refs_write() local
960 for (vma = mm->mmap; vma; vma = vma->vm_next) { in clear_refs_write()
961 if (!(vma->vm_flags & VM_SOFTDIRTY)) in clear_refs_write()
965 for (vma = mm->mmap; vma; vma = vma->vm_next) { in clear_refs_write()
966 vma->vm_flags &= ~VM_SOFTDIRTY; in clear_refs_write()
967 vma_set_page_prot(vma); in clear_refs_write()
1038 struct vm_area_struct *vma = find_vma(walk->mm, addr); in pagemap_pte_hole() local
1043 if (vma) in pagemap_pte_hole()
1044 hole_end = min(end, vma->vm_start); in pagemap_pte_hole()
1054 if (!vma) in pagemap_pte_hole()
1058 if (vma->vm_flags & VM_SOFTDIRTY) in pagemap_pte_hole()
1060 for (; addr < min(end, vma->vm_end); addr += PAGE_SIZE) { in pagemap_pte_hole()
1071 struct vm_area_struct *vma, unsigned long addr, pte_t pte) in pte_to_pagemap_entry() argument
1080 page = vm_normal_page(vma, addr, pte); in pte_to_pagemap_entry()
1099 if (vma->vm_flags & VM_SOFTDIRTY) in pte_to_pagemap_entry()
1108 struct vm_area_struct *vma = walk->vma; in pagemap_pmd_range() local
1115 if (pmd_trans_huge_lock(pmdp, vma, &ptl) == 1) { in pagemap_pmd_range()
1119 if ((vma->vm_flags & VM_SOFTDIRTY) || pmd_soft_dirty(pmd)) in pagemap_pmd_range()
1165 pme = pte_to_pagemap_entry(pm, vma, addr, *pte); in pagemap_pmd_range()
1184 struct vm_area_struct *vma = walk->vma; in pagemap_hugetlb_range() local
1189 if (vma->vm_flags & VM_SOFTDIRTY) in pagemap_hugetlb_range()
1415 static struct page *can_gather_numa_stats(pte_t pte, struct vm_area_struct *vma, in can_gather_numa_stats() argument
1424 page = vm_normal_page(vma, addr, pte); in can_gather_numa_stats()
1440 struct vm_area_struct *vma, in can_gather_numa_stats_pmd() argument
1449 page = vm_normal_page_pmd(vma, addr, pmd); in can_gather_numa_stats_pmd()
1468 struct vm_area_struct *vma = walk->vma; in gather_pte_stats() local
1474 if (pmd_trans_huge_lock(pmd, vma, &ptl) == 1) { in gather_pte_stats()
1477 page = can_gather_numa_stats_pmd(*pmd, vma, addr); in gather_pte_stats()
1490 struct page *page = can_gather_numa_stats(*pte, vma, addr); in gather_pte_stats()
1534 struct vm_area_struct *vma = v; in show_numa_map() local
1536 struct file *file = vma->vm_file; in show_numa_map()
1537 struct mm_struct *mm = vma->vm_mm; in show_numa_map()
1554 pol = __get_vma_policy(vma, vma->vm_start); in show_numa_map()
1562 seq_printf(m, "%08lx %s", vma->vm_start, buffer); in show_numa_map()
1567 } else if (vma->vm_start <= mm->brk && vma->vm_end >= mm->start_brk) { in show_numa_map()
1570 pid_t tid = pid_of_stack(proc_priv, vma, is_pid); in show_numa_map()
1576 if (!is_pid || (vma->vm_start <= mm->start_stack && in show_numa_map()
1577 vma->vm_end >= mm->start_stack)) in show_numa_map()
1584 if (is_vm_hugetlb_page(vma)) in show_numa_map()
1588 walk_page_vma(vma, &walk); in show_numa_map()
1608 if (md->active < md->pages && !is_vm_hugetlb_page(vma)) in show_numa_map()
1618 seq_printf(m, " kernelpagesize_kB=%lu", vma_kernel_pagesize(vma) >> 10); in show_numa_map()
1621 m_cache_vma(m, vma); in show_numa_map()