Messages in this thread | | | Subject | Re: [PATCH v5 2/2] lib: stackdepot: Add support to disable stack depot | From | Vijayanand Jitta <> | Date | Fri, 22 Jan 2021 09:33:00 +0530 |
| |
On 1/22/2021 5:55 AM, Minchan Kim wrote: > On Mon, Jan 18, 2021 at 03:26:42PM +0530, vjitta@codeaurora.org wrote: >> From: Vijayanand Jitta <vjitta@codeaurora.org> >> >> Add a kernel parameter stack_depot_disable to disable >> stack depot. So that stack hash table doesn't consume >> any memory when stack depot is disabled. > > The usecase is CONFIG_PAGE_OWNER without page_owner=on. > Without this patch, stackdepot will consume the memory > for the hashtable. By default, it's 8M which is never trivial. > > With this option, in CONFIG_PAGE_OWNER configured system, > page_owner=off, stack_depot_disable in kernel command line, > we could save the wasted memory for the hashtable. >
Sure, will update the commit text with above details. >> >> Signed-off-by: Vinayak Menon <vinmenon@codeaurora.org> >> Signed-off-by: Vijayanand Jitta <vjitta@codeaurora.org> > > Please also update kernel-parameters.txt. >
Sure. >> --- >> include/linux/stackdepot.h | 1 + >> init/main.c | 2 ++ >> lib/stackdepot.c | 33 +++++++++++++++++++++++++++++---- >> 3 files changed, 32 insertions(+), 4 deletions(-) >> >> diff --git a/include/linux/stackdepot.h b/include/linux/stackdepot.h >> index 24d49c7..eafd9aa 100644 >> --- a/include/linux/stackdepot.h >> +++ b/include/linux/stackdepot.h >> @@ -21,4 +21,5 @@ unsigned int stack_depot_fetch(depot_stack_handle_t handle, >> >> unsigned int filter_irq_stacks(unsigned long *entries, unsigned int nr_entries); >> >> +int stack_depot_init(void); >> #endif >> diff --git a/init/main.c b/init/main.c >> index 32b2a8a..8fcf9bb 100644 >> --- a/init/main.c >> +++ b/init/main.c >> @@ -98,6 +98,7 @@ >> #include <linux/mem_encrypt.h> >> #include <linux/kcsan.h> >> #include <linux/init_syscalls.h> >> +#include <linux/stackdepot.h> >> >> #include <asm/io.h> >> #include <asm/bugs.h> >> @@ -827,6 +828,7 @@ static void __init mm_init(void) >> page_ext_init_flatmem(); >> init_debug_pagealloc(); >> report_meminit(); >> + stack_depot_init(); >> mem_init(); >> kmem_cache_init(); >> kmemleak_init(); >> diff --git a/lib/stackdepot.c b/lib/stackdepot.c >> index dff8521..d20e6fd 100644 >> --- a/lib/stackdepot.c >> +++ b/lib/stackdepot.c >> @@ -31,6 +31,8 @@ >> #include <linux/stackdepot.h> >> #include <linux/string.h> >> #include <linux/types.h> >> +#include <linux/vmalloc.h> > > Why do we need vmalloc? >
Its not needed, will remove it.
> Otherwise, looks good to me. > Thank you! >
Thanks for the review.
Thanks, Vijay -- QUALCOMM INDIA, on behalf of Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum, hosted by The Linux Foundation
| |