#include <linux/kernel.h>
#include <linux/mm.h>
#include <linux/trace_events.h>
#include <linux/memcontrol.h>
#include <trace/events/mmflags.h>
#include <linux/migrate.h>
#include <linux/page_owner.h>
#include <linux/ctype.h>
#include "internal.h"
#include <trace/events/migrate.h>
#undef EM
#undef EMe
#define EM(a, b) …
#define EMe(a, b) …
const char *migrate_reason_names[MR_TYPES] = …;
const struct trace_print_flags pageflag_names[] = …;
const struct trace_print_flags pagetype_names[] = …;
const struct trace_print_flags gfpflag_names[] = …;
const struct trace_print_flags vmaflag_names[] = …;
static void __dump_folio(struct folio *folio, struct page *page,
unsigned long pfn, unsigned long idx)
{ … }
static void __dump_page(const struct page *page)
{ … }
void dump_page(const struct page *page, const char *reason)
{ … }
EXPORT_SYMBOL(…);
#ifdef CONFIG_DEBUG_VM
void dump_vma(const struct vm_area_struct *vma)
{ … }
EXPORT_SYMBOL(…);
void dump_mm(const struct mm_struct *mm)
{ … }
EXPORT_SYMBOL(…);
static bool page_init_poisoning __read_mostly = …;
static int __init setup_vm_debug(char *str)
{ … }
__setup(…);
void page_init_poison(struct page *page, size_t size)
{ … }
void vma_iter_dump_tree(const struct vma_iterator *vmi)
{ … }
#endif