Re: [PATCH v2 08/13] mm: page_alloc: split out DEBUG_PAGEALLOC

From: Kefeng Wang
Date: Wed May 17 2023 - 21:35:38 EST




On 2023/5/17 6:22, Andrew Morton wrote:
On Tue, 16 May 2023 14:38:16 +0800 Kefeng Wang <wangkefeng.wang@xxxxxxxxxx> wrote:

DEBUG_PAGEALLOC

mm/debug_page_alloc.c | 59 +++++++++++++++++++++++++++++++++
mm/page_alloc.c | 69 ---------------------------------------

and

FAIL_PAGE_ALLOC

We're irritatingly inconsistent about whether there's an underscore.

akpm:/usr/src/25> grep page_alloc mm/*c|wc -l
49
akpm:/usr/src/25> grep pagealloc mm/*c|wc -l
28

All the 28 pagealloc naming is from DEBUG_PAGEALLOC feature, they chould
be changed to page_alloc except the cmdline, but it will lead to long
function name and don't gain too much advantage, so keep unchange?

$ grep pagealloc mm/*c
mm/debug_page_alloc.c:bool _debug_pagealloc_enabled_early __read_mostly
mm/debug_page_alloc.c:EXPORT_SYMBOL(_debug_pagealloc_enabled_early);
mm/debug_page_alloc.c:DEFINE_STATIC_KEY_FALSE(_debug_pagealloc_enabled);
mm/debug_page_alloc.c:EXPORT_SYMBOL(_debug_pagealloc_enabled);
mm/debug_page_alloc.c:static int __init early_debug_pagealloc(char *buf)
mm/debug_page_alloc.c: return kstrtobool(buf, &_debug_pagealloc_enabled_early);
mm/debug_page_alloc.c:early_param("debug_pagealloc", early_debug_pagealloc);
mm/memory_hotplug.c: * Freeing the page with debug_pagealloc enabled will try to unmap it,
mm/memory_hotplug.c: debug_pagealloc_map_pages(page, 1 << order);
mm/mm_init.c: debug_pagealloc_enabled())) {
mm/mm_init.c: if (debug_pagealloc_enabled()) {
mm/mm_init.c: static_branch_enable(&_debug_pagealloc_enabled);
mm/page_alloc.c: * page becomes unavailable via debug_pagealloc or arch_free_page.
mm/page_alloc.c: debug_pagealloc_unmap_pages(page, 1 << order);
mm/page_alloc.c: debug_pagealloc_map_pages(page, 1 << order);
mm/page_poison.c: pr_err("pagealloc: single bit error\n");
mm/page_poison.c: pr_err("pagealloc: memory corruption\n");
mm/page_poison.c: dump_page(page, "pagealloc: corrupted page details");
mm/slab.c:static inline bool is_debug_pagealloc_cache(struct kmem_cache *cachep)
mm/slab.c: return debug_pagealloc_enabled_static() && OFF_SLAB(cachep) &&
mm/slab.c: if (!is_debug_pagealloc_cache(cachep))
mm/slab.c: if (is_debug_pagealloc_cache(cachep))
mm/slab.c: * To activate debug pagealloc, off-slab management is necessary
mm/slab.c: if (debug_pagealloc_enabled_static() && (flags & SLAB_POISON) &&
mm/slab.c: is_debug_pagealloc_cache(cachep))
mm/slub.c: if (!debug_pagealloc_enabled_static())
mm/vmalloc.c: if (debug_pagealloc_enabled_static())
mm/vmalloc.c: if (debug_pagealloc_enabled_static())