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 95AE1C3DA5D for ; Mon, 22 Jul 2024 17:36:47 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id C29176B0082; Mon, 22 Jul 2024 13:36:46 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id BD8436B0083; Mon, 22 Jul 2024 13:36:46 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id A9F866B0085; Mon, 22 Jul 2024 13:36:46 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0016.hostedemail.com [216.40.44.16]) by kanga.kvack.org (Postfix) with ESMTP id 8CD476B0082 for ; Mon, 22 Jul 2024 13:36:46 -0400 (EDT) Received: from smtpin11.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay07.hostedemail.com (Postfix) with ESMTP id A56C5161937 for ; Mon, 22 Jul 2024 17:36:45 +0000 (UTC) X-FDA: 82368093570.11.C15B3DC Received: from dfw.source.kernel.org (dfw.source.kernel.org [139.178.84.217]) by imf29.hostedemail.com (Postfix) with ESMTP id EC4CD12001D for ; Mon, 22 Jul 2024 17:36:42 +0000 (UTC) Authentication-Results: imf29.hostedemail.com; dkim=pass header.d=kernel.org header.s=k20201202 header.b=rXasLMDM; spf=pass (imf29.hostedemail.com: domain of sj@kernel.org designates 139.178.84.217 as permitted sender) smtp.mailfrom=sj@kernel.org; dmarc=pass (policy=none) header.from=kernel.org ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1721669780; a=rsa-sha256; cv=none; b=fAA9eb+65JF6ZZO/88KURuTTPp1mIgVyDBE6bJZthJr/W8hvdd0z07p92oNRC49/UOo4hu 6GiEiYOc7/WJVB89M/+HttPTljAWTlbgDvJfi2xmVGLoOaxxHjUUzJ35B4umvDo7GULBx4 rfPMNg1hRwoskhj6Bo5SAzz+EUwGpaQ= ARC-Authentication-Results: i=1; imf29.hostedemail.com; dkim=pass header.d=kernel.org header.s=k20201202 header.b=rXasLMDM; spf=pass (imf29.hostedemail.com: domain of sj@kernel.org designates 139.178.84.217 as permitted sender) smtp.mailfrom=sj@kernel.org; dmarc=pass (policy=none) header.from=kernel.org ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1721669780; 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=GPVvdylrgDvUM7YTTloSMRDcuYV9QgSd93lqA2f5PTs=; b=dZtMx0ZjFcZCPcmmSwPuNqgs/SNB1i7rh7lNTqjxRdf1svqFqjqf4ILaRww0P6Z0dG1+df dlOGEeZ0kwxCOSa/1c1gkibfVNqnOyuGztwbEvmTmhQvRRCnKN1ol+VrNUxyN3CF2BbzYL BT0XhryAeOM5EPo9TdqSzfvr9yCO9N8= Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58]) by dfw.source.kernel.org (Postfix) with ESMTP id DCEDB60AF2; Mon, 22 Jul 2024 17:36:41 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 19629C116B1; Mon, 22 Jul 2024 17:36:41 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1721669801; bh=t4OYvXxpGDNpOWZwR6WXOqyG0BXa9H36Sv8zqFWKB80=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=rXasLMDMeH3mwpREBTXtP5zagUH4ISrLuzCKip1uxwMQpySCEPs3Y8tPD80+AqFgc HKpcnRekFRTNgD9kiJf+RjtSpDD9JWChfjKAxU3Mx/jC1eAJEKYW9T10q1QITcXEC2 LCTQSUdBNjfck8cMkjqN8TKkZ9JsfVEWOYVDf9HN2CryEHXdzcf996LEEZIFzsbL6H MqQ9wfDl+WnieoWy9tGZAWEqhf5kPji2UJNULQEdFyh3vi3xknzO5Xinztq5qNvr/Y anM2AvywmfmZRfGl2zJjs4HtmrWRzYjPygbCJ48S0v9LC/LIwzecqDORWCPWiRzwJV /5YxBPAUercdw== From: SeongJae Park To: flyingpenghao@gmail.com Cc: SeongJae Park , akpm@linux-foundation.org, damon@lists.linux.dev, linux-mm@kvack.org, Peng Hao Subject: Re: [PATCH v4] mm/damon/lru_sort: adjust local variable to dynamic allocation Date: Mon, 22 Jul 2024 10:36:38 -0700 Message-Id: <20240722173638.361530-1-sj@kernel.org> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20240722053033.92453-1-flyingpeng@tencent.com> References: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Stat-Signature: ojzfj73x9nzntoshknf9ejre1qkx89yr X-Rspamd-Queue-Id: EC4CD12001D X-Rspam-User: X-Rspamd-Server: rspam10 X-HE-Tag: 1721669802-620787 X-HE-Meta: U2FsdGVkX1/Xh7WK+ShtfMeZHWpqnNl4iUbpUnc4q/JhR50h2b8rQPmU0w43mrQIYhwDK2PBFHUYUkh0T+iOL/TDivCSrYFF73L4N12h+AQUS5MV1ist5yLXrxkNfo0cO00DzxBQyLqf26pgwDFFamu8TxjrFKHjZ6v+o6L1QPXwhBf3fq2Wc5IQcxcYdWSc8GsQ2R8M85B6x/tI9dwGzg9HjsKZ19bjX5vk2XJ+rgYmA4QVrLlYWbZ4BJLH67ZadamqcYaICGD8Qw8O/XmeH2HgBYJPa/PxlihJXpvRdtJcJEmTQXGyBKP/8NVQVIFsyLvhfxdN1yN8wtSeJtILIf8PGU3L+iGzmaS+lY3A4dDwHH/WX66DQ8QRW7FR+rgN2cxjnQoAry7cg31KSN/1bm276R4fvUmx9vBHv4and1CcsnrYaopP7lIPsxfimKq0zHkFiXsCplUQ1s+PdtRGjBCgsZHBxUal9t0htGl25ICYehBAbDmPfwunXzlC27DVC09xSNLRgiuUwIOJbc1TZiHCb3uTVfYv+o5eC7lbcLET2kBwcTaz3ju68u3GjMh6lT/KAjBc0Otziawqx8knp3Mr9a7WQYqXAyBlp8WkFUiHavI/MtnNpec1FSXhfcvJJBGJDSzngTTrRcbIjuCSzhRw6fmY/d6vMHr56z5NnHU9HpAhckseyuY/q/apFKWKrDjqaT26XvpNPbrKzu/CXrNf+v3cAHetrfHcBc9mTJci8L6LhSSYEA7SFPup2qSpNGjRiIE3Ocn9zA73L0V/RPFJuMKleKtQohe5M+QEB2YDtah8CVVkhPOUo2r0+ZXYltgZDomctJ/Bsslj6OnSd3MzPubLNQdrRtgblqGZX9qBkmF6xrvSRjJS9O/67A+klMBshsrk7uNnuyfUqVP4bdO0+nssh4x7dRqONs+EJydJUlqI7cB/26g92Aoc3zPHe+ij60507Wt8Kmb1gek YJsvaMIO gWgcHRVP9EdIvCQihqXBpDtq7IfSmqHpMQuU6lvj7ClttliUtV+9s5w/UA9Q1+m0dis1vst6UqYQcsUersmyANcTpVRdGW1JAXuOU65lkqWX750Ra8ti/9GEsquLEHx1AchT/+ss8BdmMOMn2oMqLxAO4bZrICcZL8ECT/7NCl6GTK5gL2aT1sC21xi2TEwAcDKmUP7Hd+BxiWU+UjgXNCz3fB+PtoDXhexKAazbUCrgH9McKB9oVdm0JVnl/1fa+356pYU9y7EmXK/k6oMScMFF9bIvog8cyTkXBrO8pszpewAsuSfaPzoC2o3wKW9PiRUR9KIAVOdjfJhTk2OJNhrXlROWauNvsWxJezLsiD0A+FXQ2nJuQlkUoIcgpKtPzsOCb6utUAvxCrfUQzKznWSVM7w== 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, On Mon, 22 Jul 2024 13:30:33 +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. > > Signed-off-by: Peng Hao > --- > 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