From nobody Thu Dec 18 20:16:05 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id A06AD155342; Thu, 19 Dec 2024 04:03:40 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1734581021; cv=none; b=uXzl68W8kra5O4u7Aec5Bm9LEcEd52KmAwCOCDX7TfwKn93spX4FjsejHKcf0ASvKKXDpRtZy972bH9tbqd4RWl/CubdrHQKl7KdN/+3btNWM8J0VM+SQ/beq2jcFXNz9dKyFp7YYy6CSAO6R9RRI1V94zu7qr3HBQRSB+XcemA= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1734581021; c=relaxed/simple; bh=6yAcbnM6J2idHIjWcNsWaXW+gfpMIfb6CiDEsPN4WLc=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=aS7BuAZ6Ktpb+zeCM506MvmL5yMKpi6u97T7t3r5Y0EKe0Yv1AWyBhSb6I9fW5GxAOWZbxGN/LIHA2UkGZenAGSQcRyB7ujWgxBe+1ppINp1QgvAJ8XxwrwPSajOzFc6HuvN21JUazkNTeghRubtKd/sMLh0FGsqJ5S8RzSs4Tw= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=Z2Zz6jKF; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="Z2Zz6jKF" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 0B80FC4CED4; Thu, 19 Dec 2024 04:03:40 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1734581020; bh=6yAcbnM6J2idHIjWcNsWaXW+gfpMIfb6CiDEsPN4WLc=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=Z2Zz6jKFVEPW7u1pYxFRdlJrY348lqcmWUcfha2+coLLc1HpWoHnTIEUfYg2ziXlC 51ibgYnkuv8dFEKmc1FBcw14hA74jR5dTKVqsb9V8e5E51G4T2ZylTxk9znabTMit9 ohbI4MhC0Re8TXQRCyrAYXo89HrLTs88AjPe31a7yabDNYi/A29oO995ydVGxEvyFR 6A7mzFy59DR/oDcHw19Bc6MRFkMZiE7h5d/MMwZ9PZ1vJmPuDLtvTjdaNcArav1vWf 749M3/3bFJ+mh+1kpk9B/5HUGfV1HxjH6bXsEqPiAQ6M36FDqcrzKHQJUiQ7wMKdHZ P2VR8NWEGYptg== From: SeongJae Park To: Cc: kernel-team@meta.com, SeongJae Park , damon@lists.linux.dev, linux-mm@kvack.org, linux-kernel@vger.kernel.org Subject: [RFC PATCH 01/18] mm/damon: clarify trying vs applying on damos_stat kernel-doc comment Date: Wed, 18 Dec 2024 20:03:10 -0800 Message-Id: <20241219040327.61902-2-sj@kernel.org> X-Mailer: git-send-email 2.39.5 In-Reply-To: <20241219040327.61902-1-sj@kernel.org> References: <20241219040327.61902-1-sj@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" DAMOS stat kernel-doc documentation is using somewhat implicit terms. Without reading the code, understanding it correctly is not that easy. Add the clarification on the kernel-doc comment. Signed-off-by: SeongJae Park --- include/linux/damon.h | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/include/linux/damon.h b/include/linux/damon.h index b4165cc41d99..f66fa0ab9350 100644 --- a/include/linux/damon.h +++ b/include/linux/damon.h @@ -292,6 +292,23 @@ struct damos_watermarks { * @nr_applied: Total number of regions that the scheme is applied. * @sz_applied: Total size of regions that the scheme is applied. * @qt_exceeds: Total number of times the quota of the scheme has exceeded. + * + * "Tried an action to a region" in this context means the DAMOS core logic + * determined the region as eligible to apply the action. The access patt= ern + * (&struct damos_access_pattern), quotas (&struct damos_quota), watermarks + * (&struct damos_watermarks) and filters (&struct damos_filter) that hand= led + * on core logic can affect this. The core logic asks the operation set + * (&struct damon_operations) to apply the action to the region. + * + * "Applied an action to a region" in this context means the operation set + * (&struct damon_operations) successfully applied the action to the regio= n, at + * least to a part of the region. The filters (&struct damos_filter) that + * handled on operation set layer and type of the action and pages of the + * region can affect this. For example, if a filter is set to exclude + * anonymous pages and the region has only anonymous pages, the region wil= l be + * failed at applying the action. If the action is &DAMOS_PAGEOUT and all + * pages of the region are already paged out, the region will be failed at + * applying the action. */ struct damos_stat { unsigned long nr_tried; --=20 2.39.5 From nobody Thu Dec 18 20:16:05 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id A06FC155757; Thu, 19 Dec 2024 04:03:41 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1734581021; cv=none; b=DxsvEFsoOXQHl9HkwdqhqMFO9XShICuXPFjrU1Pef9k4R2ZQgsUlzbJhK5pGgSlS2nM/AxImIodYSQNouT3EStBMAU62m7vcQWtQimnEYURuBVfTNjZTrfgr0arvmao30rWMf+yT9HiFRNS/J3Gj4WPU9zM7pHWObAIeFPSIsYg= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1734581021; c=relaxed/simple; bh=jJiLMSjkfkiYNfqxKD0GDVmVQI/aoRtBVTgnj8eD1Q4=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=EoKNzIs5If4RLc0NMDpfHcwiToLUuytGCpk3vUUechn1DwpSdCPzcMr8Wp2hlO5NzYPCKlcepLoOSWuwvxv2mKYmI2WrJCGkW09LmgHyvyhFpPqGhsBEOoPWVB8Qdq1y6jNsIG2lJBwN2qIk4jM60QE+HhsTyNex/AE+hr2YQ1M= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=JDkuN2WL; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="JDkuN2WL" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 1D141C4CED6; Thu, 19 Dec 2024 04:03:41 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1734581021; bh=jJiLMSjkfkiYNfqxKD0GDVmVQI/aoRtBVTgnj8eD1Q4=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=JDkuN2WLlnPgAv//q0xBglbG9EYR/cthGZiW6EjWvwpjvDkvLFZ7FOr/ikOteFVGQ XDOOUzXbBvMQ7dShJAEdkCj7SAKSC+36QxfDZcPkvWQWvhFkvxJupX4yrgRw0r6GQj T73a31iyJ7UEjMOJOECkvHN6rqie35KwSCybo2DW0J7JnS/NzGdl/mHl9DlMLz5vFw C0a7AuuiR0DHE9LaykwVt/MDuB+V4KJ86y8lKd1uYjkvbTBoHF1GnnTfRaYC5B2rAW 53TuNslNJMDEBd7yFyOnzx6isEwGekyXbfiw1eFd3Qzw1RdHUhOqWAdkBc3ex3sJrK 72M4g0EN5xjeA== From: SeongJae Park To: Cc: kernel-team@meta.com, SeongJae Park , damon@lists.linux.dev, linux-mm@kvack.org, linux-doc@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [RFC PATCH 02/18] Docs/mm/damon/design: document DAMOS regions walking Date: Wed, 18 Dec 2024 20:03:11 -0800 Message-Id: <20241219040327.61902-3-sj@kernel.org> X-Mailer: git-send-email 2.39.5 In-Reply-To: <20241219040327.61902-1-sj@kernel.org> References: <20241219040327.61902-1-sj@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" DAMOS' regions walking feature is an important feature for efficiently retrieving monitoring results or DAMOS-internal behavior. Document it on the design document. Signed-off-by: SeongJae Park --- Documentation/mm/damon/design.rst | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/Documentation/mm/damon/design.rst b/Documentation/mm/damon/des= ign.rst index f9c50525bdbf..a577ae40e71c 100644 --- a/Documentation/mm/damon/design.rst +++ b/Documentation/mm/damon/design.rst @@ -540,6 +540,17 @@ To know how user-space can set the watermarks via :ref= :`DAMON sysfs interface documentation. =20 =20 +Regions Walking +~~~~~~~~~~~~~~~ + +DAMOS feature allowing users access each region that a DAMOS action has ju= st +applied. Using this feature, DAMON :ref:`API ` allows u= sers +access full properties of the regions including the access monitoring resu= lts. +:ref:`DAMON sysfs interface ` also allows users read the = data +via special :ref:`files `. + +.. _damon_design_api: + Application Programming Interface --------------------------------- =20 --=20 2.39.5 From nobody Thu Dec 18 20:16:05 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id D2BAE194A73; Thu, 19 Dec 2024 04:03:42 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1734581022; cv=none; b=VpvuMKA2tJS37zFz69hf8EzbC8v/3LapQpfrojfEZwb0rX2DczsXma9Ly9sNwqyjLJ0PEzNaCMQvkIbRZ7z9l/JN7q/bwga9lYvCzDC4HqPidBYcTD9KSy4ffdKoSHUUN8drUaNSmV3oOINg5JvYA4+77vul+ta9gBT7EtxUxlU= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1734581022; c=relaxed/simple; bh=Aw/qCp2OKsDn0Vp0elm6T6OQsuDbvPiF9mR4j+5HNd8=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=CPmUx8FVcSW8TXlU6NnSFvkjJRV2Fhm+/qSPIENyagTJuzQ1TbJqGkqBRTqSE0Hbqmww8+eOa4pbBDSxGgP0rgX500X+j+NUY79SliykcVWINB1sYKucROPLqMy5Q7TgLieYtwveRGA2T8xM0Y3M7wJoa+9W+rlU4aLpBzkNGd8= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=U2tTbxmm; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="U2tTbxmm" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 3A633C4CED4; Thu, 19 Dec 2024 04:03:42 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1734581022; bh=Aw/qCp2OKsDn0Vp0elm6T6OQsuDbvPiF9mR4j+5HNd8=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=U2tTbxmmglczCo90VZCkRAMan0dUUYbiwkWiCX2bjsVd1i+/CVEd/djOxN65DViYd HGVVxJfV0ZWEdfO90jfrdX5oVaqE/UB+bTuatA29NoQCBPHwT7S6g9ire81fx8tiwZ 61pMKZSdck6PEctLG8ntkCGUhm8PsFsefZyW4wdBaAIMY8x2kkW5VCSiVFjc4lLqVC C30C5/I+w5vNXVJOD2e635SINKRRoA5bKTvzRiGPwA+n7x1sZqXOV34DC7W0N+4LLF y/eurOoKcukW+56yU17d2jDsk9Vr84FufCsYdZaYkZpKiuKj4NL9WovsffvY0w3Cs3 kKd0N9evuuuCQ== From: SeongJae Park To: Cc: kernel-team@meta.com, SeongJae Park , damon@lists.linux.dev, linux-mm@kvack.org, linux-doc@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [RFC PATCH 03/18] Docs/mm/damon/design: add 'statistics' section Date: Wed, 18 Dec 2024 20:03:12 -0800 Message-Id: <20241219040327.61902-4-sj@kernel.org> X-Mailer: git-send-email 2.39.5 In-Reply-To: <20241219040327.61902-1-sj@kernel.org> References: <20241219040327.61902-1-sj@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" DAMOS stats are important feature for tuning of DAMOS-based access-aware system operation, and efficient access pattern monitoring. But not well documented on the design document. Add a section on the document. Signed-off-by: SeongJae Park --- Documentation/mm/damon/design.rst | 37 +++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) diff --git a/Documentation/mm/damon/design.rst b/Documentation/mm/damon/des= ign.rst index a577ae40e71c..8710fa71ad71 100644 --- a/Documentation/mm/damon/design.rst +++ b/Documentation/mm/damon/design.rst @@ -539,6 +539,43 @@ To know how user-space can set the watermarks via :ref= :`DAMON sysfs interface `, refer to :ref:`filters ` part of the documentation. =20 +Statistics +~~~~~~~~~~ + +The statistics of DAMOS behaviors that designed to help monitoring, tuning= and +debugging of DAMOS. + +DAMOS accounts below statistics for each scheme, from the beginning of the +scheme's execution. + +- ``nr_tried``: Total number of regions that the scheme is tried to be app= lied. +- ``sz_trtied``: Total size of regions that the scheme is tried to be appl= ied. +- ``nr_applied``: Total number of regions that the scheme is applied. +- ``sz_applied``: Total size of regions that the scheme is applied. +- ``qt_exceeds``: Total number of times the quota of the scheme has exceed= ed. + +"A scheme is tried to be applied to a region" means DAMOS core logic deter= mined +the region is eligible to apply the scheme's :ref:`action +`. The :ref:`access pattern +`, :ref:`quotas `, +:ref:`watermarks `, and :ref:`filters +` that handled on core logic could affect this. +The core logic will only ask the underlying :ref:`operation set +` to do apply the action to the region, so whether t= he +action is really applied or not is unclear. That's why it is called "trie= d". + +"A scheme is applied to a region" means the :ref:`operation set +` has applied the action to at least a part of the +region. The :ref:`filters ` that handled by t= he +operation set, and the types of the :ref:`action ` +and the pages of the region can affect this. For example, if a filter is = set +to exclude anonymous pages and the region has only anonymous pages, or if = the +action is ``pageout`` while all pages of the region are unreclaimable, app= lying +the action to the region will fail. + +To know how user-space can read the stats via :ref:`DAMON sysfs interface +`, refer to :ref:s`stats ` part of the +documentation. =20 Regions Walking ~~~~~~~~~~~~~~~ --=20 2.39.5 From nobody Thu Dec 18 20:16:05 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id E465219992E; Thu, 19 Dec 2024 04:03:43 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1734581024; cv=none; b=drdjvLKbfsa8SLDGz8a7LVJqaxtC8pdwePAZkJUyxUr7l2B4OYcUPnqYZsPCamsz7tWi/vFLhWCc9cfLNmrY83H6ZC3RcxZek3nGJRpdpxSDsF/MMOZAlQ9N0IJOwJfFMzPsHZGUHV1hEHFP96JsvMGGJ/waA6mFYLv+9RgCtkE= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1734581024; c=relaxed/simple; bh=870oJTBXZdVt9AT5feGTAshGBO42oNB2tnBh+kdf9pU=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=duUxkHxkebN/kzCa1s1hFoYAmbPLymjH3xI9fJ2CQOt5lShg4iXZnlUM6h85NvHOxtCApZ3xHFoRCz5mhfUUM1FNF8D8hSFU9bAz47v5NjoK0Ypc6dbaCAfb7RdSx02a+9rbVEvwHSR7NMtbItzsqrLWBt5ONFEWXXUBFPmsvD0= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=AlR11qQK; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="AlR11qQK" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 636A9C4CED4; Thu, 19 Dec 2024 04:03:43 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1734581023; bh=870oJTBXZdVt9AT5feGTAshGBO42oNB2tnBh+kdf9pU=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=AlR11qQKkpzyBTQiNLszI6jcdKv/J1EWDO9SjdrivcgOlH5rxhbckRGbfZe2FbiaM a8x4tU2XvnmKsuiGDsK8gF/whIEhzVaXGsbJDgQk4AfZJrYbonz2kx8zbUAg13Kp2B 9TZwVLkhLuPW6CzZpL5Xw4rxSqaGTfgH0byKfAwsAR6agFFyc9LHSj1Y7FC0KUexGJ 70R0u8m3b2edUS2OxLyOMeWognAaGXuwyRsgB3LsoHGkiLiyKELVULuSsEhpg4nQew l8c22bHynMak/3i/RggiuhQUNOYJYzJJwGVn89+oD5LiGtvwE9z//yNT0t+ab5wcDe d4AHq3FbGrKCA== From: SeongJae Park To: Cc: kernel-team@meta.com, SeongJae Park , damon@lists.linux.dev, linux-mm@kvack.org, linux-doc@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [RFC PATCH 04/18] Docs/admin-guide/mm/damon/usage: link damos stat design doc Date: Wed, 18 Dec 2024 20:03:13 -0800 Message-Id: <20241219040327.61902-5-sj@kernel.org> X-Mailer: git-send-email 2.39.5 In-Reply-To: <20241219040327.61902-1-sj@kernel.org> References: <20241219040327.61902-1-sj@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" DAMON sysfs usage document should focus on usage, rather than the detail of the stat metric itself. Add a link to the design document on usage section for DAMOS stat. Signed-off-by: SeongJae Park --- Documentation/admin-guide/mm/damon/usage.rst | 3 ++- Documentation/mm/damon/design.rst | 2 ++ 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/Documentation/admin-guide/mm/damon/usage.rst b/Documentation/a= dmin-guide/mm/damon/usage.rst index d9be9f7caa7d..af70f7244700 100644 --- a/Documentation/admin-guide/mm/damon/usage.rst +++ b/Documentation/admin-guide/mm/damon/usage.rst @@ -457,7 +457,8 @@ schemes//stats/ DAMON counts the total number and bytes of regions that each scheme is tri= ed to be applied, the two numbers for the regions that each scheme is successful= ly applied, and the total number of the quota limit exceeds. This statistics= can -be used for online analysis or tuning of the schemes. +be used for online analysis or tuning of the schemes. Refer to :ref:`desi= gn +doc ` for more details about the stats. =20 The statistics can be retrieved by reading the files under ``stats`` direc= tory (``nr_tried``, ``sz_tried``, ``nr_applied``, ``sz_applied``, and diff --git a/Documentation/mm/damon/design.rst b/Documentation/mm/damon/des= ign.rst index 8710fa71ad71..e2666124e382 100644 --- a/Documentation/mm/damon/design.rst +++ b/Documentation/mm/damon/design.rst @@ -539,6 +539,8 @@ To know how user-space can set the watermarks via :ref:= `DAMON sysfs interface `, refer to :ref:`filters ` part of the documentation. =20 +.. _damon_design_damos_stat: + Statistics ~~~~~~~~~~ =20 --=20 2.39.5 From nobody Thu Dec 18 20:16:05 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 0E8DB19CD17; Thu, 19 Dec 2024 04:03:44 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1734581025; cv=none; b=mEhOeRhHmzDKSawB5rS88WiC7ld16B1Cvk359FiXFJQjlDNWqom3FvLMZT5uu1FopLWuqxCuFI98bV/uOGKGLPnboXjb1gvEzk9UOl7tUh354npeiiFk5FPbCKISyuXke5bZDLl+75jPIywKTymTLkI4Q6PZmVa7UvHl9iqdh0E= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1734581025; c=relaxed/simple; bh=cxxjnWzTe5muZlyce9kFDTQgXHn3SHgY8i5MGv2pqZo=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=ZzzahoMiNObTiv9nxkHu3NiD8pk/9kVwAVeKPBmzfizcmskxoa56JNdX2e0GsXSBMhnfJerEFPk/IynUSJN3iHSNpwko2RC5HAy/1yYnGBcePIpqj3FsbeW9bDqxs1vycz2Zh4GkgY6Ym8JpjxsGcnKzj9thoz4OPQha97cpCMI= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=iTssS2WH; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="iTssS2WH" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 75B53C4CEDC; Thu, 19 Dec 2024 04:03:44 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1734581024; bh=cxxjnWzTe5muZlyce9kFDTQgXHn3SHgY8i5MGv2pqZo=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=iTssS2WHa66nMxFXS8zkggEJKRiPlZhTv/5Zpsv2QxVDqaGQA7KH7vHCko5ztski9 OQUNAnp+dZB4iXhLf91mAESi/UjJPsCHf4hm4oa1aKv1fZAKrw9imbq2C4AJAtGHhn Pm/XbpgXz8TKmBurz16QCq4Iko9WWZfU8KDyx6Kf3KCT+3PCt/3dkZr9aao31ut32R ZNNjgsBhnwvAgruO6gbWm+XvlSl9FNcTmXLF8GJ20Hbig3tVW6ccrAgQlVF5ZK+h7D ACT0lwhXKmci4+z4wTfVMPehGxkoulRuz6U+s9TYHvbrQdbCjCJ38PdPnuMPI2r3F1 jLOzvmSj+I2bg== From: SeongJae Park To: Cc: kernel-team@meta.com, SeongJae Park , damon@lists.linux.dev, linux-mm@kvack.org, linux-kernel@vger.kernel.org Subject: [RFC PATCH 05/18] mm/damon: ask apply_scheme() to report filter-passed region-internal bytes Date: Wed, 18 Dec 2024 20:03:14 -0800 Message-Id: <20241219040327.61902-6-sj@kernel.org> X-Mailer: git-send-email 2.39.5 In-Reply-To: <20241219040327.61902-1-sj@kernel.org> References: <20241219040327.61902-1-sj@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Some DAMOS filter types including those for young page, anon page, and belonging memcg are handled by underlying DAMON operations set implementation, via damon_operations->apply_scheme() interface. How many bytes of the region have passed the filter can be useful for DAMOS scheme tuning and access pattern monitoring. Modify the interface to let the callback implementation reports back the number if possible. Signed-off-by: SeongJae Park --- include/linux/damon.h | 5 +++-- mm/damon/core.c | 4 +++- mm/damon/paddr.c | 2 +- mm/damon/vaddr.c | 2 +- 4 files changed, 8 insertions(+), 5 deletions(-) diff --git a/include/linux/damon.h b/include/linux/damon.h index f66fa0ab9350..bff39c23f16e 100644 --- a/include/linux/damon.h +++ b/include/linux/damon.h @@ -534,7 +534,8 @@ enum damon_ops_id { * @apply_scheme is called from @kdamond when a region for user provided * DAMON-based operation scheme is found. It should apply the scheme's ac= tion * to the region and return bytes of the region that the action is success= fully - * applied. + * applied. It should also report how many bytes of the region has passed + * filters (&struct damos_filter) that handled by itself. * @target_valid should check whether the target is still valid for the * monitoring. * @cleanup is called from @kdamond just before its termination. @@ -551,7 +552,7 @@ struct damon_operations { struct damos *scheme); unsigned long (*apply_scheme)(struct damon_ctx *context, struct damon_target *t, struct damon_region *r, - struct damos *scheme); + struct damos *scheme, unsigned long *sz_filter_passed); bool (*target_valid)(struct damon_target *t); void (*cleanup)(struct damon_ctx *context); }; diff --git a/mm/damon/core.c b/mm/damon/core.c index d8c223954996..c7ae95d6b7ba 100644 --- a/mm/damon/core.c +++ b/mm/damon/core.c @@ -1517,6 +1517,7 @@ static void damos_apply_scheme(struct damon_ctx *c, s= truct damon_target *t, unsigned long sz =3D damon_sz_region(r); struct timespec64 begin, end; unsigned long sz_applied =3D 0; + unsigned long sz_ops_filter_passed =3D 0; int err =3D 0; /* * We plan to support multiple context per kdamond, as DAMON sysfs @@ -1563,7 +1564,8 @@ static void damos_apply_scheme(struct damon_ctx *c, s= truct damon_target *t, if (!err) { trace_damos_before_apply(cidx, sidx, tidx, r, damon_nr_regions(t), do_trace); - sz_applied =3D c->ops.apply_scheme(c, t, r, s); + sz_applied =3D c->ops.apply_scheme(c, t, r, s, + &sz_ops_filter_passed); } ktime_get_coarse_ts64(&end); quota->total_charged_ns +=3D timespec64_to_ns(&end) - diff --git a/mm/damon/paddr.c b/mm/damon/paddr.c index a9ff35341d65..3530ef9c80bd 100644 --- a/mm/damon/paddr.c +++ b/mm/damon/paddr.c @@ -477,7 +477,7 @@ static unsigned long damon_pa_migrate(struct damon_regi= on *r, struct damos *s) =20 static unsigned long damon_pa_apply_scheme(struct damon_ctx *ctx, struct damon_target *t, struct damon_region *r, - struct damos *scheme) + struct damos *scheme, unsigned long *sz_filter_passed) { switch (scheme->action) { case DAMOS_PAGEOUT: diff --git a/mm/damon/vaddr.c b/mm/damon/vaddr.c index b9eaa20b73b9..a6174f725bd7 100644 --- a/mm/damon/vaddr.c +++ b/mm/damon/vaddr.c @@ -655,7 +655,7 @@ static unsigned long damos_madvise(struct damon_target = *target, =20 static unsigned long damon_va_apply_scheme(struct damon_ctx *ctx, struct damon_target *t, struct damon_region *r, - struct damos *scheme) + struct damos *scheme, unsigned long *sz_filter_passed) { int madv_action; =20 --=20 2.39.5 From nobody Thu Dec 18 20:16:05 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 295B719DF75; Thu, 19 Dec 2024 04:03:45 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1734581026; cv=none; b=ohWfih+hvKbQAbJbtRA7fQz4IJ6+mjcWHVfCxUx9D+y64V9gEoNQDXKRk6lsjvY7OSotg2iToUBDWRbAoeQd+UWeUvifPGLp6UE1TtcUbq1Pky6k167CFm8gYNuTfpIXXzqoyR+UqB2LqAtbQt4U6kTLsDrd1capBGeS0rRMo/Y= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1734581026; c=relaxed/simple; bh=qRmiCMizOQQeo+/I858Y/f5o5hnl0HiSgoRowr7L2/Y=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=mxBpXTxAHEmlnAf+zzTa8L6sNeB3gST9HGvfTPg0+k7CRB9p0yuXP2hBSwWQ3QJL0VXm8tlUEQKwDCnUpL8J3ZvTLaXLJEBlFvUu7E/XOvg2vlAnoYRXOVcbB58BuqMvecFv/mj+8dcmeen4VcSorB+oVaa3EB1V+ycOUq6RVyM= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=iUXxuYoz; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="iUXxuYoz" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 841BEC4CED4; Thu, 19 Dec 2024 04:03:45 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1734581025; bh=qRmiCMizOQQeo+/I858Y/f5o5hnl0HiSgoRowr7L2/Y=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=iUXxuYoz0GNi9lf9CHZM18zuewqVRNsYobwBykPHSYrMV9AgbT2ibgoGTL7yCHIs4 viP8pP4alQGmgJSLHf/I5LsPUACsFYRzpQicIDxhcro7F8wUnWsW0QJrKrCo8NgoEk HUscxtnN3hWLtn3zVIU4krkMQI0vt2dDIKyl6z1/+gNxTaVQamtpETRyvHw3MeDDUQ JG0qHKEokMfFer8zvAjHZZ7iuDhZgllJPQNKHeJp47L2I30y/9tFFNYIYx6/XbXuCJ 5+Szxy6CAkRdObErvHvP4QfbdqQHcpOeXfMxFVtN3yJgfhJubzqYydJoFvAg7koQuU F7bPo+Gki1G/w== From: SeongJae Park To: Cc: kernel-team@meta.com, SeongJae Park , damon@lists.linux.dev, linux-mm@kvack.org, linux-kernel@vger.kernel.org Subject: [RFC PATCH 06/18] mm/damon/paddr: report filter-passed bytes back for normal actions Date: Wed, 18 Dec 2024 20:03:15 -0800 Message-Id: <20241219040327.61902-7-sj@kernel.org> X-Mailer: git-send-email 2.39.5 In-Reply-To: <20241219040327.61902-1-sj@kernel.org> References: <20241219040327.61902-1-sj@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" damon_operations->apply_scheme() implementations are requested to report back how many bytes of the given region has passed DAMOS filter. 'paddr' operations set implementation supports some of region-internal DAMOS filter handling for normal DAMOS actions except DAMOS_STAT action. But, those are not respecting the request. Report the region-internal DAMOS filter-passed bytes back for the actions. Signed-off-by: SeongJae Park --- mm/damon/paddr.c | 33 ++++++++++++++++++++++----------- 1 file changed, 22 insertions(+), 11 deletions(-) diff --git a/mm/damon/paddr.c b/mm/damon/paddr.c index 3530ef9c80bd..5944316a0b4c 100644 --- a/mm/damon/paddr.c +++ b/mm/damon/paddr.c @@ -243,7 +243,8 @@ static bool damos_pa_filter_out(struct damos *scheme, s= truct folio *folio) return false; } =20 -static unsigned long damon_pa_pageout(struct damon_region *r, struct damos= *s) +static unsigned long damon_pa_pageout(struct damon_region *r, struct damos= *s, + unsigned long *sz_filter_passed) { unsigned long addr, applied; LIST_HEAD(folio_list); @@ -272,6 +273,8 @@ static unsigned long damon_pa_pageout(struct damon_regi= on *r, struct damos *s) =20 if (damos_pa_filter_out(s, folio)) goto put_folio; + else + *sz_filter_passed +=3D folio_size(folio); =20 folio_clear_referenced(folio); folio_test_clear_young(folio); @@ -292,7 +295,8 @@ static unsigned long damon_pa_pageout(struct damon_regi= on *r, struct damos *s) } =20 static inline unsigned long damon_pa_mark_accessed_or_deactivate( - struct damon_region *r, struct damos *s, bool mark_accessed) + struct damon_region *r, struct damos *s, bool mark_accessed, + unsigned long *sz_filter_passed) { unsigned long addr, applied =3D 0; =20 @@ -304,6 +308,8 @@ static inline unsigned long damon_pa_mark_accessed_or_d= eactivate( =20 if (damos_pa_filter_out(s, folio)) goto put_folio; + else + *sz_filter_passed +=3D folio_size(folio); =20 if (mark_accessed) folio_mark_accessed(folio); @@ -317,15 +323,17 @@ static inline unsigned long damon_pa_mark_accessed_or= _deactivate( } =20 static unsigned long damon_pa_mark_accessed(struct damon_region *r, - struct damos *s) + 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, s, true, + sz_filter_passed); } =20 static unsigned long damon_pa_deactivate_pages(struct damon_region *r, - struct damos *s) + 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, s, false, + sz_filter_passed); } =20 static unsigned int __damon_pa_migrate_folio_list( @@ -449,7 +457,8 @@ static unsigned long damon_pa_migrate_pages(struct list= _head *folio_list, return nr_migrated; } =20 -static unsigned long damon_pa_migrate(struct damon_region *r, struct damos= *s) +static unsigned long damon_pa_migrate(struct damon_region *r, struct damos= *s, + unsigned long *sz_filter_passed) { unsigned long addr, applied; LIST_HEAD(folio_list); @@ -462,6 +471,8 @@ static unsigned long damon_pa_migrate(struct damon_regi= on *r, struct damos *s) =20 if (damos_pa_filter_out(s, folio)) goto put_folio; + else + *sz_filter_passed +=3D folio_size(folio); =20 if (!folio_isolate_lru(folio)) goto put_folio; @@ -481,14 +492,14 @@ static unsigned long damon_pa_apply_scheme(struct dam= on_ctx *ctx, { switch (scheme->action) { case DAMOS_PAGEOUT: - return damon_pa_pageout(r, scheme); + return damon_pa_pageout(r, scheme, sz_filter_passed); case DAMOS_LRU_PRIO: - return damon_pa_mark_accessed(r, scheme); + return damon_pa_mark_accessed(r, scheme, sz_filter_passed); case DAMOS_LRU_DEPRIO: - return damon_pa_deactivate_pages(r, scheme); + return damon_pa_deactivate_pages(r, scheme, sz_filter_passed); case DAMOS_MIGRATE_HOT: case DAMOS_MIGRATE_COLD: - return damon_pa_migrate(r, scheme); + return damon_pa_migrate(r, scheme, sz_filter_passed); case DAMOS_STAT: break; default: --=20 2.39.5 From nobody Thu Dec 18 20:16:05 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 5B00019F11B; Thu, 19 Dec 2024 04:03:46 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1734581027; cv=none; b=pQdechKKaqOm0Q4vzBEkLclrxXWSmYCHxEOAvdndpfsRT2trz/sxGA8LGarZo6hYBrQtZqo5UlMkO5M5xl2Y/Pn2QJuug+AyqCzT9xxNAiji/+HaRqEvN/wOjB6f2rS+A2ui63eFP78hj+ZGI6rPG66ZCgA76VcZeNBV3JWbzr8= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1734581027; c=relaxed/simple; bh=v/ZiBRKbfbEykvCZNndO3AyZ9fQawvkE+ZCwqKdxiC0=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=b9bG2A3NxYOJoqXPWjvw0hx/q8nRYTK8TsUAa9BjPok3d06TTTSprjvX9uFjZjeYhXlq/MUoB2hbF4vV8AzViwBGraTH+xR4yiknW+I2y50UsngxdKy4ZnltGMCQzk3iQnPFlqEFnibL2nI49MbyQUhnDRyfBVgJWbRcL251Oro= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=LLwCY7XC; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="LLwCY7XC" Received: by smtp.kernel.org (Postfix) with ESMTPSA id A3310C4CED7; Thu, 19 Dec 2024 04:03:46 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1734581026; bh=v/ZiBRKbfbEykvCZNndO3AyZ9fQawvkE+ZCwqKdxiC0=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=LLwCY7XCrXKLl9hrAIUoT8AM3rD7urUs/LxhpOgzcOc44OGsZAqdYBpczJLDfhqQd Ugn8zdzXuyFUXipe/UpgChq1b7JY/NSSHKYsY68x4fZXAormDkhvVroMcIe/ddmgPk D5agXjvf1pgf4EYBd60zHJfO5mxdeXSSJmE5+Y8ed9riJ927yCogDgGJb799JENyTg 3r74323OuSU6EHo5GhuZ/lCwdOUEnyVMddvXdn/N+WZKizVT590zkYNkgQURdZIeMk DD92sALUgMeLD5Zl1PeFhKkK30JIS8Ms3XQIYkLfaPg6jF/Hh3ZXtVFtLlWNZwSfTA r57yPAYktc80g== From: SeongJae Park To: Cc: kernel-team@meta.com, SeongJae Park , damon@lists.linux.dev, linux-mm@kvack.org, linux-kernel@vger.kernel.org Subject: [RFC PATCH 07/18] mm/damon/paddr: report filter-passed bytes back for DAMOS_STAT action Date: Wed, 18 Dec 2024 20:03:16 -0800 Message-Id: <20241219040327.61902-8-sj@kernel.org> X-Mailer: git-send-email 2.39.5 In-Reply-To: <20241219040327.61902-1-sj@kernel.org> References: <20241219040327.61902-1-sj@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" DAMOS_STAT action handling of paddr DAMON operations set implementation is simply ignoring the filters, and therefore not reporting back the filter-passed bytes. Apply the filtrs and report back the information. Before this change, DAMOS_STAT was doing nothing for DAMOS filters. Hence users might see some performance regressions. Such regression for use cases where no filter is added to the scheme will be negligible, since this change implementation avoid unnecessary filtering works if no filter is installed. For old users who were using DAMOS_STAT with filters, the regression could be visible depending on the size of the region and the overhead of the installed DAMOS filters. But, because the filters were completely ignored before in the use case, no real users would really depend on such use case that makes no point. Signed-off-by: SeongJae Park --- mm/damon/paddr.c | 35 ++++++++++++++++++++++++++++++++++- 1 file changed, 34 insertions(+), 1 deletion(-) diff --git a/mm/damon/paddr.c b/mm/damon/paddr.c index 5944316a0b4c..b0c283808ba6 100644 --- a/mm/damon/paddr.c +++ b/mm/damon/paddr.c @@ -485,6 +485,39 @@ static unsigned long damon_pa_migrate(struct damon_reg= ion *r, struct damos *s, return applied * PAGE_SIZE; } =20 +static bool damon_pa_scheme_has_filter(struct damos *s) +{ + struct damos_filter *f; + + damos_for_each_filter(f, s) + return true; + return false; +} + +static unsigned long damon_pa_stat(struct damon_region *r, struct damos *s, + unsigned long *sz_filter_passed) +{ + unsigned long addr; + LIST_HEAD(folio_list); + + if (!damon_pa_scheme_has_filter(s)) + return 0; + + for (addr =3D r->ar.start; addr < r->ar.end; addr +=3D PAGE_SIZE) { + struct folio *folio =3D damon_get_folio(PHYS_PFN(addr)); + + if (!folio) + continue; + + if (damos_pa_filter_out(s, folio)) + goto put_folio; + else + *sz_filter_passed +=3D folio_size(folio); +put_folio: + folio_put(folio); + } + return 0; +} =20 static unsigned long damon_pa_apply_scheme(struct damon_ctx *ctx, struct damon_target *t, struct damon_region *r, @@ -501,7 +534,7 @@ static unsigned long damon_pa_apply_scheme(struct damon= _ctx *ctx, case DAMOS_MIGRATE_COLD: return damon_pa_migrate(r, scheme, sz_filter_passed); case DAMOS_STAT: - break; + return damon_pa_stat(r, scheme, sz_filter_passed); default: /* DAMOS actions that not yet supported by 'paddr'. */ break; --=20 2.39.5 From nobody Thu Dec 18 20:16:05 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 817B21A0728; Thu, 19 Dec 2024 04:03:48 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1734581028; cv=none; b=AZZtUe+DKYtVVL7UGQ1zALpqDTZnGkmqW76sSVA4LlQFaUuMIlZlJvXqKNcDIGhfJR9+QB1UYJ2RiVUPnGUPZ31xSn6DT1KLTl0CFnIp27YXO4UCBFk8p4l+MeEcgNk+3w1/gCxDsd7wcQ0jApKSiJxOGKrq+ATrX7nnteBLCtI= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1734581028; c=relaxed/simple; bh=64D8a6jEKpsztUjzJW7u7/dJMtao+tMWa0luqj3yM0M=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=pOM+IGYrf6MyLakVMhwfxqexJGow/1EloEHo8JmrWmQvBEtKiyHLXG1RkGkk1AR6vVrJni8bQAQk3sT1k8Vhg0wzGAEowhMx4SUUIlWd2PHXGm3ArOZl7kityo6UEd0FalU225qh1TvIKMTDnIWlaxoNPjHVXTMYSgi2E/yIGj4= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=DBmQQXmZ; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="DBmQQXmZ" Received: by smtp.kernel.org (Postfix) with ESMTPSA id D239BC4CED6; Thu, 19 Dec 2024 04:03:47 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1734581028; bh=64D8a6jEKpsztUjzJW7u7/dJMtao+tMWa0luqj3yM0M=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=DBmQQXmZIOIzv5rl3Sq/NBNabDLR6GahdM2WjV4Ilu0m0t00lMHKeClh3MFv8z2Qy +sIXM5KGE/KBmNlWN7szTk8ucFGmzSRWp8Wmewl0/Dhr1A1vLEL2bd4D3I0LyRreVV PrZIr/PctZNuWPZwMzNxn/zrpr3E1Zh0DCtst3435UjDHeWAQqXByNN3HBUYKEsGZe aB3TtSjRyZ0CQeu1cC2u9vDYqYqB1jwW+cvNUqlTFIfG5cLuUknjpkaodwSKbfDIF+ FrQP77iHzd8QeOe7WMPUl0sHVFXFJjY3kPT+YAAcv5otXGHeHEE9jv1qgdrpJH3g/l wC8CNBbAKoWmw== From: SeongJae Park To: Cc: kernel-team@meta.com, SeongJae Park , damon@lists.linux.dev, linux-mm@kvack.org, linux-kernel@vger.kernel.org Subject: [RFC PATCH 08/18] mm/damon/core: implement per-scheme filter-passed bytes stat Date: Wed, 18 Dec 2024 20:03:17 -0800 Message-Id: <20241219040327.61902-9-sj@kernel.org> X-Mailer: git-send-email 2.39.5 In-Reply-To: <20241219040327.61902-1-sj@kernel.org> References: <20241219040327.61902-1-sj@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Implement a new per-DAMOS scheme statistic field, namely sz_ops_filter_passed, using the changed damon_operations->apply_scheme() interface. It counts total bytes of memory that given DAMOS action tried to be applied, and passed the filters of the scheme. DAMON API users can access it using DAMON-internal safe access features such as damon_call() and/or damos_walk(). Signed-off-by: SeongJae Park --- include/linux/damon.h | 3 +++ mm/damon/core.c | 6 ++++-- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/include/linux/damon.h b/include/linux/damon.h index bff39c23f16e..4a68bb38aad5 100644 --- a/include/linux/damon.h +++ b/include/linux/damon.h @@ -291,6 +291,8 @@ struct damos_watermarks { * @sz_tried: Total size of regions that the scheme is tried to be applied. * @nr_applied: Total number of regions that the scheme is applied. * @sz_applied: Total size of regions that the scheme is applied. + * @sz_ops_filter_passed: + * Total bytes that passed ops layer-handled DAMOS filters. * @qt_exceeds: Total number of times the quota of the scheme has exceeded. * * "Tried an action to a region" in this context means the DAMOS core logic @@ -315,6 +317,7 @@ struct damos_stat { unsigned long sz_tried; unsigned long nr_applied; unsigned long sz_applied; + unsigned long sz_ops_filter_passed; unsigned long qt_exceeds; }; =20 diff --git a/mm/damon/core.c b/mm/damon/core.c index c7ae95d6b7ba..8540e8f91260 100644 --- a/mm/damon/core.c +++ b/mm/damon/core.c @@ -1354,13 +1354,15 @@ static bool damos_skip_charged_region(struct damon_= target *t, } =20 static void damos_update_stat(struct damos *s, - unsigned long sz_tried, unsigned long sz_applied) + unsigned long sz_tried, unsigned long sz_applied, + unsigned long sz_ops_filter_passed) { s->stat.nr_tried++; s->stat.sz_tried +=3D sz_tried; if (sz_applied) s->stat.nr_applied++; s->stat.sz_applied +=3D sz_applied; + s->stat.sz_ops_filter_passed +=3D sz_ops_filter_passed; } =20 static bool __damos_filter_out(struct damon_ctx *ctx, struct damon_target = *t, @@ -1580,7 +1582,7 @@ static void damos_apply_scheme(struct damon_ctx *c, s= truct damon_target *t, r->age =3D 0; =20 update_stat: - damos_update_stat(s, sz, sz_applied); + damos_update_stat(s, sz, sz_applied, sz_ops_filter_passed); } =20 static void damon_do_apply_schemes(struct damon_ctx *c, --=20 2.39.5 From nobody Thu Dec 18 20:16:05 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 817DD1A0B15; Thu, 19 Dec 2024 04:03:49 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1734581029; cv=none; b=s9ePAaml4hCf4TopS2A7LDB78668xXdfSDdaIcEgGDXde6FMSymbyAVNFrnfxE8WiRdZktRqrWqzGzC5gT6K6C6OUAe7MK4x3r4JPdc8LrUmLogPwH+XxKGQmR6ZPQffFwoj6COJvuZB5FiyFYc+EJYySG+2NBK/r+/YvubNgDk= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1734581029; c=relaxed/simple; bh=ftF2xdlxRC1hxynZygPWzsGSDwQOUYQsL2NA51xCWlQ=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=a+UjWMLhLyV/XVOqbFW/qUwERFZQRcad9bKvg9FsQQwj26InBdGZK9b7xtNA1fNtD5gnN6gZMtGnLDY+RdMTYHvQ4l75imwzEIY4LdX2ynfcWSFHYBUmPkklyfM1YySWjJfEBI77h0UmWf8AFyIb0teDRFRmt48pXD00WOyC/Qo= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=AKbtPxMH; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="AKbtPxMH" Received: by smtp.kernel.org (Postfix) with ESMTPSA id DCD8FC4CEDF; Thu, 19 Dec 2024 04:03:48 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1734581029; bh=ftF2xdlxRC1hxynZygPWzsGSDwQOUYQsL2NA51xCWlQ=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=AKbtPxMHjXd7OQ5NwLrw2rb6mfgfVvKC+Xdq9KN6MwWXV9XNXYG4JzMifPgH+ga/s Vwr8ZzhYg18JFB/OYTJP+eOGnvUF9fSjiXvYRxbBsRiC1QEUjiREfqmzGlKo2lk87l qEcOWHjI00o3g80l/lUYFmovE1es9Vt9QIcwW452AR+Wmy52mDaiEGrHflcwcVmHJ6 gF5ob4nECqNkAzPa7j3GmYiVmyb+nb7R1xmJ9IPL3dpdzWyPqJhGrkXPIzmK7JtiDg cKuHyBjb+4x3visLeMmz7Sv6wUhjFtO0Bv/IXPOA5CSk+G6lNHGNanfA1idK/atgZc nrrnve8rqAACg== From: SeongJae Park To: Cc: kernel-team@meta.com, SeongJae Park , damon@lists.linux.dev, linux-mm@kvack.org, linux-kernel@vger.kernel.org Subject: [RFC PATCH 09/18] mm/damon/syfs-schemes: implement per-scheme filter-passed bytes stat Date: Wed, 18 Dec 2024 20:03:18 -0800 Message-Id: <20241219040327.61902-10-sj@kernel.org> X-Mailer: git-send-email 2.39.5 In-Reply-To: <20241219040327.61902-1-sj@kernel.org> References: <20241219040327.61902-1-sj@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Add a new DAMON sysfs interface file under scheme stat directory, namely 'sz_ops_filter_passed'. It represents total bytes that passed region-internal DAMOS filters of the scheme that handled by the DAMON operations set layer. Signed-off-by: SeongJae Park --- mm/damon/sysfs-schemes.c | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/mm/damon/sysfs-schemes.c b/mm/damon/sysfs-schemes.c index 5c4490b97258..b447c412b02c 100644 --- a/mm/damon/sysfs-schemes.c +++ b/mm/damon/sysfs-schemes.c @@ -188,6 +188,7 @@ struct damon_sysfs_stats { unsigned long sz_tried; unsigned long nr_applied; unsigned long sz_applied; + unsigned long sz_ops_filter_passed; unsigned long qt_exceeds; }; =20 @@ -232,6 +233,15 @@ static ssize_t sz_applied_show(struct kobject *kobj, return sysfs_emit(buf, "%lu\n", stats->sz_applied); } =20 +static ssize_t sz_ops_filter_passed_show(struct kobject *kobj, + struct kobj_attribute *attr, char *buf) +{ + struct damon_sysfs_stats *stats =3D container_of(kobj, + struct damon_sysfs_stats, kobj); + + return sysfs_emit(buf, "%lu\n", stats->sz_ops_filter_passed); +} + static ssize_t qt_exceeds_show(struct kobject *kobj, struct kobj_attribute *attr, char *buf) { @@ -258,6 +268,9 @@ static struct kobj_attribute damon_sysfs_stats_nr_appli= ed_attr =3D static struct kobj_attribute damon_sysfs_stats_sz_applied_attr =3D __ATTR_RO_MODE(sz_applied, 0400); =20 +static struct kobj_attribute damon_sysfs_stats_sz_ops_filter_passed_attr = =3D + __ATTR_RO_MODE(sz_ops_filter_passed, 0400); + static struct kobj_attribute damon_sysfs_stats_qt_exceeds_attr =3D __ATTR_RO_MODE(qt_exceeds, 0400); =20 @@ -266,6 +279,7 @@ static struct attribute *damon_sysfs_stats_attrs[] =3D { &damon_sysfs_stats_sz_tried_attr.attr, &damon_sysfs_stats_nr_applied_attr.attr, &damon_sysfs_stats_sz_applied_attr.attr, + &damon_sysfs_stats_sz_ops_filter_passed_attr.attr, &damon_sysfs_stats_qt_exceeds_attr.attr, NULL, }; @@ -2077,6 +2091,8 @@ void damon_sysfs_schemes_update_stats( sysfs_stats->sz_tried =3D scheme->stat.sz_tried; sysfs_stats->nr_applied =3D scheme->stat.nr_applied; sysfs_stats->sz_applied =3D scheme->stat.sz_applied; + sysfs_stats->sz_ops_filter_passed =3D + scheme->stat.sz_ops_filter_passed; sysfs_stats->qt_exceeds =3D scheme->stat.qt_exceeds; } } --=20 2.39.5 From nobody Thu Dec 18 20:16:05 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 95B871A23AC; Thu, 19 Dec 2024 04:03:50 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1734581030; cv=none; b=vBKREnCTsYjr53Cocuekn7czv4I7Yl+29HYY5HLDhHj4IiHiq4bvjy9qp/0CkJaV3V13DnFuQCPG0xotxibZuEvbKwR/ixm3P2Bridg0YsdKTqQ5rbT80ZriX+GJHXlxJQXZohJCPMQKra6JN1lm5dcUvdqytv/cJ7S5x33OVK8= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1734581030; c=relaxed/simple; bh=NyHDQet0LRs2AoDvHZh43WUs/U9z0r8H5Ts9BS0wdXI=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=uqZFmWuVcuTj9zUm3GfIwiIidsqKjTbEcpxXjyvx0V8olaP2yt0wBIX5k6HB1lRdjHhOwoDhYk/tyDVjKzl8B2Hwgxtfsp4N4iGNjgtNKy2OW3SzHuFVn1CVA0hE4QAQPMcXGaI3zatSN/5sGpq4NeJZ6HCMc1T2P/Nuj8Yl3jU= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=CYwAX7Xr; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="CYwAX7Xr" Received: by smtp.kernel.org (Postfix) with ESMTPSA id EDD6CC4CED4; Thu, 19 Dec 2024 04:03:49 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1734581030; bh=NyHDQet0LRs2AoDvHZh43WUs/U9z0r8H5Ts9BS0wdXI=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=CYwAX7XrgZWFXmgmYy9RrbgMbpulDtXMa+kPOwJ3WYCEdKsREfTaO3PA3QNyjZLNL 4ljRYx1V8TP0l87I3/C6lTns2NsF4SroAfF1ZDghJLjJT7M/Wr1qs6fQpouwrDsH7i 3y6UtNk1IcZqc4RZh2H2QNbXXeuvV65MFz5Mx6bgaQhR3dkgNCcFd0GK/pN9XIq7Kb FYU+VpgzN5ZImbV49cPC/n1UUW5C9e/26hjrvMam32dMsJFP80tNuYfnZi9UO2i9Nd EB5qVlkBmK/Xo4f6TS3No1FiO7wrCJxkrKtyxE/v8ERGdhIiXzS77+wEdPXKawjFZs GW5vGIbI3MovQ== From: SeongJae Park To: Cc: kernel-team@meta.com, SeongJae Park , damon@lists.linux.dev, linux-mm@kvack.org, linux-doc@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [RFC PATCH 10/18] Docs/mm/damon/design: document sz_ops_filter_passed Date: Wed, 18 Dec 2024 20:03:19 -0800 Message-Id: <20241219040327.61902-11-sj@kernel.org> X-Mailer: git-send-email 2.39.5 In-Reply-To: <20241219040327.61902-1-sj@kernel.org> References: <20241219040327.61902-1-sj@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Document the new per-scheme accumulated stat for total bytes that passed the operations set layer-handled DAMOS filters on the design document. Signed-off-by: SeongJae Park --- Documentation/mm/damon/design.rst | 2 ++ 1 file changed, 2 insertions(+) diff --git a/Documentation/mm/damon/design.rst b/Documentation/mm/damon/des= ign.rst index e2666124e382..0620675a1e8d 100644 --- a/Documentation/mm/damon/design.rst +++ b/Documentation/mm/damon/design.rst @@ -552,6 +552,8 @@ scheme's execution. =20 - ``nr_tried``: Total number of regions that the scheme is tried to be app= lied. - ``sz_trtied``: Total size of regions that the scheme is tried to be appl= ied. +- ``sz_ops_filter_passed``: Total bytes that passed operations set + layer-handled DAMOS filters. - ``nr_applied``: Total number of regions that the scheme is applied. - ``sz_applied``: Total size of regions that the scheme is applied. - ``qt_exceeds``: Total number of times the quota of the scheme has exceed= ed. --=20 2.39.5 From nobody Thu Dec 18 20:16:05 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id A8F0E1A38F9; Thu, 19 Dec 2024 04:03:51 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1734581031; cv=none; b=oSqJe4YhXr1aLiBbmaiPzHc7fpSHBxYUeIbJtLMJIDct5uL4h1NRuA3x0lMSYouwC0LcfVtNxX4ajlK/EHG12rF7OY8M0RnrJCHGnk/9oRyC5UTLc14hjw+LS/6MJ4KR63LTJUXzkD30rFS9X5Cz5JOicyK9DoiP8PqY2ZSbiyc= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1734581031; c=relaxed/simple; bh=E3nDxsQnOnucfR2JdCI6gXATVIHYtLFHhB+wDRP7hiA=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version:Content-Type; b=bTwsaI7I+RMdJlEhnN5pdXnVw3pVry3WGt/vrb2Ailag51cxMoWuguV2bqsYS48nuj98mAR0Ph7ywb+4GeuY0UQmdbvIKA+6ibnf+wuP6qZjQ7J2iG3VJTWQ1L3WQKkiOd9IA+pxnsQ/mvcG6ieXqseIGRt5vZk2e7NWse+vfRc= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=CKqclcbh; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="CKqclcbh" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 23831C4CED4; Thu, 19 Dec 2024 04:03:51 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1734581031; bh=E3nDxsQnOnucfR2JdCI6gXATVIHYtLFHhB+wDRP7hiA=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=CKqclcbhPJF7kqBVAm02cPqjr4b/PMnD/U8sX8WuWogMdXCphEjY/C16CebDzcjru kTMexC+Xk4wt4g4iCGSKjnD55BuWbTx2Srh895iCRkEtu8KwyGlZotxN/aa5YN52Jx PX1fSqlm9ch6RFmtWBib6ULcj1XvHxKpDc4imqoayb6+7fU+BNTerh+BeKcrkSc3oS 0X/qiya1fv4+jeRZ+xaBZbU4RJUVESPorK2aQqCBtWrXEcN1mBt1EdhELOWm7u7HRe 1oRi48nnWsbLVPsW9HbOVy1++GfiNi9zI8yeZjsreEAAI+r9Cozk63ZF6XmQ/tKO2E JA5HzqucfzhJg== From: SeongJae Park To: Cc: kernel-team@meta.com, SeongJae Park , damon@lists.linux.dev, linux-mm@kvack.org, linux-doc@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [RFC PATCH 11/18] Docs/admin-guide/mm/damon/usage: document sz_ops_filter_passed Date: Wed, 18 Dec 2024 20:03:20 -0800 Message-Id: <20241219040327.61902-12-sj@kernel.org> X-Mailer: git-send-email 2.39.5 In-Reply-To: <20241219040327.61902-1-sj@kernel.org> References: <20241219040327.61902-1-sj@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Document the new per-scheme operations set layer-handled DAMOS filters passed bytes statistic file on DAMON sysfs interface usage document. Signed-off-by: SeongJae Park --- Documentation/admin-guide/mm/damon/usage.rst | 20 +++++++++----------- 1 file changed, 9 insertions(+), 11 deletions(-) diff --git a/Documentation/admin-guide/mm/damon/usage.rst b/Documentation/a= dmin-guide/mm/damon/usage.rst index af70f7244700..179a9060a32e 100644 --- a/Documentation/admin-guide/mm/damon/usage.rst +++ b/Documentation/admin-guide/mm/damon/usage.rst @@ -90,7 +90,7 @@ comma (","). =E2=94=82 =E2=94=82 =E2=94=82 =E2=94=82 =E2=94=82 =E2=94=82 =E2=94=82 = :ref:`watermarks `/metric,interval_us,high,mid,low =E2=94=82 =E2=94=82 =E2=94=82 =E2=94=82 =E2=94=82 =E2=94=82 =E2=94=82 = :ref:`filters `/nr_filters =E2=94=82 =E2=94=82 =E2=94=82 =E2=94=82 =E2=94=82 =E2=94=82 =E2=94=82 = =E2=94=82 0/type,matching,memcg_id - =E2=94=82 =E2=94=82 =E2=94=82 =E2=94=82 =E2=94=82 =E2=94=82 =E2=94=82 = :ref:`stats `/nr_tried,sz_tried,nr_applied,sz_applied,= qt_exceeds + =E2=94=82 =E2=94=82 =E2=94=82 =E2=94=82 =E2=94=82 =E2=94=82 =E2=94=82 = :ref:`stats `/nr_tried,sz_tried,nr_applied,sz_applied,= sz_ops_filter_passed,qt_exceeds =E2=94=82 =E2=94=82 =E2=94=82 =E2=94=82 =E2=94=82 =E2=94=82 =E2=94=82 = :ref:`tried_regions `/total_bytes =E2=94=82 =E2=94=82 =E2=94=82 =E2=94=82 =E2=94=82 =E2=94=82 =E2=94=82 = =E2=94=82 0/start,end,nr_accesses,age =E2=94=82 =E2=94=82 =E2=94=82 =E2=94=82 =E2=94=82 =E2=94=82 =E2=94=82 = =E2=94=82 ... @@ -454,18 +454,16 @@ difference is applied to :ref:`stats ` a= nd schemes//stats/ ------------------ =20 -DAMON counts the total number and bytes of regions that each scheme is tri= ed to -be applied, the two numbers for the regions that each scheme is successful= ly -applied, and the total number of the quota limit exceeds. This statistics= can -be used for online analysis or tuning of the schemes. Refer to :ref:`desi= gn -doc ` for more details about the stats. +DAMON counts statistics for each scheme. This statistics can be used for +online analysis or tuning of the schemes. Refer to :ref:`design doc +` for more details about the stats. =20 The statistics can be retrieved by reading the files under ``stats`` direc= tory -(``nr_tried``, ``sz_tried``, ``nr_applied``, ``sz_applied``, and -``qt_exceeds``), respectively. The files are not updated in real time, so= you -should ask DAMON sysfs interface to update the content of the files for the -stats by writing a special keyword, ``update_schemes_stats`` to the releva= nt -``kdamonds//state`` file. +(``nr_tried``, ``sz_tried``, ``nr_applied``, ``sz_applied``, +``sz_ops_filter_passed``, and ``qt_exceeds``), respectively. The files ar= e not +updated in real time, so you should ask DAMON sysfs interface to update the +content of the files for the stats by writing a special keyword, +``update_schemes_stats`` to the relevant ``kdamonds//state`` file. =20 .. _sysfs_schemes_tried_regions: =20 --=20 2.39.5 From nobody Thu Dec 18 20:16:05 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id E61421A707D; Thu, 19 Dec 2024 04:03:52 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1734581033; cv=none; b=DmVz42W3WtmTkNz4oD1YI+yZtxjfkW3DsF3LIBmR6GFxxK9pLUg3YSdSXiGH6uyAD5UdBTc9cPo8pmtsVF3v4Pj09iBZIRtPSQ/gxEDIAAotGwbfwTJlglc53o5Gnudnfv+OrgUQ7H9QmrhuGBXegvDjJ2TSLqUD9YyoNZoGtOQ= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1734581033; c=relaxed/simple; bh=SpnwWXRTfkYMqczlFfBjIRSLjyD9BiybsCKabnuSowk=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=msg2X69WnHHmTFFNYFJhecEkmX+kSrUbrm1TbR075PnT9ORxOgXoTbmoQKGR3FdB55cR0/IJfVSM7U/vvrllDrUaF++PjbyAD4fSLBlCM7wJFN5VipVtqhnkhYHo8/tgrMAp1uqFlb6Lr2kCo8eRjeScu9QkYt2SldRbSgcV93Y= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=Okgt+R3n; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="Okgt+R3n" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 56C24C4CED6; Thu, 19 Dec 2024 04:03:52 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1734581032; bh=SpnwWXRTfkYMqczlFfBjIRSLjyD9BiybsCKabnuSowk=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=Okgt+R3nL+tMQulyJrSFoz4uD0MSWUhjapO1ixK/kNHeGI2yuwlPCkNTLEo0J6xzr YxT/RrmMFkYzuBSFDLBolZyT4c1UO+XymRSnqfL9EVyS2ugao/7bGvyOvrbCk8NSEK yRI1fYsCNQEFoCFSgUgTd2G00TAzdormCy0hthYnK6m6j50ZuTSVA8D8hYvNOgb8wA jtj/FzeYaetD5WMO9L31/PGO+TMG92PQwMiOYO/xsfSV/v/rktLO8brrKv2ENbj/Ar tIfN7M/TT8HxKjVHNXue3OMu/D5t318yDDFTQI+lWJFou1a+Hcz1/Qc4TSwbPkKQWm RCw+aFdXqkmPQ== From: SeongJae Park To: Cc: kernel-team@meta.com, SeongJae Park , damon@lists.linux.dev, linux-mm@kvack.org, linux-kernel@vger.kernel.org Subject: [RFC PATCH 12/18] Docs/ABI/damon: document per-scheme filter-passed bytes stat file Date: Wed, 18 Dec 2024 20:03:21 -0800 Message-Id: <20241219040327.61902-13-sj@kernel.org> X-Mailer: git-send-email 2.39.5 In-Reply-To: <20241219040327.61902-1-sj@kernel.org> References: <20241219040327.61902-1-sj@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Document the new ABI for per-scheme operations set layer-handled DAMOS filters passed bytes statistic on the ABI document. Signed-off-by: SeongJae Park --- Documentation/ABI/testing/sysfs-kernel-mm-damon | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/Documentation/ABI/testing/sysfs-kernel-mm-damon b/Documentatio= n/ABI/testing/sysfs-kernel-mm-damon index f1b90cf1249b..19cde386fd15 100644 --- a/Documentation/ABI/testing/sysfs-kernel-mm-damon +++ b/Documentation/ABI/testing/sysfs-kernel-mm-damon @@ -384,6 +384,12 @@ Contact: SeongJae Park Description: Reading this file returns the total size of regions that the action of the scheme has successfully applied in bytes. =20 +What: /sys/kernel/mm/damon/admin/kdamonds//contexts//schemes//st= ats/sz_ops_filter_passed +Date: Dec 2024 +Contact: SeongJae Park +Description: Reading this file returns the total size of memory that passed + DAMON operations layer-handled filters of the scheme in bytes. + What: /sys/kernel/mm/damon/admin/kdamonds//contexts//schemes//st= ats/qt_exceeds Date: Mar 2022 Contact: SeongJae Park --=20 2.39.5 From nobody Thu Dec 18 20:16:05 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id C43A31A9B23; Thu, 19 Dec 2024 04:03:53 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1734581033; cv=none; b=g2MOgprP0CVXl99CbX6ZKTnyqdHUWWOBBX3gdfJyzYitm2eSxCq2oM38qYF8mrOv84JlVqU7+HyqfxCgeLGpkVUiqMbM4V2Ji1XlIyPIOVtigxQEeFj6tdlurMGNy42ZVWUlM93+c8BHqzorcbSH8EwYBsMpRE3mSK0trfMwe14= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1734581033; c=relaxed/simple; bh=uqG8Q9Szz47DcZj8JtbgYt8Z9acAYgWsyXGkRRs6FvI=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=VaIaMDv+433cONm4BzFbrWwZcB4BEcZzOhdh6f3SB9n0khAdSjeCRBK/jkv7cqD6HzNN4yObTyPzBwbQMFRHeb6y8ZtKadaYAnX9XMNeqMIIl018OirueYokFivLw0NbSa42jmemkCn4NuqReRRKZaEHivl3axaTiZ13X/jD0uY= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=WlLm/A9A; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="WlLm/A9A" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 6CDBAC4CED4; Thu, 19 Dec 2024 04:03:53 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1734581033; bh=uqG8Q9Szz47DcZj8JtbgYt8Z9acAYgWsyXGkRRs6FvI=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=WlLm/A9Al/6Pem+PtlX0UaTXy+7/tQBEeZTMaw6V2dKYfBiM/eFoArYBajWW48+yG OJuFLmwzHsPUEJ9t1o/xV/YzDH9DUoI2zydoHko9m7055yQfxEGs1LlR5irSd/Fx7f DyYVnt4m5Gcr2Bx8EtjWN0rdpxZt72sCi9OokPAhZ3ghi1FydpigdWWAtxImV0fJ3J 7fSbm9fyit4hYVtVxlkJcwQKFeHVZYh749/+NXYeXX0nBPfZyzrpVd1itd0ZV8vLpK lO53kuJDNrWkh/j8WoY6LpOaSVoUfvenrhx/c0wHj7Tsb44fdIfxoyNSFf4bEHaOA2 kcVb0j5A+7jJw== From: SeongJae Park To: SeongJae Park Cc: kernel-team@meta.com, damon@lists.linux.dev, linux-mm@kvack.org, linux-kernel@vger.kernel.org Subject: [RFC PATCH 13/18] mm/damon/core: invoke damos_walk_control->walk_fn() after applying action Date: Wed, 18 Dec 2024 20:03:22 -0800 Message-Id: <20241219040327.61902-14-sj@kernel.org> X-Mailer: git-send-email 2.39.5 In-Reply-To: <20241219040327.61902-1-sj@kernel.org> References: <20241219040327.61902-1-sj@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" damos_walk_control->walk_fn() is called just before a DAMOS action is applied to a region. It can be useful if some users want to make some changes to the region before the scheme's action is applied, but there is no such real usages. On the other hand, calling it after the DAMOS action is applied can give a chance to investigate what happened during applying the action to the region. Actually, followup commits will make and pass such information to walk_fn(). Invoke walk_fn() after applying the action. Signed-off-by: SeongJae Park --- mm/damon/core.c | 16 +++++++--------- 1 file changed, 7 insertions(+), 9 deletions(-) diff --git a/mm/damon/core.c b/mm/damon/core.c index 8540e8f91260..f7736df4f6c8 100644 --- a/mm/damon/core.c +++ b/mm/damon/core.c @@ -1214,7 +1214,7 @@ int damon_call(struct damon_ctx *ctx, struct damon_ca= ll_control *control) * finishes handling of the request. * * The kdamond executes the given function in the main loop, for each regi= on - * just before it applies any DAMOS actions of @ctx to it. The invocation= is + * just after it applied any DAMOS actions of @ctx to it. The invocation = is * made only within one &damos->apply_interval_us since damos_walk() * invocation, for each scheme. The given callback function can hence saf= ely * access the internal data of &struct damon_ctx and &struct damon_region = that @@ -1432,11 +1432,9 @@ static bool damos_filter_out(struct damon_ctx *ctx, = struct damon_target *t, * @r: The region of @t that @s will be applied. * @s: The scheme of @ctx that will be applied to @r. * - * This function is called from kdamond whenever it found a region that - * eligible to apply a DAMOS scheme's action. If a DAMOS walk request is - * installed by damos_walk() and its &damos_walk_control->walk_fn has not - * invoked for the region for the last &damos->apply_interval_us interval, - * invoke it. + * This function is called from kdamond whenever it asked the operation se= t to + * apply a DAMOS scheme action to a region. If a DAMOS walk request is + * installed by damos_walk() and not yet uninstalled, invoke it. */ static void damos_walk_call_walk(struct damon_ctx *ctx, struct damon_targe= t *t, struct damon_region *r, struct damos *s) @@ -1457,8 +1455,8 @@ static void damos_walk_call_walk(struct damon_ctx *ct= x, struct damon_target *t, * @s: A scheme of @ctx that all walks are now done. * * This function is called when kdamond finished applying the action of a = DAMOS - * scheme to regions that eligible for the given &damos->apply_interval_us= . If - * every scheme of @ctx including @s now finished walking for at least one + * scheme to all regions that eligible for the given &damos->apply_interva= l_us. + * If every scheme of @ctx including @s now finished walking for at least = one * &damos->apply_interval_us, this function makrs the handling of the given * DAMOS walk request is done, so that damos_walk() can wake up and return. */ @@ -1560,7 +1558,6 @@ static void damos_apply_scheme(struct damon_ctx *c, s= truct damon_target *t, if (damos_filter_out(c, t, r, s)) return; ktime_get_coarse_ts64(&begin); - damos_walk_call_walk(c, t, r, s); if (c->callback.before_damos_apply) err =3D c->callback.before_damos_apply(c, t, r, s); if (!err) { @@ -1569,6 +1566,7 @@ static void damos_apply_scheme(struct damon_ctx *c, s= truct damon_target *t, sz_applied =3D c->ops.apply_scheme(c, t, r, s, &sz_ops_filter_passed); } + damos_walk_call_walk(c, t, r, s); ktime_get_coarse_ts64(&end); quota->total_charged_ns +=3D timespec64_to_ns(&end) - timespec64_to_ns(&begin); --=20 2.39.5 From nobody Thu Dec 18 20:16:05 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 0D2981A9B5C; Thu, 19 Dec 2024 04:03:55 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1734581035; cv=none; b=UlolZEdufUtkVZYMD2ss9X7cWag3U1WRyYnfayDyeSVfyJppF/HnW4SP4CYdoWRzZn1r60VHf3+QHrVAH9CsnODNpcoF3CoOPuBljRzMsZB78iDu0AsIN8ToYHbchVJPkLbc/kuCmNXsPSQgYNn0igOujyNjEimbXlmlFCj9nuA= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1734581035; c=relaxed/simple; bh=B/+pkZ34Zt3Ov15iD+IrfcocGY4pQLzf/O+oQbY1lSY=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=R9iAIpDW69xelIvJqYyd39Zi+eprQxY9bJPQ9v2cWEdbQjICQxATFOjrINd7Bsjtugkhv2/VsbQ5jTxr3hYF5PvqBs0nYedC9fQQHnU/Q1ISRufVAQKVjBUoWu9VRqXqkFvlvSLL84IJxeJjOMMqQcx8w0eb/5A2TetIWya+bUY= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=rzq44vv7; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="rzq44vv7" Received: by smtp.kernel.org (Postfix) with ESMTPSA id AF8A2C4CEDE; Thu, 19 Dec 2024 04:03:54 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1734581034; bh=B/+pkZ34Zt3Ov15iD+IrfcocGY4pQLzf/O+oQbY1lSY=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=rzq44vv7oD0N2wj95XS2ZTJ1sSLOaqBIUq36nn7pmxoSw5ZpgQ3g9DCAnXg0Anw8n bFIpSdP7Yv1yOzha/Bw5/GTL0aH+9FuEQETPdZSKYcXkSx1h6kbPkkW7alb6gbJfSh lfXrUimMecgBRoGXL66pD0XsJ7rhIasRwOt9nREX/c1KWizBC/YE4+yeambCjMRrqi 2ekvViNaTS5YuWgpQDNpxWjG0XZ0LiiNSELDOa1vjr5LiscPbC4DliiXVSmov/pX6q ou0yrGFJ+KLQ9Z9woz12s9t7dC0cCGxb2Pzh0a2YEXdJgzisKDiD2fEyjo0tM1gGOB jnrg4qfav135w== From: SeongJae Park To: Cc: kernel-team@meta.com, SeongJae Park , damon@lists.linux.dev, linux-mm@kvack.org, linux-kernel@vger.kernel.org Subject: [RFC PATCH 14/18] mm/damon/core: pass per-region filter-passed bytes to damos_walk_control->walk_fn() Date: Wed, 18 Dec 2024 20:03:23 -0800 Message-Id: <20241219040327.61902-15-sj@kernel.org> X-Mailer: git-send-email 2.39.5 In-Reply-To: <20241219040327.61902-1-sj@kernel.org> References: <20241219040327.61902-1-sj@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Total size of memory that passed DAMON operations set layer-handled DAMOS filters per scheme is provided to DAMON core API and ABI (sysfs interface) users. It is useful, but that for each region can be more fine-grained information. Provide it to users of DAMON core API, specifically damos_walk() users, by passing the data to damos_walk_control->walk_fn(). Signed-off-by: SeongJae Park --- include/linux/damon.h | 2 +- mm/damon/core.c | 7 ++++--- mm/damon/sysfs.c | 2 +- 3 files changed, 6 insertions(+), 5 deletions(-) diff --git a/include/linux/damon.h b/include/linux/damon.h index 4a68bb38aad5..b88f710297a9 100644 --- a/include/linux/damon.h +++ b/include/linux/damon.h @@ -393,7 +393,7 @@ struct damos; struct damos_walk_control { void (*walk_fn)(void *data, struct damon_ctx *ctx, struct damon_target *t, struct damon_region *r, - struct damos *s); + struct damos *s, unsigned long sz_filter_passed); void *data; /* private: internal use only */ /* informs if the kdamond finished handling of the walk request */ diff --git a/mm/damon/core.c b/mm/damon/core.c index f7736df4f6c8..f566cdcbb434 100644 --- a/mm/damon/core.c +++ b/mm/damon/core.c @@ -1437,7 +1437,8 @@ static bool damos_filter_out(struct damon_ctx *ctx, s= truct damon_target *t, * installed by damos_walk() and not yet uninstalled, invoke it. */ static void damos_walk_call_walk(struct damon_ctx *ctx, struct damon_targe= t *t, - struct damon_region *r, struct damos *s) + struct damon_region *r, struct damos *s, + unsigned long sz_filter_passed) { struct damos_walk_control *control; =20 @@ -1446,7 +1447,7 @@ static void damos_walk_call_walk(struct damon_ctx *ct= x, struct damon_target *t, mutex_unlock(&ctx->walk_control_lock); if (!control) return; - control->walk_fn(control->data, ctx, t, r, s); + control->walk_fn(control->data, ctx, t, r, s, sz_filter_passed); } =20 /* @@ -1566,7 +1567,7 @@ static void damos_apply_scheme(struct damon_ctx *c, s= truct damon_target *t, sz_applied =3D c->ops.apply_scheme(c, t, r, s, &sz_ops_filter_passed); } - damos_walk_call_walk(c, t, r, s); + damos_walk_call_walk(c, t, r, s, sz_ops_filter_passed); ktime_get_coarse_ts64(&end); quota->total_charged_ns +=3D timespec64_to_ns(&end) - timespec64_to_ns(&begin); diff --git a/mm/damon/sysfs.c b/mm/damon/sysfs.c index cf8fb5a963d6..224873ca8aa6 100644 --- a/mm/damon/sysfs.c +++ b/mm/damon/sysfs.c @@ -1454,7 +1454,7 @@ struct damon_sysfs_schemes_walk_data { /* populate the region directory */ static void damon_sysfs_schemes_tried_regions_upd_one(void *data, struct d= amon_ctx *ctx, struct damon_target *t, struct damon_region *r, - struct damos *s) + struct damos *s, unsigned long sz_filter_passed) { struct damon_sysfs_schemes_walk_data *walk_data =3D data; struct damon_sysfs_kdamond *sysfs_kdamond =3D walk_data->sysfs_kdamond; --=20 2.39.5 From nobody Thu Dec 18 20:16:05 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 9775D1AA791; Thu, 19 Dec 2024 04:03:56 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1734581036; cv=none; b=C8seL6wQyX/o6y1wly/CCf6QRTtYtY2N2pRUixTC1firXPn7CX81jQNXV3nJenHHDX+reKHm+tyZEY6WUJHyXlVFm6qdRtHe63HNDHO2XwOUqbMzABXwLW4j9ASd7lyvwyPs/u1dyIPamOo1NVGkJfVSjzfEy8zDgq1RavrVS+s= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1734581036; c=relaxed/simple; bh=xGeZNDXz9ovPiTqa907jHI/cUugPY9TuP39+tm2J3DI=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=JNkgR8X+h/yM/moGOhg1dJ9y1RlK/cYmwwABsQ7x54ydnkOvC2gsMk2CdvOkgj3mDw5fMdAqzTFM5an9s8g9qSqU2JR7dzAp7IkUBlQndKzQDROypD5ubrrLjekTNAxAEIyMG5JTQSDHK4hrDnvAM1JnIXuY+nZDCWp3psAUT1M= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=YaWwkoMs; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="YaWwkoMs" Received: by smtp.kernel.org (Postfix) with ESMTPSA id E18E7C4CED4; Thu, 19 Dec 2024 04:03:55 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1734581036; bh=xGeZNDXz9ovPiTqa907jHI/cUugPY9TuP39+tm2J3DI=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=YaWwkoMsUq3M/9y90r30+fdbMg5W+Jtn+IphmKPouGNrvQno6svhKYfNY3O1U7Ziq mNLcPEeBaJaRmMhQ7P0n3pYFyDzFAB73gPOufPWOX9UDzeyWcKaICVL7iUmEWSATe7 u4uhvb0Xa28UgL/G5fN94kmI5VZiaUP5dwaljPbJA2IDw9maXLrBc9vYve1lraJTFe hXVB4X8EYz3EhThDwTJKR+DnvOfYdl9IRscCLTVQTEJp4AXzQ5bfEuYAZhu7TNbotZ BXfCCDArHgTD+uNgbG4FaASYkOCjh5j3mXe0ia+BNc8RxmM4OHlZ4jaEgLN5l2S3S0 G9yqOBRNkt8Vw== From: SeongJae Park To: Cc: kernel-team@meta.com, SeongJae Park , damon@lists.linux.dev, linux-mm@kvack.org, linux-kernel@vger.kernel.org Subject: [RFC PATCH 15/18] mm/damon/sysfs-schemes: expose per-region filter-passed bytes Date: Wed, 18 Dec 2024 20:03:24 -0800 Message-Id: <20241219040327.61902-16-sj@kernel.org> X-Mailer: git-send-email 2.39.5 In-Reply-To: <20241219040327.61902-1-sj@kernel.org> References: <20241219040327.61902-1-sj@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Per-region operations set-handled DAMOS filters passed memory size information is provided to only DAMON core API users. Further expose it to the user space by adding a new DAMON sysfs interface file under each scheme tried region directory. Signed-off-by: SeongJae Park --- mm/damon/sysfs-common.h | 2 +- mm/damon/sysfs-schemes.c | 18 +++++++++++++++++- mm/damon/sysfs.c | 3 ++- 3 files changed, 20 insertions(+), 3 deletions(-) diff --git a/mm/damon/sysfs-common.h b/mm/damon/sysfs-common.h index b3f63bc658b7..70d84bdc9f5f 100644 --- a/mm/damon/sysfs-common.h +++ b/mm/damon/sysfs-common.h @@ -48,7 +48,7 @@ void damon_sysfs_schemes_update_stats( void damos_sysfs_populate_region_dir(struct damon_sysfs_schemes *sysfs_sch= emes, struct damon_ctx *ctx, struct damon_target *t, struct damon_region *r, struct damos *s, - bool total_bytes_only); + bool total_bytes_only, unsigned long sz_filter_passed); =20 int damon_sysfs_schemes_clear_regions( struct damon_sysfs_schemes *sysfs_schemes); diff --git a/mm/damon/sysfs-schemes.c b/mm/damon/sysfs-schemes.c index b447c412b02c..1da0594dde55 100644 --- a/mm/damon/sysfs-schemes.c +++ b/mm/damon/sysfs-schemes.c @@ -19,6 +19,7 @@ struct damon_sysfs_scheme_region { struct damon_addr_range ar; unsigned int nr_accesses; unsigned int age; + unsigned long sz_filter_passed; struct list_head list; }; =20 @@ -74,6 +75,15 @@ static ssize_t age_show(struct kobject *kobj, struct kob= j_attribute *attr, return sysfs_emit(buf, "%u\n", region->age); } =20 +static ssize_t sz_filter_passed_show(struct kobject *kobj, + struct kobj_attribute *attr, char *buf) +{ + struct damon_sysfs_scheme_region *region =3D container_of(kobj, + struct damon_sysfs_scheme_region, kobj); + + return sysfs_emit(buf, "%lu\n", region->sz_filter_passed); +} + static void damon_sysfs_scheme_region_release(struct kobject *kobj) { struct damon_sysfs_scheme_region *region =3D container_of(kobj, @@ -95,11 +105,15 @@ static struct kobj_attribute damon_sysfs_scheme_region= _nr_accesses_attr =3D static struct kobj_attribute damon_sysfs_scheme_region_age_attr =3D __ATTR_RO_MODE(age, 0400); =20 +static struct kobj_attribute damon_sysfs_scheme_region_sz_filter_passed_at= tr =3D + __ATTR_RO_MODE(sz_filter_passed, 0400); + static struct attribute *damon_sysfs_scheme_region_attrs[] =3D { &damon_sysfs_scheme_region_start_attr.attr, &damon_sysfs_scheme_region_end_attr.attr, &damon_sysfs_scheme_region_nr_accesses_attr.attr, &damon_sysfs_scheme_region_age_attr.attr, + &damon_sysfs_scheme_region_sz_filter_passed_attr.attr, NULL, }; ATTRIBUTE_GROUPS(damon_sysfs_scheme_region); @@ -2110,7 +2124,8 @@ void damon_sysfs_schemes_update_stats( */ void damos_sysfs_populate_region_dir(struct damon_sysfs_schemes *sysfs_sch= emes, struct damon_ctx *ctx, struct damon_target *t, - struct damon_region *r, struct damos *s, bool total_bytes_only) + struct damon_region *r, struct damos *s, bool total_bytes_only, + unsigned long sz_filter_passed) { struct damos *scheme; struct damon_sysfs_scheme_regions *sysfs_regions; @@ -2135,6 +2150,7 @@ void damos_sysfs_populate_region_dir(struct damon_sys= fs_schemes *sysfs_schemes, region =3D damon_sysfs_scheme_region_alloc(r); if (!region) return; + region->sz_filter_passed =3D sz_filter_passed; list_add_tail(®ion->list, &sysfs_regions->regions_list); sysfs_regions->nr_regions++; if (kobject_init_and_add(®ion->kobj, diff --git a/mm/damon/sysfs.c b/mm/damon/sysfs.c index 224873ca8aa6..deeab04d3b46 100644 --- a/mm/damon/sysfs.c +++ b/mm/damon/sysfs.c @@ -1461,7 +1461,8 @@ static void damon_sysfs_schemes_tried_regions_upd_one= (void *data, struct damon_c =20 damos_sysfs_populate_region_dir( sysfs_kdamond->contexts->contexts_arr[0]->schemes, - ctx, t, r, s, walk_data->total_bytes_only); + ctx, t, r, s, walk_data->total_bytes_only, + sz_filter_passed); } =20 static int damon_sysfs_update_schemes_tried_regions( --=20 2.39.5 From nobody Thu Dec 18 20:16:05 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 661B01AAA0A; Thu, 19 Dec 2024 04:03:57 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1734581037; cv=none; b=gglK9kq3eGNpqdrmruhxp8tTu03SR5k5CFAQ8KE5+TYtp/HJX3tOSOrB/ZKRjDlmgpYwtE0UwPgDEbZMOeFKo+ld1qZxIXV25Y2jAA5dwTKlRTxs1bOBMnpwBP7xDBTqqaSfnJlPYJ8jgtuiRpINKJjOeVqJpPrRUvAzbSHMTxg= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1734581037; c=relaxed/simple; bh=SFVsdgaR2hHAdxlVsqMnuhaABmN7P75BtajXxh6t/oU=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=jOg6sSIC3aYVgnnt1MXvqBMMjIHvDzfFVRBh2uAv9qEMXUVJDH48YmUBWrZ/zWSiF0Cmqoxv3OucAo7qiaayoZDhhXXJhGZyQBWK5j0bAsJfehop7BiWmFogm3qeunoIvQG/XOR7exfuUOUs/TCtn5iMGDuDYHSsZN3miZfTmxQ= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=qMRVKSH4; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="qMRVKSH4" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 1A404C4CED6; Thu, 19 Dec 2024 04:03:57 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1734581037; bh=SFVsdgaR2hHAdxlVsqMnuhaABmN7P75BtajXxh6t/oU=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=qMRVKSH40MOgCu29r5fBQZ0M8XOPYWcUwyzFJ7+iG2omCmV8DLvli9q84rxzlC/Jz fXJMUhBZ2uTeoeGb3DOG7JXXCiVX/0hC5GWT0OkekJ2d63I09IT6W4nkUCfUpa3a6u gzrmS0l7JxokrKW/+YyUNupEl1ypEqC+FAvC48o/AID0SQk6hm7CyMzBpgIaZ9IRrh xyVHol5hXqrio9JK6iT6rYVftCGCoTZJInzGgx5g8X0lIA8kSftPqPrc/UawfiL+S1 gaI3oGQitPLAq+gLyK5tJqSQphArUn5q9LvP+/7cpwyq1kZHVh2Np0WYBYGkmtt0Bs +4ALmwVqgmLag== From: SeongJae Park To: Cc: kernel-team@meta.com, SeongJae Park , damon@lists.linux.dev, linux-mm@kvack.org, linux-doc@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [RFC PATCH 16/18] Docs/mm/damon/design: document per-region sz_filter_passed stat Date: Wed, 18 Dec 2024 20:03:25 -0800 Message-Id: <20241219040327.61902-17-sj@kernel.org> X-Mailer: git-send-email 2.39.5 In-Reply-To: <20241219040327.61902-1-sj@kernel.org> References: <20241219040327.61902-1-sj@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Update 'Regions Walking' sectioin of design document for the newly added per-region operations set handling DAMOS filters-passed bytes. Signed-off-by: SeongJae Park --- Documentation/mm/damon/design.rst | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/Documentation/mm/damon/design.rst b/Documentation/mm/damon/des= ign.rst index 0620675a1e8d..ed3072dc8686 100644 --- a/Documentation/mm/damon/design.rst +++ b/Documentation/mm/damon/design.rst @@ -586,7 +586,8 @@ Regions Walking =20 DAMOS feature allowing users access each region that a DAMOS action has ju= st applied. Using this feature, DAMON :ref:`API ` allows u= sers -access full properties of the regions including the access monitoring resu= lts. +access full properties of the regions including the access monitoring resu= lts +and amount of the region's internal memory that passed the DAMOS filters. :ref:`DAMON sysfs interface ` also allows users read the = data via special :ref:`files `. =20 --=20 2.39.5 From nobody Thu Dec 18 20:16:05 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id D7C581AAE0D; Thu, 19 Dec 2024 04:03:58 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1734581038; cv=none; b=qbkfjLmyzuiOi/vBcNK7GYOaHpCKHt9xnPkoGVLeLf8ep9FUda/HDJiTczsla7DyJG6HcWqFhMmurDTSOu9kjzLWJqjwPxpJtS/FiU3qGuxJjvh0l+ScUC9+JcNcBEvia3TZcPP0VQAyf8h22cAmESEEQo+XE7/EBZ2rNA1V5yQ= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1734581038; c=relaxed/simple; bh=h5r/y4q9OO288YZFlZV7V3CQiTTX7mBJ1xQ9QZ3zXD0=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version:Content-Type; b=C4Fv5G5RZXCwAZvfKya+yWt9gjKQIfwvnwbyrHR5zzdIvOSv9YFN6MHHt38Lkzxt8W4KPMtVmc15jNzo22a70jamz4ybgOOpn9kfycRIpra9Sa9AQi0enIqmnx13IGF/q94nX84QDJm9BJTv0HxS6Q4OQTnuWUjMdKixsXg/w5A= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=tEFCee2b; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="tEFCee2b" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 39983C4CED6; Thu, 19 Dec 2024 04:03:58 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1734581038; bh=h5r/y4q9OO288YZFlZV7V3CQiTTX7mBJ1xQ9QZ3zXD0=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=tEFCee2bmSQtQ9UaGk1XPKYTROA/k1oiKvsqBrXetaeL9jreOXIZlDthVtyNK0w6c QTITd37deEBoPOY8rnjNAMMzSBeAWlyBG4HYLyL1SkvRmk3NXHGDoYnQpwH0Wcso03 NR7zGEGK8Ki1cWIuqOilbajHjbrnuc0ToyKh0aX8S+AkqiiErZDO+cYHxYzkNXohkO TMpZXT+pUp1u4Y33yM44o6NPzGnmjB/MsOql//UzofnTPvF0qz3C6Izsidxq2ukucH vbRvVhcePmcwnQnFSbQsQUCyszB1kiMpBlfQPBiri4PbsCDalpVjkjfDyswWc4Fo1L iHSkkL0K7yX3w== From: SeongJae Park To: Cc: kernel-team@meta.com, SeongJae Park , damon@lists.linux.dev, linux-mm@kvack.org, linux-doc@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [RFC PATCH 17/18] Docs/admin-guide/mm/damon/usage: document sz_filtered_out of scheme tried region directories Date: Wed, 18 Dec 2024 20:03:26 -0800 Message-Id: <20241219040327.61902-18-sj@kernel.org> X-Mailer: git-send-email 2.39.5 In-Reply-To: <20241219040327.61902-1-sj@kernel.org> References: <20241219040327.61902-1-sj@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Document the newly added DAMON sysfs interface file for per-scheme-tried region's bytes that passed the operations set handling DAMOS filters. Signed-off-by: SeongJae Park --- Documentation/admin-guide/mm/damon/usage.rst | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/Documentation/admin-guide/mm/damon/usage.rst b/Documentation/a= dmin-guide/mm/damon/usage.rst index 179a9060a32e..a891e830c2a1 100644 --- a/Documentation/admin-guide/mm/damon/usage.rst +++ b/Documentation/admin-guide/mm/damon/usage.rst @@ -92,7 +92,7 @@ comma (","). =E2=94=82 =E2=94=82 =E2=94=82 =E2=94=82 =E2=94=82 =E2=94=82 =E2=94=82 = =E2=94=82 0/type,matching,memcg_id =E2=94=82 =E2=94=82 =E2=94=82 =E2=94=82 =E2=94=82 =E2=94=82 =E2=94=82 = :ref:`stats `/nr_tried,sz_tried,nr_applied,sz_applied,= sz_ops_filter_passed,qt_exceeds =E2=94=82 =E2=94=82 =E2=94=82 =E2=94=82 =E2=94=82 =E2=94=82 =E2=94=82 = :ref:`tried_regions `/total_bytes - =E2=94=82 =E2=94=82 =E2=94=82 =E2=94=82 =E2=94=82 =E2=94=82 =E2=94=82 = =E2=94=82 0/start,end,nr_accesses,age + =E2=94=82 =E2=94=82 =E2=94=82 =E2=94=82 =E2=94=82 =E2=94=82 =E2=94=82 = =E2=94=82 0/start,end,nr_accesses,age,sz_filter_passed =E2=94=82 =E2=94=82 =E2=94=82 =E2=94=82 =E2=94=82 =E2=94=82 =E2=94=82 = =E2=94=82 ... =E2=94=82 =E2=94=82 =E2=94=82 =E2=94=82 =E2=94=82 =E2=94=82 ... =E2=94=82 =E2=94=82 =E2=94=82 =E2=94=82 ... @@ -500,10 +500,10 @@ set the ``access pattern`` as their interested patter= n that they want to query. tried_regions// ------------------ =20 -In each region directory, you will find four files (``start``, ``end``, -``nr_accesses``, and ``age``). Reading the files will show the start and = end -addresses, ``nr_accesses``, and ``age`` of the region that corresponding -DAMON-based operation scheme ``action`` has tried to be applied. +In each region directory, you will find five files (``start``, ``end``, +``nr_accesses``, ``age``, and ``sz_filter_passed``). Reading the files wi= ll +show the properties of the region that corresponding DAMON-based operation +scheme ``action`` has tried to be applied. =20 Example ~~~~~~~ --=20 2.39.5 From nobody Thu Dec 18 20:16:05 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 139771AF0A0; Thu, 19 Dec 2024 04:03:59 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1734581041; cv=none; b=Pr8fjWsVWvIos7y1lwE88P96RDZioEHxEQ7RtVP35c8G+DSt+Ld8Mw89/kTIF3obZdCVSmKx2iHZYiwnhVC7CxqaJbtOZ8IU1FoHhwNGVqk2ggW3UWycmAmdd+0nMWFZZzUtjAQjG+T+0Jroai3O4B2PFahZveZE1+2bOo6NqRk= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1734581041; c=relaxed/simple; bh=3O+7JbZj6xxSI8uZRXk/Ms1BG1Ir2OifGM6jxU273yY=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=gRgrCzIwr4aLpjAls3vPgPBUdUtkp+6xwWbtz8PgBncr0j5B1oy5m63PnUiefvvaq8BdQAZ0Fpti1/lxcAjs/Mm+MEUz/S8kbTvbwuUPhP7mvKYfpMU4hrDCsd4rF/43g4yfyprefjVW3qgAvL0Z+GI2F5RH9bYmgRemk6TiAO4= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=oyHjZIYK; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="oyHjZIYK" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 60E52C4CED6; Thu, 19 Dec 2024 04:03:59 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1734581039; bh=3O+7JbZj6xxSI8uZRXk/Ms1BG1Ir2OifGM6jxU273yY=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=oyHjZIYKBbVSgEhHGsO/L49GzSrPmCAgLz3fFw3/HiFralNETAuZ/xTMhWDGJXTop QBBl9+e7s1mwviBijmuPa9POKEy+exmlGwdq0d5k06jwod7XgV5Ow8/9wORT96nt+d +uK75NV2pS0UsBJY4qLo1AcdejSh1io5Ii6XO8xRoaX/NCa0nvdkVdQ1wckbVsHAyl 49KZ+XdOZVsWih75jtrhbzfIkLTMkfttpVQ8D0NLP/d6ggynxGTd7owaTR9zwO7h6U 8x8ZYgu2vu84k41iryaUEfawSQ2BjIbTbTVf/bAnlEfHhk/TNhX9gCWCq5XBPoF6ZX 7lF4h6r8PjWbw== From: SeongJae Park To: Cc: kernel-team@meta.com, SeongJae Park , damon@lists.linux.dev, linux-mm@kvack.org, linux-kernel@vger.kernel.org Subject: [RFC PATCH 18/18] Docs/ABI/damon: document per-region DAMOS filter-passed bytes stat file Date: Wed, 18 Dec 2024 20:03:27 -0800 Message-Id: <20241219040327.61902-19-sj@kernel.org> X-Mailer: git-send-email 2.39.5 In-Reply-To: <20241219040327.61902-1-sj@kernel.org> References: <20241219040327.61902-1-sj@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Document the new ABI for per-region operations set layer-handled DAMOS filters passed bytes statistic. Signed-off-by: SeongJae Park --- Documentation/ABI/testing/sysfs-kernel-mm-damon | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/Documentation/ABI/testing/sysfs-kernel-mm-damon b/Documentatio= n/ABI/testing/sysfs-kernel-mm-damon index 19cde386fd15..8c0acb31638b 100644 --- a/Documentation/ABI/testing/sysfs-kernel-mm-damon +++ b/Documentation/ABI/testing/sysfs-kernel-mm-damon @@ -430,3 +430,10 @@ Contact: SeongJae Park Description: Reading this file returns the 'age' of a memory region that corresponding DAMON-based Operation Scheme's action has tried to be applied. + +What: /sys/kernel/mm/damon/admin/kdamonds//contexts//schemes//tr= ied_regions//sz_filter_passed +Date: Dec 2024 +Contact: SeongJae Park +Description: Reading this file returns the size of the memory in the region + that passed DAMON operations layer-handled filters of the + scheme in bytes. --=20 2.39.5