Skip to content

Commit 626ee2c

Browse files
Yogesh Lalsfrothwell
authored andcommitted
lib: stackdepot: add support to configure STACK_HASH_SIZE
Use CONFIG_STACK_HASH_ORDER to configure STACK_HASH_SIZE. Aim is to have configurable value for STACK_HASH_SIZE, so depend on use case one can configure it. One example is of Page Owner, CONFIG_PAGE_OWNER works only if page_owner=on via kernel parameter on CONFIG_PAGE_OWNER configured system. Thus, unless admin enable it via command line option, the stackdepot will just waste 8M memory without any customer. Making it configurable and use lower value helps to enable features like CONFIG_PAGE_OWNER without any significant overhead. Link: https://lkml.kernel.org/r/[email protected] Signed-off-by: Yogesh Lal <[email protected]> Signed-off-by: Vinayak Menon <[email protected]> Signed-off-by: Vijayanand Jitta <[email protected]> Reviewed-by: Minchan Kim <[email protected]> Reviewed-by: Alexander Potapenko <[email protected]> Signed-off-by: Andrew Morton <[email protected]> Signed-off-by: Stephen Rothwell <[email protected]>
1 parent 63e931c commit 626ee2c

File tree

2 files changed

+10
-2
lines changed

2 files changed

+10
-2
lines changed

lib/Kconfig

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -651,6 +651,15 @@ config STACKDEPOT
651651
bool
652652
select STACKTRACE
653653

654+
config STACK_HASH_ORDER
655+
int "stack depot hash size (12 => 4KB, 20 => 1024KB)"
656+
range 12 20
657+
default 20
658+
depends on STACKDEPOT
659+
help
660+
Select the hash size as a power of 2 for the stackdepot hash table.
661+
Choose a lower value to reduce the memory impact.
662+
654663
config SBITMAP
655664
bool
656665

lib/stackdepot.c

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -141,8 +141,7 @@ static struct stack_record *depot_alloc_stack(unsigned long *entries, int size,
141141
return stack;
142142
}
143143

144-
#define STACK_HASH_ORDER 20
145-
#define STACK_HASH_SIZE (1L << STACK_HASH_ORDER)
144+
#define STACK_HASH_SIZE (1L << CONFIG_STACK_HASH_ORDER)
146145
#define STACK_HASH_MASK (STACK_HASH_SIZE - 1)
147146
#define STACK_HASH_SEED 0x9747b28c
148147

0 commit comments

Comments
 (0)