From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by smtp.lore.kernel.org (Postfix) with ESMTP id 4C65EC3DA59 for ; Fri, 19 Jul 2024 17:42:45 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id BDF8B6B0088; Fri, 19 Jul 2024 13:42:44 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id B8EDD6B008C; Fri, 19 Jul 2024 13:42:44 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id A55B46B0093; Fri, 19 Jul 2024 13:42:44 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0011.hostedemail.com [216.40.44.11]) by kanga.kvack.org (Postfix) with ESMTP id 870246B0088 for ; Fri, 19 Jul 2024 13:42:44 -0400 (EDT) Received: from smtpin25.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay05.hostedemail.com (Postfix) with ESMTP id 04AF940878 for ; Fri, 19 Jul 2024 17:42:43 +0000 (UTC) X-FDA: 82357222248.25.2B47EDB Received: from sin.source.kernel.org (sin.source.kernel.org [145.40.73.55]) by imf28.hostedemail.com (Postfix) with ESMTP id 89E27C0005 for ; Fri, 19 Jul 2024 17:42:41 +0000 (UTC) Authentication-Results: imf28.hostedemail.com; dkim=pass header.d=kernel.org header.s=k20201202 header.b=unc6mPAz; dmarc=pass (policy=none) header.from=kernel.org; spf=pass (imf28.hostedemail.com: domain of sj@kernel.org designates 145.40.73.55 as permitted sender) smtp.mailfrom=sj@kernel.org ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1721410928; a=rsa-sha256; cv=none; b=2jt15jqNDugIfbcKhuJtNOYztRhJ+kR+tEbYZxNP08efS0FOWZjDs2fNC9YopGsxwqP2kp 0ZsgZaJDTZzSCr4iogLj8uNsLedTmHKiwNo8RPtc0EMMsDcFLIKzW3lxYssM+uU5uzM0zf YEhLQudJTlxG5y1Lj7qRjy2lg6uk5Qw= ARC-Authentication-Results: i=1; imf28.hostedemail.com; dkim=pass header.d=kernel.org header.s=k20201202 header.b=unc6mPAz; dmarc=pass (policy=none) header.from=kernel.org; spf=pass (imf28.hostedemail.com: domain of sj@kernel.org designates 145.40.73.55 as permitted sender) smtp.mailfrom=sj@kernel.org ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1721410928; h=from:from:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=3U03gDvrs9kW34u/zcbAeJy1LMxcKgEOSFAtlZocjaM=; b=Z8gqkLY18ovpF8kRuD0eBLelDrQDd2X45cfME7oGH3pICYHGQdRyARZhyxrnDzeTSHVs+s 3ydLU483Q6VmzwSz8Ox8AjHPptNVnOHSBJJswsXuzW85BLNFpMcqVypUi3DQx1FALj1P8X Hp7ECWT760cNWavwG3ApqQ3fZcKVdUA= Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58]) by sin.source.kernel.org (Postfix) with ESMTP id 2C576CE1C0C; Fri, 19 Jul 2024 17:42:38 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id BD655C32782; Fri, 19 Jul 2024 17:42:36 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1721410957; bh=Jk9NfEcv66FNR8gsu4jpa1SBZFnUGn3Xmqi1BK+BShw=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=unc6mPAz3GcSgstjiV93+95v/F7cH1nWylvXxhRctjEDwBI9ClNxEgJzF7InUYOhk xi/QaNizR5RqnYEqNlIjX8gy+kJXkWQUta+G3Mpx7jn3ThW/fdB2guziObcCtApNhe N7NYiQlNAZYEbNUC0kU8+pV0kiLciXDdNODF1nleUAJDmwjXXHW7W0IQT5EvwogH/0 0EII1shmxkBY31QS48cZ2zDrjncbkOFlwDuR7hRBxJPRgG8nkEzcd+AmeSjekE1SI+ qB2/msF7ED6ecnHl0xaEnzBFTYDyRD/wfW1X6vdphM3wfEy77HefTatKYlbZYXwrp3 YVHkTSneLCWig== From: SeongJae Park To: flyingpenghao@gmail.com Cc: SeongJae Park , akpm@linux-foundation.org, damon@lists.linux.dev, Peng Hao , linux-mm@kvack.org, linux-kernel@vger.kernel.org Subject: Re: [PATCH v3] mm/damon/lru_sort: adjust local variable to dynamic allocation Date: Fri, 19 Jul 2024 10:42:34 -0700 Message-Id: <20240719174234.47017-1-sj@kernel.org> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20240719091100.42649-1-flyingpeng@tencent.com> References: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Rspamd-Server: rspam12 X-Rspamd-Queue-Id: 89E27C0005 X-Stat-Signature: pffpx6pbfk7qqdfko9rwpt7wj7hpuzx7 X-Rspam-User: X-HE-Tag: 1721410961-379953 X-HE-Meta: U2FsdGVkX1+PhD/0OlHpTOOOBZOiOcjAJozUAq+YUd/SvhKI+XTe/5cgSIislZs4vemfpIPb2EjHd0B9gljg/4D6/xdApgZlS3LZVwCQnY+QvboVFnFWq3f2W0gk5N8yrMtCOq0TKvQ7Hg6ocNQ+XJrchg8lzlcMwVM40IlTwgJt7m0KbzZZEkWdXL2I/Jp/4aPMFbgCmFPlcAYO9qjO6omH9j7p3qNjLYbmhct9yferCsdDAMonc49wtmWttqc3GqULy3l1s8lx/uSM5V+rVPFEoKk1pmDoXK8FkSLoHAltK1joA9yi6atmqURyozg7nbHqnDNkYuUka9xnZ0yR3503xMxQ5WDkeq1Vi8e48EFJEpONCMfQHINXWUUjGwRL/g/CONEfn+G4ugLDXzk9GyRYp+uQjtNw3HsfffUEddCvrfw2aOi9LCW4A1eYDtBmgGL1yWBdAIFIX9UW+WcQyJU04G089P23VxHLkioZlW5vXz1xJ8KLToa+/T58FSM4v2XCh0+gDvf+Z4MY11b3CATZDTVa653NISMMuB1tDgFemO7z9LWLLElk+7tnxwprl2qTzKKHrl6pwY3SmNTolF4W0LMew6ZaXdeomuLE495AiNnkZ7IeLIu8uArN35DkewyEfprBxkjwD2q+AClPj6WTF7/GmSh5uXjATy1WasbV4zlgsxOK5cIHebKjUTPTQENQv1GkEbS5aDab4hdY/O0yi79PnDSYc+AxX6ukakPpASL9/sT0EslJIy2jruQBvn8vz/mrdRviQRzq3NRT2QED6jBQj+mc68UGOwa1R8zT7y0IC3OGJYHimdJTY1BiydMpsL7CcU1U/GKrlMZ721SS8wLuZgetzX/mM1viURBZGThKz5yx3yrarCFoo+7j09DEINNWqJbPczCHSXFDaXdCjlQiUdFgio1zP+YYCCpPzjw75t52wFyXFeqhQUXgGRSWvUV1DSdFineRXzA mE65uH1w GRyaCsmhg0JUu772Nb/cb98wzvcZPVep5+uAWoXGUmO8u2jfBr5VORzJdQUHzL4fDeKQUET5SJbVfd3qQaSO5z3NKOCPxR0EEBmUJHvHKihPHOz+QZq9X0bybjHvZBWLcO5TEP8LsWa8cjeQM8xRypprSeQR1l2tPHsXChCAvJdO/edJYcrIsftTSWe8XqKRbItv/gDurV03YFhQlQNsDwhEbrIn0qsGiOzxUeiaLc2KsbhdDeBMxkjCQ43NBVKIe2SrfJP4D/ROnhp9F+cncUgz+IHViDU50NZmTnpift7lZySonDAn95fDBi/mxyASFhecbMRbVx3LPoolvyDSxSis94o0VXmE59bZoppBiAyuvYmTCu6PE7fLKy/w3Gs7ieExQJY/MYdFneaDRQkow+wVgEdhtwwhz45oN X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: List-Subscribe: List-Unsubscribe: Hi Peng, For DAMON patches, please Cc linux-mm@. I'd also suggest Cc-ing linux-kernel@ if you don't mind. On Fri, 19 Jul 2024 17:11:00 +0800 flyingpenghao@gmail.com wrote: > From: Peng Hao > > 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. > > v2: Change the histgram array in damon_quota to dynamic allocation. > v1: Modify global variables directly. Please put the version history under '---' line below, as suggested[1] by the document. Also, adding lore links to the previous versions would be helpful. > > Signed-off-by: Peng Hao > --- > mm/damon/core.c | 1 + > mm/damon/lru_sort.c | 10 +++++++--- > 2 files changed, 8 insertions(+), 3 deletions(-) > > diff --git a/mm/damon/core.c b/mm/damon/core.c > index 6392f1cc97a3..ac2b736c9115 100644 > --- a/mm/damon/core.c > +++ b/mm/damon/core.c > @@ -375,6 +375,7 @@ struct damos *damon_new_scheme(struct damos_access_pattern *pattern, > INIT_LIST_HEAD(&scheme->list); > > scheme->quota = *(damos_quota_init(quota)); > + kfree(quota); We don't know if the caller has something to do further with it after this function returns. Let's keep it do be done by the caller. > /* quota.goals should be separately set by caller */ > INIT_LIST_HEAD(&scheme->quota.goals); > > diff --git a/mm/damon/lru_sort.c b/mm/damon/lru_sort.c > index 3de2916a65c3..3b417e413bf2 100644 > --- a/mm/damon/lru_sort.c > +++ b/mm/damon/lru_sort.c > @@ -148,10 +148,14 @@ 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_quota *quota = kmemdup(&damon_lru_sort_quota, > + sizeof(struct damos_quota), GFP_KERNEL); Let's do sizeof(*damon_lru_sort_quota). Also, please keep 80 columns line size rule[2] for DAMON code. [1] https://docs.kernel.org/process/submitting-patches.html#the-canonical-patch-format [2] https://docs.kernel.org/process/coding-style.html#breaking-long-lines-and-strings > + > + 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( > /* find the pattern, and */ > @@ -161,7 +165,7 @@ 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); > } > -- > 2.27.0 Thanks, SJ