From nobody Sat Apr 11 12:22:04 2026 Received: from foss.arm.com (foss.arm.com [217.140.110.172]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 781CD3CF033 for ; Fri, 13 Mar 2026 17:45:48 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=217.140.110.172 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1773423950; cv=none; b=u4GRNDQ7FxEwPb3pSrQKAXkMEbL6IaLQiRSwEvwtyRIw9vMdKghJXTwcorXs2MR65Xg/+dmd8bnY+XIbArLecEFaC8UMAPqJ+5gGjtb8eVFhWWxwKCkUXjF4tc39SNRB+l4iU2aJvO75sd2ptmKlB6HO1jHsIZxDBTQ1g1yQxBE= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1773423950; c=relaxed/simple; bh=LQ2C2TT3Za0iObr3jPQjDLE6iKrpDWbqnA5YJbTPAGU=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=NhvjdhetxvwXMeln0WJ4dzHSqHNR3ye+CHKU6Fwdr3xB+mfQOSWEw2eVVv86jQFGgXUTsaj46F0Xh3G4t5jcYsjbq4xMHPPfq2kraxukf71f2LB8Cvx2ZbbF8oxqBVPAbMsKVxFFmDa/ERpIPd1mlk5eF/ScCADOFq/Ov0LIveI= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=arm.com; spf=pass smtp.mailfrom=arm.com; arc=none smtp.client-ip=217.140.110.172 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=arm.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=arm.com Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14]) by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id CBFEA176A; Fri, 13 Mar 2026 10:45:41 -0700 (PDT) Received: from e134344.cambridge.arm.com (e134344.arm.com [10.1.196.46]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPA id D7B383F694; Fri, 13 Mar 2026 10:45:45 -0700 (PDT) From: Ben Horgan To: linux-kernel@vger.kernel.org Cc: tony.luck@intel.com, reinette.chatre@intel.com, Dave.Martin@arm.com, james.morse@arm.com, babu.moger@amd.com, tglx@kernel.org, mingo@redhat.com, bp@alien8.de, dave.hansen@linux.intel.com, x86@kernel.org, hpa@zytor.com, ben.horgan@arm.com, fenghuay@nvidia.com, tan.shaopeng@fujitsu.com Subject: [PATCH v2 5/6] x86,fs/resctrl: Add resctrl_arch_mbm_cntr_assign_fixed() Date: Fri, 13 Mar 2026 17:45:23 +0000 Message-ID: <20260313174524.3482767-6-ben.horgan@arm.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260313174524.3482767-1-ben.horgan@arm.com> References: <20260313174524.3482767-1-ben.horgan@arm.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" Commit 3b497c3f4f04 ("fs/resctrl: Introduce the interface to display monitoring = modes") introduced CONFIG_RESCTRL_ASSIGN_FIXED but left adding the Kconfig entry until it was necessary. The counter assignment mode is fixed in MPAM, even when there are assignable counters, and so addressing this is needed to support MPAM. To avoid the burden of another Kconfig entry, replace CONFIG_RESCTRL_ASSIGN_FIXED with a new arch hook, resctrl_arch_mbm_cntr_assign_fixed(). To enable better user reporting check use the new check in resctrl_mbm_assign_mode_write(). Signed-off-by: Ben Horgan --- arch/x86/kernel/cpu/resctrl/monitor.c | 5 +++++ fs/resctrl/monitor.c | 8 +++++++- include/linux/resctrl.h | 10 ++++++++++ 3 files changed, 22 insertions(+), 1 deletion(-) diff --git a/arch/x86/kernel/cpu/resctrl/monitor.c b/arch/x86/kernel/cpu/re= sctrl/monitor.c index 9bd87bae4983..aa7f8f1ecd22 100644 --- a/arch/x86/kernel/cpu/resctrl/monitor.c +++ b/arch/x86/kernel/cpu/resctrl/monitor.c @@ -523,6 +523,11 @@ bool resctrl_arch_mbm_cntr_assign_enabled(struct rdt_r= esource *r) return resctrl_to_arch_res(r)->mbm_cntr_assign_enabled; } =20 +bool resctrl_arch_mbm_cntr_assign_fixed(struct rdt_resource *r) +{ + return false; +} + static void resctrl_abmc_config_one_amd(void *info) { union l3_qos_abmc_cfg *abmc_cfg =3D info; diff --git a/fs/resctrl/monitor.c b/fs/resctrl/monitor.c index a2da771d82df..62edb464410a 100644 --- a/fs/resctrl/monitor.c +++ b/fs/resctrl/monitor.c @@ -1455,7 +1455,7 @@ int resctrl_mbm_assign_mode_show(struct kernfs_open_f= ile *of, else seq_puts(s, "[default]\n"); =20 - if (!IS_ENABLED(CONFIG_RESCTRL_ASSIGN_FIXED)) { + if (!resctrl_arch_mbm_cntr_assign_fixed(r)) { if (enabled) seq_puts(s, "default\n"); else @@ -1506,6 +1506,12 @@ ssize_t resctrl_mbm_assign_mode_write(struct kernfs_= open_file *of, char *buf, } =20 if (enable !=3D resctrl_arch_mbm_cntr_assign_enabled(r)) { + if (!resctrl_arch_mbm_cntr_assign_fixed(r)) { + ret =3D -EINVAL; + rdt_last_cmd_puts("Counter assignment mode is not configurable\n"); + goto out_unlock; + } + ret =3D resctrl_arch_mbm_cntr_assign_set(r, enable); if (ret) goto out_unlock; diff --git a/include/linux/resctrl.h b/include/linux/resctrl.h index 4ae63233b506..c85176999eb2 100644 --- a/include/linux/resctrl.h +++ b/include/linux/resctrl.h @@ -500,6 +500,16 @@ bool resctrl_arch_mbm_cntr_assign_enabled(struct rdt_r= esource *r); */ int resctrl_arch_mbm_cntr_assign_set(struct rdt_resource *r, bool enable); =20 +/** + * resctrl_arch_mbm_cntr_assign_fixed() - Check if MBM counter assignment = mode + * can be configured. + * @r: Pointer to the resource structure. + * + * Return: + * true if the assignment mode is fixed, false otherwise. + */ +bool resctrl_arch_mbm_cntr_assign_fixed(struct rdt_resource *r); + /* * Update the ctrl_val and apply this config right now. * Must be called on one of the domain's CPUs. --=20 2.43.0