From patchwork Wed Apr 16 04:25:42 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: SeongJae Park X-Patchwork-Id: 14053145 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 BF510C369B1 for ; Wed, 16 Apr 2025 04:26:01 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 0DD836B0246; Wed, 16 Apr 2025 00:25:59 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 08CEA6B0249; Wed, 16 Apr 2025 00:25:59 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id E47D56B024A; Wed, 16 Apr 2025 00:25:58 -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 C480B6B0246 for ; Wed, 16 Apr 2025 00:25:58 -0400 (EDT) Received: from smtpin24.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay04.hostedemail.com (Postfix) with ESMTP id 102F01A1717 for ; Wed, 16 Apr 2025 04:26:00 +0000 (UTC) X-FDA: 83338619280.24.59E2B04 Received: from nyc.source.kernel.org (nyc.source.kernel.org [147.75.193.91]) by imf05.hostedemail.com (Postfix) with ESMTP id 79327100005 for ; Wed, 16 Apr 2025 04:25:58 +0000 (UTC) Authentication-Results: imf05.hostedemail.com; dkim=pass header.d=kernel.org header.s=k20201202 header.b=XBlHAFNH; dmarc=pass (policy=quarantine) header.from=kernel.org; spf=pass (imf05.hostedemail.com: domain of sj@kernel.org designates 147.75.193.91 as permitted sender) smtp.mailfrom=sj@kernel.org ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1744777558; a=rsa-sha256; cv=none; b=E5KX3WLM893sGbgwi3XKIrMUdloxSndhOGeLKyP/bIi3b7J/1frqWkN1nhuYmZ+iqONdUK U4fOn72asAQ4bQcfGBj771ZggeP3QfDEuHQaWpcjy3wEXNEMYgu3pBL3Bov1PvmBCpKxUp 2OtmFetFyrB3hOZennCE58XkrWkB44A= ARC-Authentication-Results: i=1; imf05.hostedemail.com; dkim=pass header.d=kernel.org header.s=k20201202 header.b=XBlHAFNH; dmarc=pass (policy=quarantine) header.from=kernel.org; spf=pass (imf05.hostedemail.com: domain of sj@kernel.org designates 147.75.193.91 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=1744777558; 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=5YbQUb2lMkw7T4CadSeYWDgv8+OKVkXE5/j1XWP/lEc=; b=b+bq7VtpN8OQXb2bJWg/9pJbwBaaPV78PeMJkstvwIogRWdd90P6jhCofKUyMs5mGIyW3s ohBKaiqWuN/BFyeKJGR5YldttyVZOBSGO7xC6msoJ9EXOfZNZ7k7sXM2HXSYUbg2/7aeCW hXK2liNNPfgZPjvA7Y70ME4YrXdWAlg= Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58]) by nyc.source.kernel.org (Postfix) with ESMTP id 67D06A4A8A2; Wed, 16 Apr 2025 04:20:29 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 48A36C4CEE2; Wed, 16 Apr 2025 04:25:57 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1744777557; bh=DI/+42QRjozKh0I6c9tmubfnqOkscfgHWXe6sW2fWEg=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=XBlHAFNHA6AGteX/C6iyezt/7ympaayomg+4W7k6xu8PVng3whKJjnmjWkRAv6yqw 19Q0cOeyHNS4LQ4tZ6/n3KEgNeLQ9G294OWrSzuuVnDpbbsVpF1E/cnKjzpIqqBfqY e+n3SOMpopHHFoM//vBjmRCMuzmAAzTLNeWtG0i3fGgR8yX1Weg5I3FfZnf5xTkz5M QEpr4O6EuogBonhDDz4ZPq+8Xm4fCzfHeGwSE52rYR+FN6G9+fOckZ0DdLeIl7gj79 0nS3ZCn5xZcMuTYiNoLGmurHxP/97Te70wBA9lQUQzFqUiTS7zFtS/Zevj56xnXG7+ J21l1/ydYuQ2w== 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 01/10] mm/damon/core: add damon_ctx->addr_unit Date: Tue, 15 Apr 2025 21:25:42 -0700 Message-Id: <20250416042551.158131-2-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-Queue-Id: 79327100005 X-Rspam-User: X-Rspamd-Server: rspam07 X-Stat-Signature: 8hx7z198n636wgueiorafp6czcq1wsi3 X-HE-Tag: 1744777558-790400 X-HE-Meta: U2FsdGVkX1+5v11uiTYVPtaChzyYebHSr2IMaEEj+f5o9iXvsDbyYDz0PPByo9ueXpow9P0GV75WGsZGznXTrR4zQY/BC/dGim1B5KGzV76nwb6lrTOcV2808uaNAHP8j4oPpIN/5CR5LsF+gOQYAbIp4UbS7D50W4wLmy2HaFzRSMZGpgSqFOG6RZVqkW51UMsnXrCaD/kGxD8z80eDRBDNwR6BilR99XCTb0vnXJvB2kKWokY0A7D9gzeRtt39GeRuVOYftE2JHEy/8i6BlKZ5i/+Kyvi+NNz124By91VlZV6pmIbuhTDfQIZfVeeUV1YxHCKbbNf1AagngZHhrzuOsPe+jf8/05ZleupGg2RxY/JZypH7MnQLTRydepIHSBL0P1yQC+VtLn9WWigfIK5Yv3ianr/LTJNKj2DzARzemvArl7ujB04gOt7ViCNX6xxHyItxwtkhDKvzrXIptVOUqjCGPQ1e5/ttP+hz74o6fyCAIrZpKUdjJ6SoIUc8c0NxfSNmMgAKvwskeJ8ADwECYE17s/a4FmPADtLMm9pzjgDGz7YKV/icGSilWdPr6R1DU64ul1zjoNei63+T/k83IJj5g83TcYdd0UqmE+WKWhEyRQ90kl+sC1/ZimGl5FGT2Izu6pX0tR6alNgi8/QIsKdFKrB0pMn3qIPkgzoFChWC2eiazxzO9Uzo/L5fwa7s4phWx9QicL79CT3Gs1cYOxh4UckZUiAW6xC6SBn56y5wX7V4MMTid+XgGityfMi+BQbpIG3J1xckc0UvrLz+9bJFQeUren2tFG/4UjMlmK3Te6EhdfrB2vVdvTmKqbS8Y6S5W78BFO6f0N3LwKiLCqRBYZjzyzwRatlz9T0+NmhzyTajqSOSzQtWdClu6pb4i+Y0arpEFzHM2YurVVs64tNAO82GkaHW9YQHqZsiAlF0NLtBj86g+ovXOJN5ar5XvWUnHk93ymgRpgk J4s4h0+u XE7dKF2ZcUphAx9Zi+fNbxtNaxe0Es/EVsvmGhnMy1P5ybBlhqnPIkJCPOh1w5y1Dib238aAYM1GAZo5SFd8dZr5r1GEhLW4UErrRHKreAe4a0e1Em000r9qZJLj2mPz2xqRhMGnGzFR9mIRqfRwlivw8GZ+HnI4CE8Ewjpa8iwdKjG8cAincyN0/Iu3arCKlgAVPzSuagKH/a2tCS6u2pd9534O0u3Mn3eo2EU8MVegg5B0b8v0/NSfWF+RLEKoeOjVUSTSNvkMx2Za7x3dz+Z5hRapM0Ywjp1NQoAue+J1NXn4= 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: In some cases, some of the real address that handled by the underlying operations set cannot be handled by DAMON since it uses only 'unsinged long' as the address type. Using DAMON for physical address space monitoring of 32 bit ARM devices with large physical address extension (LPAE) is one example[1]. Add a parameter name 'addr_unit' to core layer to help such cases. DAMON core API callers can set it as the scale factor that will be used by the operations set for translating the core layer's addresses to the real address by multiplying the parameter value to the core layer address. Support of the parameter is up to each operations set layer. The support from the physical address space operations set (paddr) will be added with following commits. [1] https://lore.kernel.org/20250408075553.959388-1-zuoze1@huawei.com Signed-off-by: SeongJae Park --- include/linux/damon.h | 2 ++ mm/damon/core.c | 3 +++ 2 files changed, 5 insertions(+) diff --git a/include/linux/damon.h b/include/linux/damon.h index ba3604cd4d60..4ea6f07f390b 100644 --- a/include/linux/damon.h +++ b/include/linux/damon.h @@ -775,6 +775,7 @@ struct damon_attrs { * Accesses to other fields must be protected by themselves. * * @ops: Set of monitoring operations for given use cases. + * @addr_unit: Scale factor for core to ops address conversion. * @callback: Set of callbacks for monitoring events notifications. * * @adaptive_targets: Head of monitoring targets (&damon_target) list. @@ -817,6 +818,7 @@ struct damon_ctx { struct mutex kdamond_lock; struct damon_operations ops; + unsigned long addr_unit; struct damon_callback callback; struct list_head adaptive_targets; diff --git a/mm/damon/core.c b/mm/damon/core.c index 587fb9a4fef8..b78217ad3c5c 100644 --- a/mm/damon/core.c +++ b/mm/damon/core.c @@ -535,6 +535,8 @@ struct damon_ctx *damon_new_ctx(void) ctx->attrs.min_nr_regions = 10; ctx->attrs.max_nr_regions = 1000; + ctx->addr_unit = 1; + INIT_LIST_HEAD(&ctx->adaptive_targets); INIT_LIST_HEAD(&ctx->schemes); @@ -1150,6 +1152,7 @@ int damon_commit_ctx(struct damon_ctx *dst, struct damon_ctx *src) if (err) return err; dst->ops = src->ops; + dst->addr_unit = src->addr_unit ? : 1; return 0; }