mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2026-08-31 14:04:27 -04:00
mm/damon/core: reduce kernel stack usage
The main thread function has recently grown to the point of exceeding stack frame size warning limits in some configurations. This is what I hit on s390 with clang and CONFIG_KASAN: mm/damon/core.c:3440:31: error: stack frame size (1352) exceeds limit (1280) in 'kdamond_fn' [-Werror,-Wframe-larger-than] 3440 | static int kdamond_fn(struct damon_ctx *ctx) The largest stack usage here is inside of the kdamond_tune_intervals(), so by marking that one as noinline_for_stack, the functions individually stay below the warning limit, though kdamond_fn() itself still uses hundreds of kilobytes for some reason. Link: https://lore.kernel.org/20260611125704.3386176-1-arnd@kernel.org Signed-off-by: Arnd Bergmann <arnd@arndb.de> Reviewed-by: SeongJae Park <sj@kernel.org> Cc: Bill Wendling <morbo@google.com> Cc: Justin Stitt <justinstitt@google.com> Cc: Nathan Chancellor <nathan@kernel.org> Cc: Quanmin Yan <yanquanmin1@huawei.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
This commit is contained in:
committed by
Andrew Morton
parent
3c77682d80
commit
5a00cae64d
@@ -2052,7 +2052,7 @@ static unsigned long damon_get_intervals_adaptation_bp(struct damon_ctx *c)
|
||||
return adaptation_bp;
|
||||
}
|
||||
|
||||
static void kdamond_tune_intervals(struct damon_ctx *c)
|
||||
static noinline_for_stack void kdamond_tune_intervals(struct damon_ctx *c)
|
||||
{
|
||||
unsigned long adaptation_bp;
|
||||
struct damon_attrs new_attrs;
|
||||
|
||||
Reference in New Issue
Block a user