From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by smtp.lore.kernel.org (Postfix) with ESMTP id 532C9C7115B for ; Thu, 19 Jun 2025 22:00:56 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 7C54D6B008C; Thu, 19 Jun 2025 18:00:34 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 7732C6B0092; Thu, 19 Jun 2025 18:00:34 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 5D01D6B0093; Thu, 19 Jun 2025 18:00:34 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0014.hostedemail.com [216.40.44.14]) by kanga.kvack.org (Postfix) with ESMTP id 1AC4F6B0089 for ; Thu, 19 Jun 2025 18:00:34 -0400 (EDT) Received: from smtpin25.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay07.hostedemail.com (Postfix) with ESMTP id 6C742160C56 for ; Thu, 19 Jun 2025 22:00:33 +0000 (UTC) X-FDA: 83573519946.25.3136690 Received: from tor.source.kernel.org (tor.source.kernel.org [172.105.4.254]) by imf26.hostedemail.com (Postfix) with ESMTP id D4850140002 for ; Thu, 19 Jun 2025 22:00:31 +0000 (UTC) Authentication-Results: imf26.hostedemail.com; dkim=pass header.d=kernel.org header.s=k20201202 header.b=M3Wlabva; spf=pass (imf26.hostedemail.com: domain of sj@kernel.org designates 172.105.4.254 as permitted sender) smtp.mailfrom=sj@kernel.org; dmarc=pass (policy=quarantine) header.from=kernel.org ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1750370431; 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=6wvgu/lmd0+bv0tXzU2E+JxZMgslWZI55RGBPePgx7Y=; b=m1+PXk3TZw0+N7i7oS16Ms/uPZFJYR8rR+1v5A0kI+7ongZ38PHDx7lzoue2T4KiWgUW65 /1opNMqI0XdRj55O68Er59Y1HkBmBkSP1xHrzCe3iKfoZWl9AZD2+hyYOb+A3NJGHPl/Xz 72I/f+2CGOA7lHhADU3zOKmI51vu4Js= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1750370431; a=rsa-sha256; cv=none; b=B/SVtOEx6xMPr/apZ3J4qWzbe3ZXiDlIZE+XT+BIobjUQb8w2EU3sX2OxZtwjvlQYEYI4I OFWG0QBpSTVLxmdinwmAQktSsX3WKxXvdsFJVe8+uf3f2zkQkfcbDueM1LTnRzE1spHg40 9RibuDlvT/vwoSXrq+vESUKarW3klFk= ARC-Authentication-Results: i=1; imf26.hostedemail.com; dkim=pass header.d=kernel.org header.s=k20201202 header.b=M3Wlabva; spf=pass (imf26.hostedemail.com: domain of sj@kernel.org designates 172.105.4.254 as permitted sender) smtp.mailfrom=sj@kernel.org; dmarc=pass (policy=quarantine) header.from=kernel.org Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58]) by tor.source.kernel.org (Postfix) with ESMTP id 32AA960053; Thu, 19 Jun 2025 22:00:31 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id D34ADC4CEEE; Thu, 19 Jun 2025 22:00:30 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1750370431; bh=Sd7W7p0Z+HVtPzictunii3Ma4j0vmmcBWE6o+ftHaDg=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=M3Wlabva7fAPBjEGLuMNQ/vz15Fk+3x9EUkjlHBmWHgr2zK4gj09L5hNDPPFyQHvk J7g1SmiAaB4nMCr/cCXJBvsj8KiROywzeioOQzLjW0KaYApGD+IoJo07eVzbkaVp91 k1SzEEb9o22+akiOCGUNxXs8/SHQOk8PpD04btxTp1p1x8Og7QlhlVwK7FQOSZvaCD w+z+nVv5ggR2InyUb4GF6xf3VjLHdwWvPxNkegzogPLn3Pgyvh+u3/wEwIPDf6P8F2 qqS/yfzmNguoOOSuwBWr89lkgu5lsvI8PGy0CN04sHp8B9XD8Tx0Z81gpG1q/IjWD8 ApmV4xtHuCBqg== From: SeongJae Park To: Cc: SeongJae Park , Andrew Morton , damon@lists.linux.dev, kernel-team@meta.com, linux-kernel@vger.kernel.org, linux-mm@kvack.org Subject: [RFC PATCH 02/11] mm/damon: add a new DAMOS quota goal metric for cgroup on node memory usage Date: Thu, 19 Jun 2025 15:00:14 -0700 Message-Id: <20250619220023.24023-3-sj@kernel.org> X-Mailer: git-send-email 2.39.5 In-Reply-To: <20250619220023.24023-1-sj@kernel.org> References: <20250619220023.24023-1-sj@kernel.org> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Rspamd-Server: rspam12 X-Rspamd-Queue-Id: D4850140002 X-Stat-Signature: 1xh983rxbzbsht4r7awxj6soq5xrqscx X-Rspam-User: X-HE-Tag: 1750370431-619314 X-HE-Meta: U2FsdGVkX1+aiZcAM5udD3OuLHaMO7G4wEALY1RNbKOrdpoiukCHkpLycbgtFEjX2tOA3Ha5WunKGxXggjwfeQGXqWNzjgeU+trAxwPKyKHieMzCi5l9WLuQnZHWPeZ40I1QQ5hksHdLpVqeuHMJ8CE3FqJTBe6UeYhnMR6PICJp+Niu/EmivzVKNYgJ7hUs/RYllysDRnIQH68JfVXbd/jMbO1ilLcHnWY2g7fqC8GkArAEsdJASE/RsrAsVmJmgUgxZarxY3Swt5riHfhLe0RKJTu6VCtSC1BTRWsVGBpXH3L6ktHY4TS5iDHOofBUPECr6jzSH681mNvRnpQF1Ix0McD0jYE3ywfHQLBsnB8ZvkAe1nDSgDhZuZ38dgRqTg5IBWycVsR7xbWjRvZzA1z83QusqzwVxNVKD8vxldeBG6kkGgQsmVnVhn57YLqHc3uOhjC/Rdd/7QUongo8xM1nRnZBx6eLqUL/+SjsuAdlx4t10KCqT23kykMhUy7lBw+sdcgZuBm9XVlYM8T80AcDBCBXVfdU94Ch/UIG335wbsDoavm/2dw0PHZWXJgcv7Oknbkav9a8LzlquY+2McY5ZX+pG5hZbmrBjYcMHpEOwZrw1nQw1pwelJUNQetn7blv4w99cvCY7UtxxhLYZRzDPQwKaZwUc9ph+G/j2yQjk8J3A7KzwOywjZvFczjE3vwQeWS2+uby0OwgK4FLVqeeusHQQjaxy9D7LjIecLuoMN8dTJiy7nEMDozZwYdju+O4p/tmO7hT/S/LJ/qyivMlc1rIR6BeG2FndDNPRFUUBmNO4tVIlhtuVwUNGYeqhPqhrmm1Q/tvlZq6q3NY5OnuZbgL0JaztHxpRFYWTQz7HF5zKEuomVMaXbCNkcCyC1EgyFkn/QBei8AOcQiW0zxkiTxzfi3IFso16Ec4kPjTTHHJLem+58nf6LOSMU5GkBihRqPAGsaBhpxA0aC BOkjiIJJ OusoAS759EcHPMWyconu3Jf7SGsND7DhU54lMFevfuE6XvLMx99zeASDi08I0iqWYM05cRn4aKX50lsIo4jvB/mdLcyXHwT/3/hhDRnHfv9kAuLdPG/m/YqW8zpHs7YsLRaelgfXLXp+VNlbxLW2zP+tDi7Bau35Ifqo93h8dMP6E9yD8YenQH1k0rNBoMFGnvATgoQF79xQXjxmPAyHZVGa18IovfhUtZN69QGV4JEClfwQ= 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: Define a new DAMOS quota auto-tuning target metrics for per-cgroup per-node memory usage. Also extend damos_quota_goal struct to have a field for specifying the cgroup of the interest. Note that this commit is only for DAMON kernel API extension. Real behavior of the new metric will be implemented by a following commit. Signed-off-by: SeongJae Park --- include/linux/damon.h | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/include/linux/damon.h b/include/linux/damon.h index 39b835dd3c4d..43aef959d357 100644 --- a/include/linux/damon.h +++ b/include/linux/damon.h @@ -175,6 +175,7 @@ enum damos_action { * @DAMOS_QUOTA_SOME_MEM_PSI_US: System level some memory PSI in us. * @DAMOS_QUOTA_NODE_MEM_USED_BP: MemUsed ratio of a node. * @DAMOS_QUOTA_NODE_MEM_FREE_BP: MemFree ratio of a node. + * @DAMOS_QUOTA_NODE_MEMCG_USED_BP: MemUsed ratio of a node for a cgroup. * @DAMOS_QUOTA_ACTIVE_MEM_BP: Active to inactive memory ratio. * @NR_DAMOS_QUOTA_GOAL_METRICS: Number of DAMOS quota goal metrics. * @@ -185,6 +186,7 @@ enum damos_quota_goal_metric { DAMOS_QUOTA_SOME_MEM_PSI_US, DAMOS_QUOTA_NODE_MEM_USED_BP, DAMOS_QUOTA_NODE_MEM_FREE_BP, + DAMOS_QUOTA_NODE_MEMCG_USED_BP, DAMOS_QUOTA_ACTIVE_MEM_BP, NR_DAMOS_QUOTA_GOAL_METRICS, }; @@ -196,6 +198,7 @@ enum damos_quota_goal_metric { * @current_value: Current value of @metric. * @last_psi_total: Last measured total PSI * @nid: Node id. + * @memcg: Memcg id. * @list: List head for siblings. * * Data structure for getting the current score of the quota tuning goal. The @@ -209,6 +212,9 @@ enum damos_quota_goal_metric { * * If @metric is DAMOS_QUOTA_NODE_MEM_{USED,FREE}_BP, @nid represents the node * id of the target node to account the used/free memory. + * + * If @metric is DAMOS_QUOTA_NODE_MEMCG_USED_BP, @nid and @memcg_id represents + * the node id and the cgroup to account the used memory for. */ struct damos_quota_goal { enum damos_quota_goal_metric metric; @@ -217,7 +223,10 @@ struct damos_quota_goal { /* metric-dependent fields */ union { u64 last_psi_total; - int nid; + struct { + int nid; + unsigned short memcg_id; + }; }; struct list_head list; }; -- 2.39.5