Loading lib/Kconfig.debug +11 −0 Original line number Original line Diff line number Diff line Loading @@ -257,6 +257,17 @@ config PAGE_OWNER If unsure, say N. If unsure, say N. config PAGE_OWNER_ENABLE_DEFAULT bool "Enable Track page owner by default" depends on PAGE_OWNER ---help--- This keeps track of what call chain is the owner of a page, may help to find bare alloc_page(s) leaks. If you include this feature on your build, it is enabled by default. You should pass "page_owner=off" to boot parameter in order to disable it. Eats a fair amount of memory if enabled. See tools/vm/page_owner_sort.c for user-space helper. config DEBUG_FS config DEBUG_FS bool "Debug Filesystem" bool "Debug Filesystem" select SRCU select SRCU Loading mm/page_owner.c +5 −1 Original line number Original line Diff line number Diff line Loading @@ -25,7 +25,8 @@ struct page_owner { depot_stack_handle_t handle; depot_stack_handle_t handle; }; }; static bool page_owner_disabled = true; static bool page_owner_disabled = !IS_ENABLED(CONFIG_PAGE_OWNER_ENABLE_DEFAULT); DEFINE_STATIC_KEY_FALSE(page_owner_inited); DEFINE_STATIC_KEY_FALSE(page_owner_inited); static depot_stack_handle_t dummy_handle; static depot_stack_handle_t dummy_handle; Loading @@ -41,6 +42,9 @@ static int early_page_owner_param(char *buf) if (strcmp(buf, "on") == 0) if (strcmp(buf, "on") == 0) page_owner_disabled = false; page_owner_disabled = false; if (strcmp(buf, "off") == 0) page_owner_disabled = true; return 0; return 0; } } early_param("page_owner", early_page_owner_param); early_param("page_owner", early_page_owner_param); Loading Loading
lib/Kconfig.debug +11 −0 Original line number Original line Diff line number Diff line Loading @@ -257,6 +257,17 @@ config PAGE_OWNER If unsure, say N. If unsure, say N. config PAGE_OWNER_ENABLE_DEFAULT bool "Enable Track page owner by default" depends on PAGE_OWNER ---help--- This keeps track of what call chain is the owner of a page, may help to find bare alloc_page(s) leaks. If you include this feature on your build, it is enabled by default. You should pass "page_owner=off" to boot parameter in order to disable it. Eats a fair amount of memory if enabled. See tools/vm/page_owner_sort.c for user-space helper. config DEBUG_FS config DEBUG_FS bool "Debug Filesystem" bool "Debug Filesystem" select SRCU select SRCU Loading
mm/page_owner.c +5 −1 Original line number Original line Diff line number Diff line Loading @@ -25,7 +25,8 @@ struct page_owner { depot_stack_handle_t handle; depot_stack_handle_t handle; }; }; static bool page_owner_disabled = true; static bool page_owner_disabled = !IS_ENABLED(CONFIG_PAGE_OWNER_ENABLE_DEFAULT); DEFINE_STATIC_KEY_FALSE(page_owner_inited); DEFINE_STATIC_KEY_FALSE(page_owner_inited); static depot_stack_handle_t dummy_handle; static depot_stack_handle_t dummy_handle; Loading @@ -41,6 +42,9 @@ static int early_page_owner_param(char *buf) if (strcmp(buf, "on") == 0) if (strcmp(buf, "on") == 0) page_owner_disabled = false; page_owner_disabled = false; if (strcmp(buf, "off") == 0) page_owner_disabled = true; return 0; return 0; } } early_param("page_owner", early_page_owner_param); early_param("page_owner", early_page_owner_param); Loading