From patchwork Wed Apr 16 04:25:45 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: SeongJae Park X-Patchwork-Id: 14053148 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 419CEC369B1 for ; Wed, 16 Apr 2025 04:26:09 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 7011D6B024E; Wed, 16 Apr 2025 00:26:02 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 68F7F6B0251; Wed, 16 Apr 2025 00:26:02 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 505166B0252; Wed, 16 Apr 2025 00:26:02 -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 2DD946B024E for ; Wed, 16 Apr 2025 00:26:02 -0400 (EDT) Received: from smtpin12.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay09.hostedemail.com (Postfix) with ESMTP id 7A40181E3D for ; Wed, 16 Apr 2025 04:26:03 +0000 (UTC) X-FDA: 83338619406.12.1742EC5 Received: from dfw.source.kernel.org (dfw.source.kernel.org [139.178.84.217]) by imf11.hostedemail.com (Postfix) with ESMTP id D8FBE40002 for ; Wed, 16 Apr 2025 04:26:01 +0000 (UTC) Authentication-Results: imf11.hostedemail.com; dkim=pass header.d=kernel.org header.s=k20201202 header.b=p4usEUUh; dmarc=pass (policy=quarantine) header.from=kernel.org; spf=pass (imf11.hostedemail.com: domain of sj@kernel.org designates 139.178.84.217 as permitted sender) smtp.mailfrom=sj@kernel.org ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1744777562; a=rsa-sha256; cv=none; b=f5+8fo0upiPc/cxfQ7v3nSDLIBRH8pztWAW31Ycs4faC7ghE00mzMG/YtW7MUROArh7ApA asrFRBoeI4pZx+6nt8FkcuY8oTWogZvGN5PJ88YN2Q4L61wDQcJoyH2GHrl8C49BN01pqg 6ZjB/EdQCiqj0yFKjLAdNsaMXe5+7Ws= ARC-Authentication-Results: i=1; imf11.hostedemail.com; dkim=pass header.d=kernel.org header.s=k20201202 header.b=p4usEUUh; dmarc=pass (policy=quarantine) header.from=kernel.org; spf=pass (imf11.hostedemail.com: domain of sj@kernel.org designates 139.178.84.217 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=1744777562; 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=JbxxdA/bqAgsbDwuLsm7pevx8meqKVXTW1jIn7mSnKw=; b=6mHoFP9WWI35RcHgDvK176xKcz3EQleSU46MzzGi26Ob22OftHCZ+eN0KVvHAOGILNmRg4 0+IQvn6teMipzcc2w4S9G5WIcogIY0cnqEDlJIKRc160Z+v0Ur95V6fNGlLbFSRvBqwXih 8vxZkFocZduVBEwFowMwZzGmOJqF8ew= Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58]) by dfw.source.kernel.org (Postfix) with ESMTP id 1F07E5C5ADB; Wed, 16 Apr 2025 04:23:44 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id A1183C4CEE2; Wed, 16 Apr 2025 04:26:00 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1744777560; bh=aVhepC2SbbyeztBh1elFWeExoYmm7rHUW1i6zPW/jCA=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=p4usEUUhCGZUhfSiRp1VRg49kAqyRNEsUR/S5IHIPt1kf3tjOXkdSUhkaW3lwh9y2 7z3WWsrN6c/Dxcl0hSJoz+NrkJrJzf6mvKovDg2QpXOsfrWT7dC93umI7ZIj5mwdh5 sITAtyzkZsPAFqwGLf3sPAvhikhjbY6+ZCTZFbeePRb2SeXVoOyDgNppz8LEoGYgAN D4FzQLf6bsUBD4bRWXe+TG7CdUp5xq1aqB45jOFEWYZEuHtcV1nsUzcmDqt14wjhIN dKUba4U53Wi/saW1ZIAbCE/rFhlwJ/GCXHl98QimK71DVGZZZXRHOFQs0Ut3f5P6Z+ t57woOdqReygA== From: SeongJae Park To: Cc: SeongJae Park , Andrew Morton , Ze Zuo , damon@lists.linux.dev, kernel-team@meta.com, linux-kernel@vger.kernel.org, linux-mm@kvack.org Subject: [RFC PATCH 04/10] mm/damon/paddr: support addr_unit for DAMOS_LRU_[DE]PRIO Date: Tue, 15 Apr 2025 21:25:45 -0700 Message-Id: <20250416042551.158131-5-sj@kernel.org> X-Mailer: git-send-email 2.39.5 In-Reply-To: <20250416042551.158131-1-sj@kernel.org> References: <20250416042551.158131-1-sj@kernel.org> MIME-Version: 1.0 X-Rspamd-Server: rspam11 X-Rspamd-Queue-Id: D8FBE40002 X-Stat-Signature: qoy9a75rmfciwutp38mduwizz6o7afua X-Rspam-User: X-HE-Tag: 1744777561-321019 X-HE-Meta: U2FsdGVkX19sxgR8f9d1FEyMktkyxxhNL4yGNdXkLvpq9YUJZVfCff4QBZzihpoB63scTiEOH+zPjvN/Cm+GXgufEZ2UXjfPZRNKP8kOoMG/kBJqY5AUlrBF5Abm68Fl6YgYXNLvCyA+ZaAkfcr8TWcr2egJBx0pzOtNHx7j5+9MjXoaaQCkfoat67Gl3AM9C1LwEQuPzvbUMMJCKcLHjsn5wvRs5Kj6RdMvTqYSE6vNLfjkMYf5Zr3eZGJppR2xxX53ckopsjaDWpxrSFOnRGeo04YwutAUPh0P2Qm6uKCW5z4WlNODTEZSEKsDRIRMha7NdX+gdVGM+8WdRs7lktQizjkc9vMoKJVe+HdaWZHt0H1IFAynsa+4RnezsblBHIYSvl+yI8ghcq4lFo1hFbDcRU+Nd4QsrMWo/U1QxBd4oYn5HMlXsQ4IVTVdqZLe3MrkC3TCSJ/RoWYhonJAKsDaQvjQRjZcq8Sx094kouBmUm0q4RzbHmdaa0EyzV1sAxgPgxexHnXsKVgF5hWHN6mgfypkLfl4lJZxiKTwpKUsobfjoQ/VZlQH0xFavSD6b5HQLpVVh7IqQaZoQl45m1iXZTB0fibx6Mlz+5SeRleqd7Gpw1nfP3SDmjvsuBDenSMUuVe8qM5vnpO1eKt4Dcb7F7p5/Kn/TU2zikW3cn+FXoQPZJS8cqX0+zRyJKRu3xJvs/0Ty6BewVxbjRRn3b8tNuE++FGNfiCJFZOX8iHFHd+k6kV5fZ/zd0Uzjw3H3J4NIRcNEcYUcRIx2R16wX0/BBQBi6m6S0U4SL0Fg0C9BXecMrCe3WXz3pqw3VCsR3wRl25sm1GDG1CNI6HzshAR6qCB+BKbccOaz2JA6KwrENejTnt/Eax9FrpP8T+ODzVgYy9ETAkl7JV3clsPr2mOg9PW2K5eAP7amnItme8bLEs7L9cz8bMvW2Y6aZLzRD3prcGwC0j33iZAni8 Sm413Pd/ Z28jUEzDRSc24bch7DclqsXb1nAX9VAlrFdi1XrRmfsM4qOoeqCnbzgDon/qtX5v7jGuA5IXwITeWtWWUbVHmRSUUrIWnIZ82wxWco8XBHY9F31x1LS7UDzy7lEICjbHCvs+LEde2O1u2sxOoe+uIblMU6Y+FVKYoUqPYxlXMmiEqy10Db57FvBOcntyL/CqIgR5Q4TU3s+ZpAjVZSnhnn/S23TN5N6QSNOm/PbUH4zbV8WCi6s3FePjKeNxR22bhifFJfnHa5JwA7kQE0FwCZhGrpQ== 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: Add support of addr_unit for DAMOS_LRU_PRIO and DAMOS_LRU_DEPRIO action handling from the DAMOS operation implementation for the physical address space. Signed-off-by: SeongJae Park --- mm/damon/paddr.c | 26 ++++++++++++++++---------- 1 file changed, 16 insertions(+), 10 deletions(-) diff --git a/mm/damon/paddr.c b/mm/damon/paddr.c index 169ba81d4182..fc1c720e8cb5 100644 --- a/mm/damon/paddr.c +++ b/mm/damon/paddr.c @@ -347,14 +347,16 @@ static unsigned long damon_pa_pageout(struct damon_region *r, } static inline unsigned long damon_pa_mark_accessed_or_deactivate( - struct damon_region *r, struct damos *s, bool mark_accessed, + struct damon_region *r, unsigned long addr_unit, + struct damos *s, bool mark_accessed, unsigned long *sz_filter_passed) { - unsigned long addr, applied = 0; + phys_addr_t addr; + unsigned long applied = 0; struct folio *folio; - addr = r->ar.start; - while (addr < r->ar.end) { + addr = damon_pa_phys_addr(r->ar.start, addr_unit); + while (addr < damon_pa_phys_addr(r->ar.end, addr_unit)) { folio = damon_get_folio(PHYS_PFN(addr)); if (damon_pa_invalid_damos_folio(folio, s)) { addr += PAGE_SIZE; @@ -380,16 +382,18 @@ static inline unsigned long damon_pa_mark_accessed_or_deactivate( } static unsigned long damon_pa_mark_accessed(struct damon_region *r, - struct damos *s, unsigned long *sz_filter_passed) + unsigned long addr_unit, struct damos *s, + unsigned long *sz_filter_passed) { - return damon_pa_mark_accessed_or_deactivate(r, s, true, + return damon_pa_mark_accessed_or_deactivate(r, addr_unit, s, true, sz_filter_passed); } static unsigned long damon_pa_deactivate_pages(struct damon_region *r, - struct damos *s, unsigned long *sz_filter_passed) + unsigned long addr_unit, struct damos *s, + unsigned long *sz_filter_passed) { - return damon_pa_mark_accessed_or_deactivate(r, s, false, + return damon_pa_mark_accessed_or_deactivate(r, addr_unit, s, false, sz_filter_passed); } @@ -680,9 +684,11 @@ static unsigned long damon_pa_apply_scheme(struct damon_ctx *ctx, case DAMOS_PAGEOUT: return damon_pa_pageout(r, aunit, scheme, sz_filter_passed); case DAMOS_LRU_PRIO: - return damon_pa_mark_accessed(r, scheme, sz_filter_passed); + return damon_pa_mark_accessed(r, aunit, scheme, + sz_filter_passed); case DAMOS_LRU_DEPRIO: - return damon_pa_deactivate_pages(r, scheme, sz_filter_passed); + return damon_pa_deactivate_pages(r, aunit, scheme, + sz_filter_passed); case DAMOS_MIGRATE_HOT: case DAMOS_MIGRATE_COLD: return damon_pa_migrate(r, scheme, sz_filter_passed);