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 EB3C1C02193 for ; Tue, 4 Feb 2025 23:12:57 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 836B4280014; Tue, 4 Feb 2025 18:12:57 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 7E79128000C; Tue, 4 Feb 2025 18:12:57 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 6AECE280014; Tue, 4 Feb 2025 18:12:57 -0500 (EST) 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 4E4FA28000C for ; Tue, 4 Feb 2025 18:12:57 -0500 (EST) Received: from smtpin20.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay04.hostedemail.com (Postfix) with ESMTP id 0B52B1A02E9 for ; Tue, 4 Feb 2025 23:12:57 +0000 (UTC) X-FDA: 83083814394.20.503DB81 Received: from nyc.source.kernel.org (nyc.source.kernel.org [147.75.193.91]) by imf03.hostedemail.com (Postfix) with ESMTP id 6F1D520007 for ; Tue, 4 Feb 2025 23:12:55 +0000 (UTC) Authentication-Results: imf03.hostedemail.com; dkim=pass header.d=kernel.org header.s=k20201202 header.b=ofnJcgZ4; spf=pass (imf03.hostedemail.com: domain of sj@kernel.org designates 147.75.193.91 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=1738710775; 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=1Z+M/nrDYZAAY8TZdK8J1RHs0u/a1Jn3w9Z/oyjR/64=; b=vh22Z60fp2Dj3X3nKXKrB39fcobapA2d+Bw7lmTJd8fLLkf1lgYU2IawMspcwuGBvrTc8V /XeJxGWBgvX9YoDA8zZL7n972kltm9s7wJX3SYgS25hwbU0y9uPhVnIFVuGsZkBjdwb32E N6lyTUv8/Kj8/qCdvcT2K2xNkiWd404= ARC-Authentication-Results: i=1; imf03.hostedemail.com; dkim=pass header.d=kernel.org header.s=k20201202 header.b=ofnJcgZ4; spf=pass (imf03.hostedemail.com: domain of sj@kernel.org designates 147.75.193.91 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=1738710775; a=rsa-sha256; cv=none; b=VoQ8Sz+ryN68ZNPQTG8ZNlnXwuc5d/rzQwCQXpkNJ66XwSKsMZF8bf3ePu6+bqd/3FeLxu TGhne/pOfU7t9iBTEWJUSuK0d3p6Z00/XlDvYr2s7j/7Yw7n9gK9Kdcrg5KyJAx6ruDItL KcMCYaukL8hQA0PRYP8VeLBLF8OjnW4= Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58]) by nyc.source.kernel.org (Postfix) with ESMTP id BA32EA4164F; Tue, 4 Feb 2025 23:11:08 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 5CA9EC4CEDF; Tue, 4 Feb 2025 23:12:53 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1738710774; bh=+z5mOvioXjbBAefe2Jb/27wvTjhE+fwuuMEE89eNhRw=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=ofnJcgZ41WKeINaNhRSdv8fvbjPJFkwTkeRI8y0y/COwcHLl1gQnP/+5PyK70SQD7 1qZznIh0kWDYsgcKUI9FI3Bz/5za1BceZIpesn4SWiI/Whr2H3yAz1+v1KCW+rG2Gx iG6cDnrBSQ0lp87XGtCleZCFYkgOi9odQGoV70XYRKWsTyo02IoCBs0bVqN+fOyYI9 bPvBWQRD105VvCmpEFdTu2WPc+30OrEGLUY7/jj4Z4RgCGxiF5QKBAzuA4W+DyC+Ly HQeCwABWDgW8DrTusTZYIB0CAR5QpdnOMtbBe7BI4hFtHCOCli+FvVpdc9OqLZfzYn 1zTx6bmEyGzCQ== From: SeongJae Park To: Usama Arif Cc: SeongJae Park , akpm@linux-foundation.org, damon@lists.linux.dev, linux-mm@kvack.org, hannes@cmpxchg.org, david@redhat.com, kernel-team@meta.com Subject: Re: [PATCH v4 4/6] mm/damon: introduce DAMOS filter type hugepage Date: Tue, 4 Feb 2025 15:12:48 -0800 Message-Id: <20250204231248.2729-1-sj@kernel.org> X-Mailer: git-send-email 2.39.5 In-Reply-To: <20250203225604.44742-5-usamaarif642@gmail.com> References: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Rspamd-Server: rspam05 X-Rspamd-Queue-Id: 6F1D520007 X-Stat-Signature: q9njhkrpjt9z18fosotoqcwwwx9juy9z X-Rspam-User: X-HE-Tag: 1738710775-7218 X-HE-Meta: U2FsdGVkX1+PI5GZ4HZO18zQ6Em4m4eijtHEH4m9GscITRpVflfNmO+mcTouFdP/o72/dfCkzr1rUQj4q7n6ajE8otEksAWN8JDwpUogx/YejkwjY47TGFkIsPgNT0x/h4xQ9OF1FDeIWIK7czR4B0Ql5DpOnJjz/IS53trjphIbGi6wVJsQ3LAiA8UEnFlEPZjS9HVwPWhAsjzsMSrvjWYc87QVaEdE7AuwtxUwD14smx/t/m3F2UB5S/AfO2lTWJiownp8X6JA+wG6/Q8/YNBu6UMXTCgjT97LLvH9uSOZMCgG+Q8/ynxO5M8a4jMqdAwPuKbzL/9T7wfPuHLJUqTlGgicXqsuVeFOGuUu8PDlE89Bf5E1uON9varek7w41wG8RsHij6o7i1KQfLP6H066VXie9linKfxgaYIHXDKakNuMoPMtMER02ItqttF51AXmXPwtBBhRSwpZWxWoZD3CCHpfR5fYvBwQ1/5S0yj+ue10qVHCXyYlF+EV7BPc0u6oxmTsH0VR+mVz7+38FAoaiQlf3kwZLrqWiDnoVg2Wf43AkjsWdXf7883weZS5/X1mGPINLUXS49jB2G7f40yEBG+7yquKi15SA23obivvj1X/wAdUqx1d0veUfbn7bevq0m6PxHuD4XKuCBF6ePJKJrRcYWmjNj11Km1Gv50rsrjhvPkkJrvViAmLO6YQYNkfl37GiYr6KcGr59OOyvb0ZyBsM/Cz2pt0D3VRPumxbwSgCMi1W7d69yI6IBfD06lJbH2GjBptw2ELM3IrDgWDOl72SXx258krDMvwjarnlBbCnhl53zF/n10Y/MLga3ol0w4B1gKoWGj2e3JBI4saeAKn+6RAuEyN+2hbIF3YC29g15FzYCANeyLgdqDk4bnW8ZxDh41a9DnUKC3sc9Pfqltq9Tkrj1vJtILV1l9CzMnZrIq5xAym7m/WdEeLBW9jpPfW/K+AZirF2o9 8DpKEAtI /k3AH/DKz2RyzWza6+ZG8h9Y6VWRqmUd/u6gPEOweeWXns6I16KrCBAbf2hd9Y3XBSs41Gx/amLjx7LFW/MEGqwRjA8FyRbhqyyA21DHPb0vvOOx251RGowpEEZpPZ9vhRfg0D2AKdKIr4v9xApplb0pfh173kQxFwe2ATKgDPbLgr61yxOO2eWdG/RbmUW4RWGP7m+aHhcZB/97joFOZssNJS+MkEdlVflfU1ryHrz0iRQw= 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 Mon, 3 Feb 2025 22:55:31 +0000 Usama Arif wrote: > This is to gather statistics to check if memory regions of specific > access tempratures are backed by hugepages of a size in a specific > range nit. A period is missed? > This filter can help to observe and prove the effectivenes of > different schemes for shrinking/collapsing hugepages. > > Signed-off-by: Usama Arif > --- > include/linux/damon.h | 2 ++ > mm/damon/paddr.c | 7 +++++++ > mm/damon/sysfs-schemes.c | 1 + > 3 files changed, 10 insertions(+) > > diff --git a/include/linux/damon.h b/include/linux/damon.h > index 6f30ceeff215..5ba6c2114e3f 100644 > --- a/include/linux/damon.h > +++ b/include/linux/damon.h > @@ -336,6 +336,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. What about "DAMOS_FILTER_TYPE_HUGEPAGE_SIZE: hugepages of a given size range."? > * @DAMOS_FILTER_TYPE_ADDR: Address range. > * @DAMOS_FILTER_TYPE_TARGET: Data Access Monitoring target. > * @NR_DAMOS_FILTER_TYPES: Number of filter types. > @@ -355,6 +356,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 3f59a3fdc391..34fe1eb664cc 100644 > --- a/mm/damon/paddr.c > +++ b/mm/damon/paddr.c > @@ -227,6 +227,7 @@ static bool damos_pa_filter_match(struct damos_filter *filter, > { > bool matched = false; > struct mem_cgroup *memcg; > + size_t folio_sz; > > switch (filter->type) { > case DAMOS_FILTER_TYPE_ANON: > @@ -246,6 +247,12 @@ static bool damos_pa_filter_match(struct damos_filter *filter, > if (matched) > damon_folio_mkold(folio); > break; > +#if defined(CONFIG_PGTABLE_HAS_HUGE_LEAVES) I think we don't really need this macro? > + case DAMOS_FILTER_TYPE_HUGEPAGE: > + folio_sz = folio_size(folio); > + matched = filter->folio_size.min <= folio_sz && folio_sz <= filter->folio_size.max; We should also return 'false' if the folio is not a large folio (folio_sz == PAGE_SIZE), if we agreed to my suggestion on the previous version of this patch series? I'd also prefer calling filter->folio_siz as sz_range or size_range, so that we can reuse it for future filter types of size range. > + break; > +#endif > default: > break; > } > diff --git a/mm/damon/sysfs-schemes.c b/mm/damon/sysfs-schemes.c > index bc7ca43ca9c4..76aee3ab277e 100644 > --- a/mm/damon/sysfs-schemes.c > +++ b/mm/damon/sysfs-schemes.c > @@ -330,6 +330,7 @@ static const char * const damon_sysfs_scheme_filter_type_strs[] = { > "anon", > "memcg", > "young", > + "hugepage", hugepage_size? > "addr", > "target", > }; > -- > 2.43.5 Thanks, SJ