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()
82 int pincount = 0; in __dump_folio()
85 pincount = atomic_read(&folio->_pincount); in __dump_folio()
96 if (folio->memcg_data) in __dump_folio()
97 pr_warn("memcg:%lx\n", folio->memcg_data); in __dump_folio()
113 pr_warn("%sflags: %pGp%s\n", type, &folio->flags, in __dump_folio()
115 if (page_has_type(&folio->page)) in __dump_folio()
116 pr_warn("page_type: %x(%s)\n", folio->page.page_type >> 24, in __dump_folio()
117 page_type_name(folio->page.page_type)); in __dump_folio()
140 if ((head & 1) == 0) { in __dump_page()
142 idx = 0; in __dump_page()
147 foliop = (struct folio *)(head - 1); in __dump_page()
155 memcpy(&folio.__page_2, &foliop->__page_2, in __dump_page()
161 if (loops-- > 0) in __dump_page()
166 idx = 0; in __dump_page()
189 pr_emerg("vma %px start %px end %px mm %px\n" in dump_vma()
196 vma, (void *)vma->vm_start, (void *)vma->vm_end, vma->vm_mm, in dump_vma()
197 (unsigned long)pgprot_val(vma->vm_page_prot), in dump_vma()
198 vma->anon_vma, vma->vm_ops, vma->vm_pgoff, in dump_vma()
199 vma->vm_file, vma->vm_private_data, in dump_vma()
201 refcount_read(&vma->vm_refcnt), in dump_vma()
203 vma->vm_flags, &vma->vm_flags); in dump_vma()
207 void dump_mm(const struct mm_struct *mm) in dump_mm() argument
209 pr_emerg("mm %px task_size %lu\n" in dump_mm()
234 mm, mm->task_size, in dump_mm()
235 mm->mmap_base, mm->mmap_legacy_base, in dump_mm()
236 mm->pgd, atomic_read(&mm->mm_users), in dump_mm()
237 atomic_read(&mm->mm_count), in dump_mm()
238 mm_pgtables_bytes(mm), in dump_mm()
239 mm->map_count, in dump_mm()
240 mm->hiwater_rss, mm->hiwater_vm, mm->total_vm, mm->locked_vm, in dump_mm()
241 (u64)atomic64_read(&mm->pinned_vm), in dump_mm()
242 mm->data_vm, mm->exec_vm, mm->stack_vm, in dump_mm()
243 mm->start_code, mm->end_code, mm->start_data, mm->end_data, in dump_mm()
244 mm->start_brk, mm->brk, mm->start_stack, in dump_mm()
245 mm->arg_start, mm->arg_end, mm->env_start, mm->env_end, in dump_mm()
246 mm->binfmt, mm->flags, in dump_mm()
248 mm->ioctx_table, in dump_mm()
251 mm->owner, in dump_mm()
253 mm->exe_file, in dump_mm()
255 mm->notifier_subscriptions, in dump_mm()
258 mm->numa_next_scan, mm->numa_scan_offset, mm->numa_scan_seq, in dump_mm()
260 atomic_read(&mm->tlb_flush_pending), in dump_mm()
261 mm->def_flags, &mm->def_flags in dump_mm()
276 pr_warn("vmg %px state: mm %px pgoff %lx\n" in dump_vmg()
287 vmg, vmg->mm, vmg->pgoff, in dump_vmg()
288 vmg->vmi, vmg->vmi ? vma_iter_addr(vmg->vmi) : 0, in dump_vmg()
289 vmg->vmi ? vma_iter_end(vmg->vmi) : 0, in dump_vmg()
290 vmg->prev, vmg->middle, vmg->next, vmg->target, in dump_vmg()
291 vmg->start, vmg->end, vmg->flags, in dump_vmg()
292 vmg->file, vmg->anon_vma, vmg->policy, in dump_vmg()
294 vmg->uffd_ctx.ctx, in dump_vmg()
296 (void *)0, in dump_vmg()
298 vmg->anon_name, in dump_vmg()
299 (int)vmg->state, in dump_vmg()
300 vmg->just_expand, in dump_vmg()
301 vmg->__adjust_middle_start, vmg->__adjust_next_start, in dump_vmg()
302 vmg->__remove_middle, vmg->__remove_next); in dump_vmg()
304 if (vmg->mm) { in dump_vmg()
305 pr_warn("vmg %px mm:\n", vmg); in dump_vmg()
306 dump_mm(vmg->mm); in dump_vmg()
308 pr_warn("vmg %px mm: (NULL)\n", vmg); in dump_vmg()
311 if (vmg->prev) { in dump_vmg()
313 dump_vma(vmg->prev); in dump_vmg()
318 if (vmg->middle) { in dump_vmg()
320 dump_vma(vmg->middle); in dump_vmg()
325 if (vmg->next) { in dump_vmg()
327 dump_vma(vmg->next); in dump_vmg()
333 if (vmg->vmi) { in dump_vmg()
335 vma_iter_dump_tree(vmg->vmi); in dump_vmg()
357 if (*str == '-') in setup_vm_debug()
391 mas_dump(&vmi->mas); in vma_iter_dump_tree()
392 mt_dump(vmi->mas.tree, mt_dump_hex); in vma_iter_dump_tree()