From nobody Sun Feb 8 13:08:47 2026 Received: from mail-dy1-f193.google.com (mail-dy1-f193.google.com [74.125.82.193]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 71055367F4A for ; Thu, 29 Jan 2026 21:58:24 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=74.125.82.193 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1769723906; cv=none; b=HDVOo+yWFqc+5uPplQHToAuHgkHreQ6OURGBeeROiaD59vP4CzZO4XHc6dLtL5XxTfsBdenQY6ibcz4honM/zaWsJhweaJLUqNDmOJbeiO1/xtqK+VVf3G0rH+0OW1ko9kf/CPbx5oroQSxY/Y97/axpPeq0fdRL9eZA7AVH9wY= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1769723906; c=relaxed/simple; bh=MmVKleijncFNV3VTWlVTPh9Yt+NHsjAHFsJeZAvuy5g=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=jplPoMIO4DrGS7AZQ2JnC+MWIlKMzCk3cHwF8ZBXKMK7cuwONXj4rl+LWaJ1vXW7mWseRn1ZUQyMM8d60XlXMqzhMQk5ThWExSw/97DcjbKkjAbQZAYPB9l1Bd3+mjRDAgTAt3HFb3373PiJSrHsFb+kl82x5Efn6rMLE2qRRB0= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=S1EyKUdm; arc=none smtp.client-ip=74.125.82.193 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="S1EyKUdm" Received: by mail-dy1-f193.google.com with SMTP id 5a478bee46e88-2b720bb90d0so1565116eec.0 for ; Thu, 29 Jan 2026 13:58:24 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1769723904; x=1770328704; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=nmNgqwiRPaM50yoR4bSwou2vHJzKZmxQW0OFYL7FLjQ=; b=S1EyKUdmk+gJvCtyvML8FSLY+7zEcHBFLJ4KyUjUU0wz/PmIL2ju5Mo0Lz6NG5eTk1 GHQEPGFaSTNmH/xUq/ybEU0AQMtrLGPLdG9698i8XDPB1+3YCDqf7z+//oU0FQvrhElH RZwMV5+kNQTA1HuqRWIhpcoMF/ooMDQ+FdG534GDzO1WWFnKywBB0FRbfnrM8AqhVqIv AtVCOmkYG+nNacYAifD7yQYJ7VnpfaT/+x+HuwEukfBQrEDBW3PjusYF4zultxDBWtTd CRnfE80oUyEOi9sFmsw0kRj8+0RPX0HtG18sYXuAnGYnQn3vX+hR8jX44e8Csuxvzv9i uQhA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1769723904; x=1770328704; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=nmNgqwiRPaM50yoR4bSwou2vHJzKZmxQW0OFYL7FLjQ=; b=Kos2+7sstEJdAw5jjT+0uHr8t4NofEzmDmbSp09zjTFqp4Nt2XP7L5+pBqjNTAnAUr JzLguBHZDBN1or1vtgbJ7GZrGFzz7FBZhMwmHKR2BpjVoWh5yd7FtcIRBXI9uqJn4Zib PSWTIP8kLen4NhQb5VztT0w0f2FHoAmZQSZxDiVEOMlS7fSXajdz/zh0DFejDHJpMh8S AOPjPzi9OkES+XHGm3Orx3dC169adLkMaPfhaMPMkUg0t+6ZYl16NroV353x9rag89Hk JIa3/0OiBhynGPYMYVlEH+qsyJXIHyFkasj+s6zZVe2PsVVPqs6zuY26iPeEORZEIIG2 /hEQ== X-Forwarded-Encrypted: i=1; AJvYcCVj+REskL8MJzRnyjcBooNZCVUPOtzQ3kH6DeZqoyfQ2VFchn+UXw5ykdmECCHpnZ/tEgi1rxJ7hIidZYs=@vger.kernel.org X-Gm-Message-State: AOJu0YwbBSpg6qc/hGNOEJlFmziZwAQptWcp+uL3WIev6QFWTmZdK9bB 047wXYGGWbVHHbyfKempGHJYT0qR+NblzQgrBM3al5bF56l0B6xWQy4= X-Gm-Gg: AZuq6aJTFbPA7dIuRW3TorUtij6Moi3kujbUtZ1DTukTeAhU6b0enktv+t+JKYc/3di U/+gjUN/Ui79BkrwSA0QqfZdsgxv/HTue47QO+bHozyH+ueEJo1QMoZCx5CFm4521m5hwbFHky8 YCvr7P9ydPBIc0RiEnkvebo8DPiWYngVw8fL6rScR3YPvqWNirdUH0op1x3sdT+nnhHUI+5Y25W jP4TAUqcdNl8Qv44WzDxPoa1lR9KdF+E4twc64ZZ35Cc9bMpm5AXa2zGpb02Ahws5i00gRDHf7E jSeMus3k8P50hjMG79e4rWCAFScQ/0zocfE/DUnc5wmNf0N4Lw1OB4WQjgcX0nm4ZUIV4Si6nKw j+ghkfTQIKMe9HwXAo6tlnYx8HaHSj7lz1swRTYllUSz32YwD+AFAyiNfWS03eoFLcnLwBgV6CP bgrDYIzg9F+w== X-Received: by 2002:a05:7300:a984:b0:2ac:21b5:f43c with SMTP id 5a478bee46e88-2b7c86db7e2mr415692eec.20.1769723903529; Thu, 29 Jan 2026 13:58:23 -0800 (PST) Received: from localhost ([137.201.204.52]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-2b7a16cf8f2sm9659960eec.7.2026.01.29.13.58.23 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 29 Jan 2026 13:58:23 -0800 (PST) From: Ravi Jonnalagadda To: sj@kernel.org, damon@lists.linux.dev, linux-mm@kvack.org, linux-kernel@vger.kernel.org, linux-doc@vger.kernel.org Cc: akpm@linux-foundation.org, corbet@lwn.net, bijan311@gmail.com, ajayjoshi@micron.com, honggyu.kim@sk.com, yunjeong.mun@sk.com, Ravi Jonnalagadda Subject: [PATCH 3/3] mm/damon/sysfs-schemes: expose NODE_TARGET_MEM_BP metric Date: Thu, 29 Jan 2026 13:58:14 -0800 Message-ID: <20260129215814.1618-4-ravis.opensrc@gmail.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260129215814.1618-1-ravis.opensrc@gmail.com> References: <20260129215814.1618-1-ravis.opensrc@gmail.com> 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 sysfs support for the new NODE_TARGET_MEM_BP quota goal metric. This exposes the metric as 'node_target_mem_bp' under the quota goal's target_metric attribute. The metric measures the ratio of scheme-eligible memory (regions matching the scheme's access pattern) on a specified NUMA node to the node's total capacity, expressed in basis points (bp, 1/10000). Users can configure this metric by: 1. Setting target_metric to 'node_target_mem_bp' 2. Setting nid to the target NUMA node 3. Setting target_value to the desired ratio in basis points The current_value attribute shows the measured ratio, which can be used by userspace to compute the actual bytes of scheme-eligible memory on the node: bytes =3D current_value * node_capacity / 10000. This is particularly useful for tiered memory systems to monitor and control the distribution of hot pages across NUMA nodes. Suggested-by: SeongJae Park Signed-off-by: Ravi Jonnalagadda --- mm/damon/sysfs-schemes.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/mm/damon/sysfs-schemes.c b/mm/damon/sysfs-schemes.c index 3a699dcd5a7f..50133263c592 100644 --- a/mm/damon/sysfs-schemes.c +++ b/mm/damon/sysfs-schemes.c @@ -1038,6 +1038,10 @@ struct damos_sysfs_qgoal_metric_name damos_sysfs_qgo= al_metric_names[] =3D { .metric =3D DAMOS_QUOTA_NODE_MEMCG_FREE_BP, .name =3D "node_memcg_free_bp", }, + { + .metric =3D DAMOS_QUOTA_NODE_TARGET_MEM_BP, + .name =3D "node_target_mem_bp", + }, }; =20 static ssize_t target_metric_show(struct kobject *kobj, @@ -2554,6 +2558,7 @@ static int damos_sysfs_add_quota_score( break; case DAMOS_QUOTA_NODE_MEM_USED_BP: case DAMOS_QUOTA_NODE_MEM_FREE_BP: + case DAMOS_QUOTA_NODE_TARGET_MEM_BP: goal->nid =3D sysfs_goal->nid; break; case DAMOS_QUOTA_NODE_MEMCG_USED_BP: --=20 2.43.0