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 045E2C54ED1 for ; Sat, 28 Jun 2025 16:52:01 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 9FA9E6B00A3; Sat, 28 Jun 2025 12:51:55 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 9AB1B6B00A4; Sat, 28 Jun 2025 12:51:55 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 875286B00A5; Sat, 28 Jun 2025 12:51:55 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0012.hostedemail.com [216.40.44.12]) by kanga.kvack.org (Postfix) with ESMTP id 74C1A6B00A3 for ; Sat, 28 Jun 2025 12:51:55 -0400 (EDT) Received: from smtpin18.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay06.hostedemail.com (Postfix) with ESMTP id 41F5A105B69 for ; Sat, 28 Jun 2025 16:51:55 +0000 (UTC) X-FDA: 83605401390.18.A35C81D Received: from sea.source.kernel.org (sea.source.kernel.org [172.234.252.31]) by imf29.hostedemail.com (Postfix) with ESMTP id 81D2B120009 for ; Sat, 28 Jun 2025 16:51:53 +0000 (UTC) Authentication-Results: imf29.hostedemail.com; dkim=pass header.d=kernel.org header.s=k20201202 header.b=fHlL1odv; spf=pass (imf29.hostedemail.com: domain of sj@kernel.org designates 172.234.252.31 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=1751129513; 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=iQ2PD+03EU09S9zCi0bJu2FWOvo0vraBiCj9fuQoXP8=; b=qdtI5WYKx3IzdcJ0NB3WJU87q1a7LxZKA3qI++vB9rCCYC47ru4iUkhC/NbM1lurnwK2Dn 20CknNC+KEmWWgedG+8dVN9dG+LeiI3e/2w1WyNuMGt7zdELL5uyBH1QqqV1yHL/zX8kR5 7fkSuVx6cTXv4A0uQ4lXhy50At6hbfw= ARC-Authentication-Results: i=1; imf29.hostedemail.com; dkim=pass header.d=kernel.org header.s=k20201202 header.b=fHlL1odv; spf=pass (imf29.hostedemail.com: domain of sj@kernel.org designates 172.234.252.31 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=1751129513; a=rsa-sha256; cv=none; b=afB9xfubu0ZHwTi+5D63HQtMzovKfFvcBFMPe1UxLQL85/bDZPMBWam+F6Hqhw2VSdoQL8 IegUhpwj8c/T0SW/d9pUshwqiXdTh/A1ZI4d3oNkfyX561CuYm7WGf/nldhzAq8jm0fBvi egLAWIVHEmLOeguS4KMb9m7g/VKCmPI= Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58]) by sea.source.kernel.org (Postfix) with ESMTP id 27E24463B4; Sat, 28 Jun 2025 16:51:52 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id DC25EC4CEEF; Sat, 28 Jun 2025 16:51:51 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1751129512; bh=Cm6pjIFRAJZCOmn0gKgJd7u3o4zVBQh0I1eKxLttZ2I=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=fHlL1odvhMvpV20OVqcThHPTFW7G1vJcUpwFfR4j9Di3UifY/px4+4ofQcdwEQ8M3 jXFYEFTlNoxkuRq/nE5Vz1Al7wRDwJeT5mijjP9zcwv10k6N0hlvasfCAEuDqvgkPO vcIbxH6L2bldpdCC17hR6/SlYcH+543iKT4uIo7KJKq6HpVHaqMuZwVWiSMM4fj4A7 /d5QFgZGEA222bSfDdn+yFr/HmQF+GZFehs/NqRLy2T5t94gFnyBssznM62W/xWijT EQbHfPR1WUqObAATIMi6fxiiHcEe++BOY1vf8aDIh3ZrEUCBsjZkTI/rHnGCkavyiB gO3d3c1D+3hzw== From: SeongJae Park To: Cc: SeongJae Park , Andrew Morton , damon@lists.linux.dev, kernel-team@meta.com, linux-kernel@vger.kernel.org, linux-mm@kvack.org Subject: [RFC PATCH 04/11] mm/damon/paddr: activate DAMOS_LRU_PRIO targets instead of marking accessed Date: Sat, 28 Jun 2025 09:51:37 -0700 Message-Id: <20250628165144.55528-5-sj@kernel.org> X-Mailer: git-send-email 2.39.5 In-Reply-To: <20250628165144.55528-1-sj@kernel.org> References: <20250628165144.55528-1-sj@kernel.org> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Rspamd-Server: rspam02 X-Rspamd-Queue-Id: 81D2B120009 X-Stat-Signature: dqk5wq33rkcfjt914tw5gra3frk5r6hk X-Rspam-User: X-HE-Tag: 1751129513-421606 X-HE-Meta: U2FsdGVkX19/ealk5plHqUFcH3yyyY//TPstCCwsf0clm4VUyUELYR/SE9g+Frctx0SWHOpGh4quz0sFzuHjoGpg0cax3zKUJ39vXZ/xTreyPdrodF2jufGpEUVybjXHB5SonXRjq+j5l4AVUWJR6xkv2rdgRvqnWM6gDtAo/N3m/kj/Xf9tPfDKDRotOcs8Nu/4OKLsFHQ5IBXozynL+rSIpNk5LNZ9nKyDjXC5+Wc/hkXvw3yS1sD3hlAPhdQcqKAeBTMGP1prxWjS6EJFWtve8Gl+wI1bL9RFWpccLjqYyByRIU6fvO0up3OsjwdHDnwW+A+XY1xpOWlVwwsB0PWOUp/s8FN8TvtPqRkPwcgDcEJueUkw1/eS5ZSOA/mn9dTgZBM5CuMDKvPM2TIO5j/iIwENnZEPlypmXC5/lI8aco7HUem+Us/Kc6dv8WGt8bp/gqCgv0A66x5mv762I+kzSHiQzFEn4PRwcVq3LMKURJvxfrsuxdeUeTSv5eKnkGQZ6And290EzS6IfbcGlKXh568hbOFPWgjzH+se9ItcGyQh+MlLHAczxKGvTlNTZu/Tomy3d3XAwxQM5LK4ZHQjoxdennqPS9VMEFoxxukawUFE81F/y+bE0NNKyUFCui9clY5rvVEymuwCbJDLbkzYOK1+6I6fN8p3zA+ZcEHDjdjLpJjIR5a1z5uUhkLN8EJp29kYl7PFk345gfkNRH6Qitm92IhmSO/v7hxaC4vouf30JijrbKDjhJ3YlAyPsUc/CqxF0Epw0OzxY2p5/aZwJFXw6oZ7bqJJEbpSpqaQRtOUkpkzkj/wIsQrnDPo9GCRORkC+6YLXSiJ/UfZwrVCIFrf3kVqAuf9/mC7B2a6PqN0iG5OnhpdjIC7IIWWHAT+JfnRoHNMApxcG8Qfa+M8sT2RdKBm1LnXrv6UblRau9N4gPLl0g4FEvY6uII4mCEvZclPuv4dtYdWOX7 JTWg1dC+ 4Q6cuNYuRqbxcLBz//iDqHn7yklSnHHzktKKekfapiNzaswqfvMKPwDv5i4iCHyOlcYlY0n1qvn1j/gFd4FdEHOCRb4ujsn1sxSYkug4lNxel2EO4RO8bYiBA552oxYC/f7EDBduanZla9hUTaO+8UU0evNvE1ab995ui2A50EGQHNL3EF5bgafPROuia6TX2I56qC3uHgV77ni7t/PyntM0+v7ehvjlS0Te33onblpsjPLfAsHkVUD6S0DplO/JULznPDAtoWMSc8VlPDDNfpOV0vIzy+Q3FIpAmKFMhFuwvC4qSY2ihfdAziQ== 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: DAMOS_LRU_DEPRIOD directly deactivate the pages, while DAMOS_LRU_PRIO calls folio_mark_accessed(), which does incremental activation. The incremental activation was assumed to be useful for making sure the pages of the hot memory region are really hot. After the introduction of DAMOS_LRU_PRIO, the young page filter has added. Users can use the young page filter to make sure the page is eligible to be activated. Meanwhile, the asymmetric behavior of DAMOS_LRU_[DE]PRIO can confuse users. Directly activate given pages for DAMOS_LRU_PRIO, to eliminate the unnecessary incremental activation steps, and be symmetric with DAMOS_LRU_DEPRIO for easier usages. Signed-off-by: SeongJae Park --- mm/damon/paddr.c | 18 ++++++++---------- 1 file changed, 8 insertions(+), 10 deletions(-) diff --git a/mm/damon/paddr.c b/mm/damon/paddr.c index d4261da48b0a..34d4b3017043 100644 --- a/mm/damon/paddr.c +++ b/mm/damon/paddr.c @@ -474,8 +474,8 @@ static unsigned long damon_pa_pageout(struct damon_region *r, struct damos *s, return applied * PAGE_SIZE; } -static inline unsigned long damon_pa_mark_accessed_or_deactivate( - struct damon_region *r, struct damos *s, bool mark_accessed, +static inline unsigned long damon_pa_de_activate( + struct damon_region *r, struct damos *s, bool activate, unsigned long *sz_filter_passed) { unsigned long addr, applied = 0; @@ -494,8 +494,8 @@ static inline unsigned long damon_pa_mark_accessed_or_deactivate( else *sz_filter_passed += folio_size(folio); - if (mark_accessed) - folio_mark_accessed(folio); + if (activate) + folio_activate(folio); else folio_deactivate(folio); applied += folio_nr_pages(folio); @@ -507,18 +507,16 @@ static inline unsigned long damon_pa_mark_accessed_or_deactivate( return applied * PAGE_SIZE; } -static unsigned long damon_pa_mark_accessed(struct damon_region *r, +static unsigned long damon_pa_activate_pages(struct damon_region *r, struct damos *s, unsigned long *sz_filter_passed) { - return damon_pa_mark_accessed_or_deactivate(r, s, true, - sz_filter_passed); + return damon_pa_de_activate(r, s, true, sz_filter_passed); } static unsigned long damon_pa_deactivate_pages(struct damon_region *r, struct damos *s, unsigned long *sz_filter_passed) { - return damon_pa_mark_accessed_or_deactivate(r, s, false, - sz_filter_passed); + return damon_pa_de_activate(r, s, false, sz_filter_passed); } static unsigned int __damon_pa_migrate_folio_list( @@ -803,7 +801,7 @@ static unsigned long damon_pa_apply_scheme(struct damon_ctx *ctx, case DAMOS_PAGEOUT: return damon_pa_pageout(r, scheme, sz_filter_passed); case DAMOS_LRU_PRIO: - return damon_pa_mark_accessed(r, scheme, sz_filter_passed); + return damon_pa_activate_pages(r, scheme, sz_filter_passed); case DAMOS_LRU_DEPRIO: return damon_pa_deactivate_pages(r, scheme, sz_filter_passed); case DAMOS_MIGRATE_HOT: -- 2.39.5