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 7E324C02183 for ; Thu, 16 Jan 2025 19:05:49 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 0FEDE6B0085; Thu, 16 Jan 2025 14:05:49 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 0AED06B0088; Thu, 16 Jan 2025 14:05:49 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id EE010280001; Thu, 16 Jan 2025 14:05:48 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0013.hostedemail.com [216.40.44.13]) by kanga.kvack.org (Postfix) with ESMTP id D06ED6B0085 for ; Thu, 16 Jan 2025 14:05:48 -0500 (EST) Received: from smtpin11.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay07.hostedemail.com (Postfix) with ESMTP id 80A2B16111C for ; Thu, 16 Jan 2025 19:05:48 +0000 (UTC) X-FDA: 83014244376.11.7550382 Received: from dfw.source.kernel.org (dfw.source.kernel.org [139.178.84.217]) by imf25.hostedemail.com (Postfix) with ESMTP id 89F9FA0009 for ; Thu, 16 Jan 2025 19:05:46 +0000 (UTC) Authentication-Results: imf25.hostedemail.com; dkim=pass header.d=kernel.org header.s=k20201202 header.b=ODQZYrlO; spf=pass (imf25.hostedemail.com: domain of sj@kernel.org designates 139.178.84.217 as permitted sender) smtp.mailfrom=sj@kernel.org; dmarc=pass (policy=quarantine) header.from=kernel.org ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1737054346; 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-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=iG4N9So88IG83ifBNNoficAIBqnWWasnVGqKd1um9vE=; b=4ZWDhEUcPv98zXtWMi7IzNdKPg/5lEXp01bHvxUbHW9EiLM/0gXAEJu0qa2N9GlNuGkwm3 iT4gzC0s4OniXTW8GItKEzfL7ZbV3hPGGpCPtyN5s/q8Q3VHFFORa6e3UYBZYY28bX+xN3 elHroEgZheSGrL1e0DmC5z0niA+mGaw= ARC-Authentication-Results: i=1; imf25.hostedemail.com; dkim=pass header.d=kernel.org header.s=k20201202 header.b=ODQZYrlO; spf=pass (imf25.hostedemail.com: domain of sj@kernel.org designates 139.178.84.217 as permitted sender) smtp.mailfrom=sj@kernel.org; dmarc=pass (policy=quarantine) header.from=kernel.org ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1737054346; a=rsa-sha256; cv=none; b=Nu3G5aRf/LrNl2YT2SR/18e0osvTzpUYhnKy9c2msO+4Vrs9rOmly2BW7DiOlydRD4N6Kz t+TWYbgqxZZwoOZvaRKKDfMBph0fn3xubz7KqWYygBO1+vAJR2wfyI2P6u2j6i9cO6tOzu UgAdCSrjiwYnd9znlj/pIStBfSZeteU= Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58]) by dfw.source.kernel.org (Postfix) with ESMTP id C403D5C0452; Thu, 16 Jan 2025 19:05:04 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 0A9F1C4CEDF; Thu, 16 Jan 2025 19:05:45 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1737054345; bh=qFmthluP9ufWwXn1cIYj4V+I4tC7CDEAGsr70wH9sPg=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=ODQZYrlOIA8/7EudDDu4JDv8AAjIV2jL6UpROIWuYwlYg2sKy+GfHlwntJrqP09vf WhnC5yLSsx5h++8T2mYvsoXXR/vnL/gTXnEXVr8eTuJfKVBNVmJ7dMMf+9kvw7gpxW cONvqOLrI2ji7JVjQw94Be8VWQsJerVMRGJsMlvh3UoL4tlVvuCxDVv8lX68ZUHAVk 9s6793e8RCxqvqcHsBOTIU809GaTwF43nM7GKLYPkZlFFNcdHuaBg4St/tc/y62Bti LzDYqvcsGfI1FMy2FokGwXtfb7Jg59XigY0jiiZf6S4oIwF7yJOzMD/cWaHyXdreFn 1G3Y2uPkObSeQ== From: SeongJae Park To: Usama Arif Cc: SeongJae Park , akpm@linux-foundation.org, damon@lists.linux.dev, linux-mm@kvack.org Subject: Re: [v1 2/2] mm/damon: introduce DAMOS filter type hugepage Date: Thu, 16 Jan 2025 11:05:38 -0800 Message-Id: <20250116190538.60331-1-sj@kernel.org> X-Mailer: git-send-email 2.39.5 In-Reply-To: <20250116144436.3947318-2-usamaarif642@gmail.com> References: MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Rspam-User: X-Rspamd-Server: rspam09 X-Rspamd-Queue-Id: 89F9FA0009 X-Stat-Signature: bkw4s4839jdbotgk1hsdb5hxc1thp3yi X-HE-Tag: 1737054346-875418 X-HE-Meta: U2FsdGVkX18U85uXkwZMzvUuTfZmAmE352BpXFV8qOWtZ3fDn5K8NsLVR0MbgG6P5jQsDdIePqN8Fvle8iHih+LX5M50Z2QDJayG30g+QLS14subw/cbQ37O2vq7EzQir5WOvBe2KJQ9J313ZOX+fdmwJLyKVii8wj0VB7XE7iGhjp76GvO+yYnUWeojXMasnMtBrqGltoEVsigJKgvytqepwQ/P3OWop0Pu+zdo60Y5uyDEeP8ixYJgtH2s6uD2p5jhvhgy5ttenqACT++v0NV3WkgGqxpdPkybJmaHhTzpn6ZK+H9Gl5DZe1aTYalfxpl6U62ZmrA7qBafObDGrxr+BHMYmlUMDLkrG/OEuizwYa2Mg82aouZrJDf3mKBXozr36EVLl4ReTJLI5Eh9e1h+/nM5c8VbN3iYFrxfICxt6eWYGRedq28Tw2EGlkyzC7dCUHAm0g5Gd/qAStdtwjFf0fqiMqHMNxUi6JDFDYR5MA1l0z7ugpDlmSWNHiZf1OdkSKOQ2BNPKYYRAegRs057mELgPEYyLeRi5a5IrURMH7TS+FhKyN4eS87voBZtoCX0QaZhSIExyzc/okSpsBbTWFcTX01DqLjVH5JnDxdnu+EHgah5ZSStKyubWdDb2AcsuZyVLj/ob6bSHr2XBErYNXcidk8qTPPwSD6k+rOU8aA+5M66/ejFc30q7vbDE/Ro/0jIQdakcRatw12ElV9rk+1jfGKqzQ1gfXhSBsX/WSYvMncMUEN8Vd9JH5tWuDAc2b+9MgUSqewvhVieCZsyktOQNRbIbBjgWkNi17wkxG/mmtiPqs05Txn67gl8A36agWp2aAH7l5Z8wB3piNzCwMpVsPKI0FyxThf6u8UvR6B4ZfjYVUqcG3UVf0z4Mg5yui5Z/y3GGQfEkf1Ag5KprM6NiYVZqcTdBhVJoqH5E3yyvLfWF6KoYlsag2RZyYUarnzheQ2Kl8QGuXt 5hzY46S/ 1dHY7/MFXkT8DgFeuLUf6S9nqRbvCsPAZ0damE7J5Xd5OYa1aIMx+/cDiHoLy24LGcpUmXrJAyDAKFM0emAMq8qyPAkBVP6tkUZej+c0YeJKUXqzuAaK3MjIENEujH91m2sF54cy5zFZz10jSgWrHgECaKgY4/SBgJXbElogvz0Tkxbm3s2lTQC9frp8rjXu7jXQUJc8CE+7bqw7QgXWt945jaFe9CpkaTs+nHnERIupPJNrxNwPLPjhye1K0ncua0eS9rPPQMKlfYSv9duom5qkr+gbPp1e50mQx 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: On Thu, 16 Jan 2025 14:44:36 +0000 Usama Arif wrote: > This is to gather statistics to check if hotest memory regions s/hotest/hottest/? > are backed by hugepages. This would also be useful for not only hottest memory regions but general memory regions of specific access temperature. I like this. > This includes both THPs and hugetlbfs. > This filter can help to observe and prove the effectivenes of > different schemes for shrinking/collapsing hugepages. Nice extension of DAMON's page level properties based monitoring! > > Signed-off-by: Usama Arif > --- > include/linux/damon.h | 2 ++ > mm/damon/paddr.c | 3 +++ > mm/damon/sysfs-schemes.c | 1 + > 3 files changed, 6 insertions(+) > > diff --git a/include/linux/damon.h b/include/linux/damon.h > index af525252b853..1d94d7d88b36 100644 > --- a/include/linux/damon.h > +++ b/include/linux/damon.h > @@ -326,6 +326,7 @@ struct damos_stat { > * @DAMOS_FILTER_TYPE_ANON: Anonymous pages. > * @DAMOS_FILTER_TYPE_MEMCG: Specific memcg's pages. > * @DAMOS_FILTER_TYPE_YOUNG: Recently accessed pages. > + * @DAMOS_FILTER_TYPE_HUGEPAGE: Page is part of a hugepage. > * @DAMOS_FILTER_TYPE_ADDR: Address range. > * @DAMOS_FILTER_TYPE_TARGET: Data Access Monitoring target. > * @NR_DAMOS_FILTER_TYPES: Number of filter types. > @@ -345,6 +346,7 @@ enum damos_filter_type { > DAMOS_FILTER_TYPE_ANON, > DAMOS_FILTER_TYPE_MEMCG, > DAMOS_FILTER_TYPE_YOUNG, > + DAMOS_FILTER_TYPE_HUGEPAGE, > DAMOS_FILTER_TYPE_ADDR, > DAMOS_FILTER_TYPE_TARGET, > NR_DAMOS_FILTER_TYPES, > diff --git a/mm/damon/paddr.c b/mm/damon/paddr.c > index c0ccf4fade24..a9e69179d45c 100644 > --- a/mm/damon/paddr.c > +++ b/mm/damon/paddr.c > @@ -222,6 +222,9 @@ static bool damos_pa_filter_match(struct damos_filter *filter, > if (matched) > damon_folio_mkold(folio); > break; > + case DAMOS_FILTER_TYPE_HUGEPAGE: > + matched = folio_size(folio) == HPAGE_PMD_SIZE; > + break; This will make build fails when CONFIG_PGTABLE_HAS_HUGE_LEAVES is not set, like below: /include/linux/compiler_types.h:542:45: error: call to ‘__compiletime_assert_321’ declared with attribute error: BUILD_BUG failed 542 | _compiletime_assert(condition, msg, __compiletime_assert_, __COUNTER__) | ^ [...] /include/linux/huge_mm.h:111:35: note: in expansion of macro ‘HPAGE_PMD_SHIFT’ 111 | #define HPAGE_PMD_SIZE ((1UL) << HPAGE_PMD_SHIFT) | ^~~~~~~~~~~~~~~ /mm/damon/paddr.c:321:48: note: in expansion of macro ‘HPAGE_PMD_SIZE’ 321 | matched = folio_size(folio) == HPAGE_PMD_SIZE; | ^~~~~~~~~~~~~~ This simple test might help you reproducing it: https://github.com/damonitor/damon-tests/blob/master/corr/tests/build_i386.sh What about enclosing the entire case with #if defined(CONFIG_TRANSPARENT_HUGEPAGE) || defined(CONFIG_HUGETLB_PAGE) ? > default: > break; > } > diff --git a/mm/damon/sysfs-schemes.c b/mm/damon/sysfs-schemes.c > index 98f93ae9f59e..de9265f7ccde 100644 > --- a/mm/damon/sysfs-schemes.c > +++ b/mm/damon/sysfs-schemes.c > @@ -329,6 +329,7 @@ static const char * const damon_sysfs_scheme_filter_type_strs[] = { > "anon", > "memcg", > "young", > + "hugepage", > "addr", > "target", > }; Other parts look good to me :) Thanks, SJ [...]