From nobody Sun Apr 5 21:28:39 2026 Received: from mail-ot1-f46.google.com (mail-ot1-f46.google.com [209.85.210.46]) (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 351FA5695 for ; Mon, 23 Feb 2026 22:38:36 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.210.46 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1771886317; cv=none; b=u1bjJDs2rPJyNUj4zKSk6FxsbMJYa/HGozJf/fJra4Is/vWW0m5j6nGZarm/gNLqE2ammWTUQ9hKYevmABnfEkM3PpVD2UsLMQcsQ+SOt4u/94q+bdlxah8RCAkStAVTZn1VIpr5zOFC+8GZ9ZpKkXYzkK/2ZG6uB3VJjaDvRAw= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1771886317; c=relaxed/simple; bh=LipM9TIj6qPt1S91E3BBciJ1PqNYlJlWE8dPs7ej+Zg=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=h3kNrElP/t6gbg63VPOkDN1LnXDkPP9kXKJ1UwsafhJi+XFM0+15QXCF/tT/hONz/X7uY5pX8O/Ji802cP4tvC7F0C9O0gIWl8eXbzT/q4m6McvO0UFS1hzTuzJTTQmnAYYowfBTAusIpcCGTBya8ANoGtivsqoyMiQakafwu9w= 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=XYT9oYHm; arc=none smtp.client-ip=209.85.210.46 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="XYT9oYHm" Received: by mail-ot1-f46.google.com with SMTP id 46e09a7af769-7d4b9c839b1so1952297a34.1 for ; Mon, 23 Feb 2026 14:38:36 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1771886315; x=1772491115; 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=DuinEuuv0LU2GEZWG09nmp0WL8L3OVm8EbjH7cRnI5M=; b=XYT9oYHmMg2qNfvztqp2U5w1JBBd6gPc4HNAtUKZqqdzJMClQBwDxRmBZLp1kjsiiC UEgG1gx+mPslmvmTgtesAN9jCtpmTd2BeJ9HeQuVqJsHt4qLHmFSRbVo2b6UJIk1bxVs sqGafZHtvZEhW/B+ESXLZMFq+hFojaZ0REGv+jHtZmVKqQKw4TmeAsmUa00PDAwGno62 XF9Nmn8pmpNmzNVd/OqVSHnkDv8tHvT5ZIbS4XjNnBsAtDcia1sZbu8n4zC8GDvD/Sv8 jMaO+nGZV2c8+egWi9vY/GvM7yn1LxNMy8EsKlkQkyV2v+B9Qg6Ek9IGhKZeUi09cl4e MSdA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1771886315; x=1772491115; 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=DuinEuuv0LU2GEZWG09nmp0WL8L3OVm8EbjH7cRnI5M=; b=mSy0rLanZPEzgbSxoEOXcTGcybStwDMToDxCGnsis0yyLIySi69vtuYkfVlBfHbSyl Zc85fOMl4KSXkOCaCTGbvqIUGJ41WRYwTSYVFwxlmcG2bxNVzFSrFUY8hAUoJ68NihNy zm152ziYtO9OLfE1ZEs7sdtOCa352J9E5HF3SQBSE5Cccfia81Tu9REENUC6UGiJggBG MDv65iJBKMf1Tr5JdvQGZ9qLVdq1XlXF6fPfvclQfUX2QQ8VIxWkcEDkMUt1ZIDObdcv HAAZqlSFBVe84oPeSgEcIYq1Bir1w4OUt2Vc+4XDQry4LvzmCMQk5foemLH5DDf3xEVd 6QvA== X-Forwarded-Encrypted: i=1; AJvYcCUdN3aY0aD4qbO5Xor2FVP8QDBe9o1BYWBQZU9DIyMpr4DaG/s5QspBTmPPgP4zw6ItWf2MKalGCHwYht8=@vger.kernel.org X-Gm-Message-State: AOJu0YzEWik9QLvNRr4SQFn3q3rdb5MGYm4JjjE5hiJ8ypEwXJ6At5tM d2MhkH9WLvrzzUJ3TfXASKCNqQIxV8RaB7I1rE/7OVGL/hAiLxxy/s173TknMA== X-Gm-Gg: AZuq6aIiEF08Xmb1w5QA2q/AtKDNO1Yl8jZieiwwQxikorMi0/g91VXVsEx8Wa+RyGa ai+V/o/zseCNB0xClp4Ex2Q/mnQOukeCJb6v5GHE/zyVqo/PXoeaonuDw+sGObtVpCEA/34dy/g 3dSueKvQv881Cr5W/N0OdCdUgs84QwQB0F8dAK43PxmeFCqcU1JwLt+Cb8TUB1VlewDceQ6huN7 B6M02DmpV8bTRJa6yHWex9ulAp0noidCX0g+jIEdcIHeaidIkqHlNKwJdoZ2mn5t14UeNDGXpDe YsfXwZ71PXJDVkTvahpODk267RvUFCYbwxIjPACkHNqbNOCwR+lQob02DiOjTUwxSfpwCUP+9uG n+zC3D/IWdai3nAxdHvsdtrPN7OjRCCy9diArRTY/UUCSl2gk5+l0akszl1wZDjHFpSe9AEfgYk x7q4a7oPnb/EIr35e0deTSjJOePgkqjJ+d X-Received: by 2002:a05:6830:660b:b0:7cf:da7d:608d with SMTP id 46e09a7af769-7d52c21500amr5531693a34.8.1771886315198; Mon, 23 Feb 2026 14:38:35 -0800 (PST) Received: from localhost ([2a03:2880:10ff:4d::]) by smtp.gmail.com with ESMTPSA id 46e09a7af769-7d52cf9f42dsm8185949a34.9.2026.02.23.14.38.34 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 23 Feb 2026 14:38:34 -0800 (PST) From: Joshua Hahn To: Joshua Hahn Cc: Andrew Morton , David Hildenbrand , Lorenzo Stoakes , "Liam R . Howlett" , Vlastimil Babka , Mike Rapoport , Suren Baghdasaryan , Michal Hocko , linux-mm@kvack.org, linux-kernel@vger.kernel.org, kernel-team@meta.com Subject: [RFC PATCH 1/6] mm/memory-tiers: Introduce tier-aware memcg limit sysfs Date: Mon, 23 Feb 2026 14:38:24 -0800 Message-ID: <20260223223830.586018-2-joshua.hahnjy@gmail.com> X-Mailer: git-send-email 2.47.3 In-Reply-To: <20260223223830.586018-1-joshua.hahnjy@gmail.com> References: <20260223223830.586018-1-joshua.hahnjy@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" Introduce a sysfs entry /sys/kernel/mm/numa/tier_aware_memcg to allow users to toggle between memcg limits that are proportional to the system's toptier:total capacity ratio. Signed-off-by: Joshua Hahn --- include/linux/memory-tiers.h | 1 + mm/memory-tiers.c | 22 ++++++++++++++++++++++ 2 files changed, 23 insertions(+) diff --git a/include/linux/memory-tiers.h b/include/linux/memory-tiers.h index 96987d9d95a8..85440473effb 100644 --- a/include/linux/memory-tiers.h +++ b/include/linux/memory-tiers.h @@ -37,6 +37,7 @@ struct access_coordinate; =20 #ifdef CONFIG_NUMA extern bool numa_demotion_enabled; +extern bool tier_aware_memcg_limits; extern struct memory_dev_type *default_dram_type; extern nodemask_t default_dram_nodes; struct memory_dev_type *alloc_memory_type(int adistance); diff --git a/mm/memory-tiers.c b/mm/memory-tiers.c index 545e34626df7..a88256381519 100644 --- a/mm/memory-tiers.c +++ b/mm/memory-tiers.c @@ -939,6 +939,8 @@ subsys_initcall(memory_tier_init); =20 bool numa_demotion_enabled =3D false; =20 +bool tier_aware_memcg_limits; + #ifdef CONFIG_MIGRATION #ifdef CONFIG_SYSFS static ssize_t demotion_enabled_show(struct kobject *kobj, @@ -975,8 +977,28 @@ static ssize_t demotion_enabled_store(struct kobject *= kobj, static struct kobj_attribute numa_demotion_enabled_attr =3D __ATTR_RW(demotion_enabled); =20 +static ssize_t tier_aware_memcg_show(struct kobject *kobj, + struct kobj_attribute *attr, char *buf) +{ + return sysfs_emit(buf, "%s\n", str_true_false(tier_aware_memcg_limits)); +} + +static ssize_t tier_aware_memcg_store(struct kobject *kobj, + struct kobj_attribute *attr, + const char *buf, size_t count) +{ + if (kstrtobool(buf, &tier_aware_memcg_limits)) + return -EINVAL; + + return count; +} + +static struct kobj_attribute numa_tier_aware_memcg_attr =3D + __ATTR_RW(tier_aware_memcg); + static struct attribute *numa_attrs[] =3D { &numa_demotion_enabled_attr.attr, + &numa_tier_aware_memcg_attr.attr, NULL, }; =20 --=20 2.47.3