Lines Matching +full:mm +full:- +full:0

1 // SPDX-License-Identifier: GPL-2.0
3 * mm/debug.c
5 * mm/ specific debug routines.
10 #include <linux/mm.h>
36 {0, NULL}
41 {0, NULL}
46 {0, NULL}
49 #define DEF_PAGETYPE_NAME(_name) [PGTY_##_name - 0xf0] = __stringify(_name)
63 unsigned i = (page_type >> 24) - 0xf0; in page_type_name()
74 int mapcount = atomic_read(&page->_mapcount); in __dump_folio()
77 mapcount = page_mapcount_is_type(mapcount) ? 0 : mapcount + 1; in __dump_folio()
80 folio->index + idx, pfn); in __dump_folio()
87 atomic_read(&folio->_pincount)); in __dump_folio()
91 if (folio->memcg_data) in __dump_folio()
92 pr_warn("memcg:%lx\n", folio->memcg_data); in __dump_folio()
108 pr_warn("%sflags: %pGp%s\n", type, &folio->flags, in __dump_folio()
110 if (page_has_type(&folio->page)) in __dump_folio()
111 pr_warn("page_type: %x(%s)\n", folio->page.page_type >> 24, in __dump_folio()
112 page_type_name(folio->page.page_type)); in __dump_folio()
135 if ((head & 1) == 0) { in __dump_page()
137 idx = 0; in __dump_page()
142 foliop = (struct folio *)(head - 1); in __dump_page()
153 if (loops-- > 0) in __dump_page()
158 idx = 0; in __dump_page()
181 pr_emerg("vma %px start %px end %px mm %px\n" in dump_vma()
185 vma, (void *)vma->vm_start, (void *)vma->vm_end, vma->vm_mm, in dump_vma()
186 (unsigned long)pgprot_val(vma->vm_page_prot), in dump_vma()
187 vma->anon_vma, vma->vm_ops, vma->vm_pgoff, in dump_vma()
188 vma->vm_file, vma->vm_private_data, in dump_vma()
189 vma->vm_flags, &vma->vm_flags); in dump_vma()
193 void dump_mm(const struct mm_struct *mm) in dump_mm() argument
195 pr_emerg("mm %px task_size %lu\n" in dump_mm()
220 mm, mm->task_size, in dump_mm()
221 mm->mmap_base, mm->mmap_legacy_base, in dump_mm()
222 mm->pgd, atomic_read(&mm->mm_users), in dump_mm()
223 atomic_read(&mm->mm_count), in dump_mm()
224 mm_pgtables_bytes(mm), in dump_mm()
225 mm->map_count, in dump_mm()
226 mm->hiwater_rss, mm->hiwater_vm, mm->total_vm, mm->locked_vm, in dump_mm()
227 (u64)atomic64_read(&mm->pinned_vm), in dump_mm()
228 mm->data_vm, mm->exec_vm, mm->stack_vm, in dump_mm()
229 mm->start_code, mm->end_code, mm->start_data, mm->end_data, in dump_mm()
230 mm->start_brk, mm->brk, mm->start_stack, in dump_mm()
231 mm->arg_start, mm->arg_end, mm->env_start, mm->env_end, in dump_mm()
232 mm->binfmt, mm->flags, in dump_mm()
234 mm->ioctx_table, in dump_mm()
237 mm->owner, in dump_mm()
239 mm->exe_file, in dump_mm()
241 mm->notifier_subscriptions, in dump_mm()
244 mm->numa_next_scan, mm->numa_scan_offset, mm->numa_scan_seq, in dump_mm()
246 atomic_read(&mm->tlb_flush_pending), in dump_mm()
247 mm->def_flags, &mm->def_flags in dump_mm()
262 pr_warn("vmg %px state: mm %px pgoff %lx\n" in dump_vmg()
270 vmg, vmg->mm, vmg->pgoff, in dump_vmg()
271 vmg->vmi, vmg->vmi ? vma_iter_addr(vmg->vmi) : 0, in dump_vmg()
272 vmg->vmi ? vma_iter_end(vmg->vmi) : 0, in dump_vmg()
273 vmg->prev, vmg->next, vmg->vma, in dump_vmg()
274 vmg->start, vmg->end, vmg->flags, in dump_vmg()
275 vmg->file, vmg->anon_vma, vmg->policy, in dump_vmg()
277 vmg->uffd_ctx.ctx, in dump_vmg()
279 (void *)0, in dump_vmg()
281 vmg->anon_name, in dump_vmg()
282 (int)vmg->merge_flags, (int)vmg->state); in dump_vmg()
284 if (vmg->mm) { in dump_vmg()
285 pr_warn("vmg %px mm:\n", vmg); in dump_vmg()
286 dump_mm(vmg->mm); in dump_vmg()
288 pr_warn("vmg %px mm: (NULL)\n", vmg); in dump_vmg()
291 if (vmg->vma) { in dump_vmg()
293 dump_vma(vmg->vma); in dump_vmg()
298 if (vmg->prev) { in dump_vmg()
300 dump_vma(vmg->prev); in dump_vmg()
305 if (vmg->next) { in dump_vmg()
307 dump_vma(vmg->next); in dump_vmg()
313 if (vmg->vmi) { in dump_vmg()
315 vma_iter_dump_tree(vmg->vmi); in dump_vmg()
337 if (*str == '-') in setup_vm_debug()
371 mas_dump(&vmi->mas); in vma_iter_dump_tree()
372 mt_dump(vmi->mas.tree, mt_dump_hex); in vma_iter_dump_tree()