From: SeongJae Park <sj@kernel.org>
To: flyingpenghao@gmail.com
Cc: SeongJae Park <sj@kernel.org>,
akpm@linux-foundation.org, damon@lists.linux.dev,
linux-mm@kvack.org, Peng Hao <flyingpeng@tencent.com>
Subject: Re: [PATCH v4] mm/damon/lru_sort: adjust local variable to dynamic allocation
Date: Mon, 22 Jul 2024 10:36:38 -0700 [thread overview]
Message-ID: <20240722173638.361530-1-sj@kernel.org> (raw)
In-Reply-To: <20240722053033.92453-1-flyingpeng@tencent.com>
Hi Peng,
On Mon, 22 Jul 2024 13:30:33 +0800 flyingpenghao@gmail.com wrote:
> From: Peng Hao <flyingpeng@tencent.com>
>
> When KASAN is enabled and built with clang:
> mm/damon/lru_sort.c:199:12: error: stack frame size (2328) exceeds
> limit (2048) in 'damon_lru_sort_apply_parameters' [-Werror,-Wframe-larger-than]
> static int damon_lru_sort_apply_parameters(void)
> ^
> 1 error generated.
>
> This is because damon_lru_sort_quota contains a large array, and
> assigning this variable to a local variable causes a large amount of
> stack space to be occupied.
>
> So adjust local variable to dynamic allocation.
>
> Signed-off-by: Peng Hao <flyingpeng@tencent.com>
> ---
> v3 -> v4: adjust release point, tweak format, etc.
> v2 -> v3: don't change histgram array in damon_quota, dynamically
> allocating local variables
> v1 -> v2: don't modify global variables and change the histgram array in
> damon_quota to dynamic allocation
To help people finding the previous versions easy, I'd suggest adding
lore.kernel.org links for the versions here together. For an example, you
could refer to https://lore.kernel.org/20240621163626.74815-1-sj@kernel.org
>
> mm/damon/lru_sort.c | 16 ++++++++++++----
> 1 file changed, 12 insertions(+), 4 deletions(-)
This patch cannot cleanly applied on latest mm-unstable tree. Could you please
rebase this to it and send again?
>
> diff --git a/mm/damon/lru_sort.c b/mm/damon/lru_sort.c
> index 3de2916a65c3..57bcb3b531ff 100644
> --- a/mm/damon/lru_sort.c
> +++ b/mm/damon/lru_sort.c
> @@ -148,12 +148,18 @@ static struct damon_target *target;
> static struct damos *damon_lru_sort_new_scheme(
> struct damos_access_pattern *pattern, enum damos_action action)
> {
> - struct damos_quota quota = damon_lru_sort_quota;
> + struct damos *damos;
> +
> + struct damos_quota *quota = kmemdup(&damon_lru_sort_quota,
> + sizeof(damon_lru_sort_quota), GFP_KERNEL);
I don't think we need the above empty space between two variables definitions.
> +
> + if (!quota)
> + return NULL;
>
> /* Use half of total quota for hot/cold pages sorting */
> - quota.ms = quota.ms / 2;
> + quota->ms = quota->ms / 2;
>
> - return damon_new_scheme(
> + damos = damon_new_scheme(
> /* find the pattern, and */
> pattern,
> /* (de)prioritize on LRU-lists */
> @@ -161,9 +167,11 @@ static struct damos *damon_lru_sort_new_scheme(
> /* for each aggregation interval */
> 0,
> /* under the quota. */
> - "a,
> + quota,
> /* (De)activate this according to the watermarks. */
> &damon_lru_sort_wmarks);
> + kfree(quota);
> + return damos;
> }
>
> /* Create a DAMON-based operation scheme for hot memory regions */
> --
> 2.27.0
Other than above comments, looks good to me overall.
Thanks,
SJ
parent reply other threads:[~2024-07-22 17:36 UTC|newest]
Thread overview: expand[flat|nested] mbox.gz Atom feed
[parent not found: <20240722053033.92453-1-flyingpeng@tencent.com>]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20240722173638.361530-1-sj@kernel.org \
--to=sj@kernel.org \
--cc=akpm@linux-foundation.org \
--cc=damon@lists.linux.dev \
--cc=flyingpeng@tencent.com \
--cc=flyingpenghao@gmail.com \
--cc=linux-mm@kvack.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox