From: "tip-bot2 for Babu Moger" <tip-bot2@linutronix.de>
To: linux-tip-commits@vger.kernel.org
Cc: Babu Moger <babu.moger@amd.com>,
"Borislav Petkov (AMD)" <bp@alien8.de>,
Reinette Chatre <reinette.chatre@intel.com>,
x86@kernel.org, linux-kernel@vger.kernel.org
Subject: [tip: x86/cache] x86/resctrl: Configure mbm_event mode if supported
Date: Mon, 15 Sep 2025 11:27:20 -0000 [thread overview]
Message-ID: <175793564043.709179.420128871131571525.tip-bot2@tip-bot2> (raw)
In-Reply-To: <e37577c1c0bb22c2e1e5e28f36f831623d56221a.1757108044.git.babu.moger@amd.com>
The following commit has been merged into the x86/cache branch of tip:
Commit-ID: 0f1576e43adc62756879a240e66e89ce386b6eb9
Gitweb: https://git.kernel.org/tip/0f1576e43adc62756879a240e66e89ce386b6eb9
Author: Babu Moger <babu.moger@amd.com>
AuthorDate: Fri, 05 Sep 2025 16:34:31 -05:00
Committer: Borislav Petkov (AMD) <bp@alien8.de>
CommitterDate: Mon, 15 Sep 2025 12:52:04 +02:00
x86/resctrl: Configure mbm_event mode if supported
Configure mbm_event mode on AMD platforms. On AMD platforms, it is
recommended to use the mbm_event mode, if supported, to prevent the
hardware from resetting counters between reads. This can result in
misleading values or display "Unavailable" if no counter is assigned
to the event.
Enable mbm_event mode, known as ABMC (Assignable Bandwidth Monitoring
Counters) on AMD, by default if the system supports it.
Update ABMC across all logical processors within the resctrl domain to
ensure proper functionality.
Signed-off-by: Babu Moger <babu.moger@amd.com>
Signed-off-by: Borislav Petkov (AMD) <bp@alien8.de>
Reviewed-by: Reinette Chatre <reinette.chatre@intel.com>
Link: https://lore.kernel.org/cover.1757108044.git.babu.moger@amd.com
---
arch/x86/kernel/cpu/resctrl/core.c | 7 +++++++
arch/x86/kernel/cpu/resctrl/internal.h | 1 +
arch/x86/kernel/cpu/resctrl/monitor.c | 8 ++++++++
3 files changed, 16 insertions(+)
diff --git a/arch/x86/kernel/cpu/resctrl/core.c b/arch/x86/kernel/cpu/resctrl/core.c
index 2e68aa0..06ca5a3 100644
--- a/arch/x86/kernel/cpu/resctrl/core.c
+++ b/arch/x86/kernel/cpu/resctrl/core.c
@@ -520,6 +520,9 @@ static void domain_add_cpu_mon(int cpu, struct rdt_resource *r)
d = container_of(hdr, struct rdt_mon_domain, hdr);
cpumask_set_cpu(cpu, &d->hdr.cpu_mask);
+ /* Update the mbm_assign_mode state for the CPU if supported */
+ if (r->mon.mbm_cntr_assignable)
+ resctrl_arch_mbm_cntr_assign_set_one(r);
return;
}
@@ -539,6 +542,10 @@ static void domain_add_cpu_mon(int cpu, struct rdt_resource *r)
d->ci_id = ci->id;
cpumask_set_cpu(cpu, &d->hdr.cpu_mask);
+ /* Update the mbm_assign_mode state for the CPU if supported */
+ if (r->mon.mbm_cntr_assignable)
+ resctrl_arch_mbm_cntr_assign_set_one(r);
+
arch_mon_domain_online(r, d);
if (arch_domain_mbm_alloc(r->mon.num_rmid, hw_dom)) {
diff --git a/arch/x86/kernel/cpu/resctrl/internal.h b/arch/x86/kernel/cpu/resctrl/internal.h
index e5edddb..9f4c2f0 100644
--- a/arch/x86/kernel/cpu/resctrl/internal.h
+++ b/arch/x86/kernel/cpu/resctrl/internal.h
@@ -215,5 +215,6 @@ bool rdt_cpu_has(int flag);
void __init intel_rdt_mbm_apply_quirk(void);
void rdt_domain_reconfigure_cdp(struct rdt_resource *r);
+void resctrl_arch_mbm_cntr_assign_set_one(struct rdt_resource *r);
#endif /* _ASM_X86_RESCTRL_INTERNAL_H */
diff --git a/arch/x86/kernel/cpu/resctrl/monitor.c b/arch/x86/kernel/cpu/resctrl/monitor.c
index 0b3c199..c894561 100644
--- a/arch/x86/kernel/cpu/resctrl/monitor.c
+++ b/arch/x86/kernel/cpu/resctrl/monitor.c
@@ -456,6 +456,7 @@ int __init rdt_get_mon_l3_config(struct rdt_resource *r)
r->mon.mbm_cntr_assignable = true;
cpuid_count(0x80000020, 5, &eax, &ebx, &ecx, &edx);
r->mon.num_mbm_cntrs = (ebx & GENMASK(15, 0)) + 1;
+ hw_res->mbm_cntr_assign_enabled = true;
}
r->mon_capable = true;
@@ -557,3 +558,10 @@ void resctrl_arch_config_cntr(struct rdt_resource *r, struct rdt_mon_domain *d,
if (am)
memset(am, 0, sizeof(*am));
}
+
+void resctrl_arch_mbm_cntr_assign_set_one(struct rdt_resource *r)
+{
+ struct rdt_hw_resource *hw_res = resctrl_to_arch_res(r);
+
+ resctrl_abmc_set_one_amd(&hw_res->mbm_cntr_assign_enabled);
+}
next prev parent reply other threads:[~2025-09-15 11:36 UTC|newest]
Thread overview: 96+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-09-05 21:33 [PATCH v18 00/33] x86,fs/resctrl: Support AMD Assignable Bandwidth Monitoring Counters (ABMC) Babu Moger
2025-09-05 21:34 ` [PATCH v18 01/33] x86,fs/resctrl: Consolidate monitor event descriptions Babu Moger
2025-09-15 11:27 ` [tip: x86/cache] " tip-bot2 for Tony Luck
2025-09-05 21:34 ` [PATCH v18 02/33] x86,fs/resctrl: Replace architecture event enabled checks Babu Moger
2025-09-15 11:27 ` [tip: x86/cache] " tip-bot2 for Tony Luck
2025-09-05 21:34 ` [PATCH v18 03/33] x86/resctrl: Remove 'rdt_mon_features' global variable Babu Moger
2025-09-15 11:27 ` [tip: x86/cache] x86/resctrl: Remove the rdt_mon_features " tip-bot2 for Tony Luck
2025-09-05 21:34 ` [PATCH v18 04/33] x86,fs/resctrl: Prepare for more monitor events Babu Moger
2025-09-15 11:27 ` [tip: x86/cache] " tip-bot2 for Tony Luck
2025-09-05 21:34 ` [PATCH v18 05/33] x86/cpufeatures: Add support for Assignable Bandwidth Monitoring Counters (ABMC) Babu Moger
2025-09-06 4:49 ` Reinette Chatre
2025-09-08 14:41 ` Moger, Babu
2025-09-08 15:03 ` Borislav Petkov
2025-09-08 18:26 ` Moger, Babu
2025-09-15 11:27 ` [tip: x86/cache] " tip-bot2 for Babu Moger
2025-09-05 21:34 ` [PATCH v18 06/33] x86/resctrl: Add ABMC feature in the command line options Babu Moger
2025-09-15 11:27 ` [tip: x86/cache] " tip-bot2 for Babu Moger
2025-09-05 21:34 ` [PATCH v18 07/33] x86,fs/resctrl: Consolidate monitoring related data from rdt_resource Babu Moger
2025-09-15 11:27 ` [tip: x86/cache] " tip-bot2 for Babu Moger
2025-09-05 21:34 ` [PATCH v18 08/33] x86,fs/resctrl: Detect Assignable Bandwidth Monitoring feature details Babu Moger
2025-09-15 11:27 ` [tip: x86/cache] " tip-bot2 for Babu Moger
2025-09-05 21:34 ` [PATCH v18 09/33] x86/resctrl: Add support to enable/disable AMD ABMC feature Babu Moger
2025-09-15 11:27 ` [tip: x86/cache] " tip-bot2 for Babu Moger
2025-09-05 21:34 ` [PATCH v18 10/33] fs/resctrl: Introduce the interface to display monitoring modes Babu Moger
2025-09-15 11:27 ` [tip: x86/cache] " tip-bot2 for Babu Moger
2025-09-05 21:34 ` [PATCH v18 11/33] fs/resctrl: Add resctrl file to display number of assignable counters Babu Moger
2025-09-15 11:27 ` [tip: x86/cache] " tip-bot2 for Babu Moger
2025-09-05 21:34 ` [PATCH v18 12/33] fs/resctrl: Introduce mbm_cntr_cfg to track assignable counters per domain Babu Moger
2025-09-15 11:27 ` [tip: x86/cache] " tip-bot2 for Babu Moger
2025-09-05 21:34 ` [PATCH v18 13/33] fs/resctrl: Introduce interface to display number of free MBM counters Babu Moger
2025-09-15 11:27 ` [tip: x86/cache] " tip-bot2 for Babu Moger
2025-09-05 21:34 ` [PATCH v18 14/33] x86/resctrl: Add data structures and definitions for ABMC assignment Babu Moger
2025-09-10 17:26 ` Borislav Petkov
2025-09-10 19:49 ` Moger, Babu
2025-09-10 19:59 ` Borislav Petkov
2025-09-10 20:26 ` Moger, Babu
2025-09-15 11:27 ` [tip: x86/cache] " tip-bot2 for Babu Moger
2025-09-05 21:34 ` [PATCH v18 15/33] fs/resctrl: Introduce event configuration field in struct mon_evt Babu Moger
2025-09-15 11:27 ` [tip: x86/cache] " tip-bot2 for Babu Moger
2025-09-05 21:34 ` [PATCH v18 16/33] x86,fs/resctrl: Implement resctrl_arch_config_cntr() to assign a counter with ABMC Babu Moger
2025-09-15 11:27 ` [tip: x86/cache] " tip-bot2 for Babu Moger
2025-09-05 21:34 ` [PATCH v18 17/33] fs/resctrl: Add the functionality to assign MBM events Babu Moger
2025-09-15 11:27 ` [tip: x86/cache] " tip-bot2 for Babu Moger
2025-09-05 21:34 ` [PATCH v18 18/33] fs/resctrl: Add the functionality to unassign " Babu Moger
2025-09-15 11:27 ` [tip: x86/cache] " tip-bot2 for Babu Moger
2025-09-05 21:34 ` [PATCH v18 19/33] fs/resctrl: Pass struct rdtgroup instead of individual members Babu Moger
2025-09-15 11:27 ` [tip: x86/cache] " tip-bot2 for Babu Moger
2025-09-05 21:34 ` [PATCH v18 20/33] fs/resctrl: Introduce counter ID read, reset calls in mbm_event mode Babu Moger
2025-09-15 11:27 ` [tip: x86/cache] " tip-bot2 for Babu Moger
2025-09-05 21:34 ` [PATCH v18 21/33] x86/resctrl: Refactor resctrl_arch_rmid_read() Babu Moger
2025-09-15 11:27 ` [tip: x86/cache] " tip-bot2 for Babu Moger
2025-09-05 21:34 ` [PATCH v18 22/33] x86/resctrl: Implement resctrl_arch_reset_cntr() and resctrl_arch_cntr_read() Babu Moger
2025-09-15 11:27 ` [tip: x86/cache] " tip-bot2 for Babu Moger
2025-09-05 21:34 ` [PATCH v18 23/33] fs/resctrl: Support counter read/reset with mbm_event assignment mode Babu Moger
2025-09-15 11:27 ` [tip: x86/cache] " tip-bot2 for Babu Moger
2025-09-05 21:34 ` [PATCH v18 24/33] fs/resctrl: Add event configuration directory under info/L3_MON/ Babu Moger
2025-09-15 11:27 ` [tip: x86/cache] " tip-bot2 for Babu Moger
2025-09-05 21:34 ` [PATCH v18 25/33] fs/resctrl: Provide interface to update the event configurations Babu Moger
2025-09-06 4:49 ` Reinette Chatre
2025-09-15 11:27 ` [tip: x86/cache] " tip-bot2 for Babu Moger
2025-09-05 21:34 ` [PATCH v18 26/33] fs/resctrl: Introduce mbm_assign_on_mkdir to enable assignments on mkdir Babu Moger
2025-09-11 15:08 ` Borislav Petkov
2025-09-11 16:24 ` Reinette Chatre
2025-09-11 16:54 ` Borislav Petkov
2025-09-11 17:11 ` Reinette Chatre
2025-09-11 16:28 ` Moger, Babu
2025-09-15 11:27 ` [tip: x86/cache] " tip-bot2 for Babu Moger
2025-09-05 21:34 ` [PATCH v18 27/33] fs/resctrl: Auto assign counters on mkdir and clean up on group removal Babu Moger
2025-09-15 11:27 ` [tip: x86/cache] " tip-bot2 for Babu Moger
2025-09-05 21:34 ` [PATCH v18 28/33] fs/resctrl: Introduce mbm_L3_assignments to list assignments in a group Babu Moger
2025-09-06 4:49 ` Reinette Chatre
2025-09-15 11:27 ` [tip: x86/cache] " tip-bot2 for Babu Moger
2025-09-05 21:34 ` [PATCH v18 29/33] fs/resctrl: Introduce the interface to modify " Babu Moger
2025-09-06 4:50 ` Reinette Chatre
2025-09-08 19:17 ` Moger, Babu
2025-09-15 11:27 ` [tip: x86/cache] " tip-bot2 for Babu Moger
2025-09-05 21:34 ` [PATCH v18 30/33] fs/resctrl: Disable BMEC event configuration when mbm_event mode is enabled Babu Moger
2025-09-15 11:27 ` [tip: x86/cache] " tip-bot2 for Babu Moger
2025-09-05 21:34 ` [PATCH v18 31/33] fs/resctrl: Introduce the interface to switch between monitor modes Babu Moger
2025-09-15 11:27 ` [tip: x86/cache] " tip-bot2 for Babu Moger
2025-09-05 21:34 ` [PATCH v18 32/33] x86/resctrl: Configure mbm_event mode if supported Babu Moger
2025-09-15 11:27 ` tip-bot2 for Babu Moger [this message]
2025-09-05 21:34 ` [PATCH v18 33/33] MAINTAINERS: resctrl: add myself as reviewer Babu Moger
2025-09-15 11:27 ` [tip: x86/cache] MAINTAINERS: resctrl: Add " tip-bot2 for Babu Moger
2025-09-09 16:03 ` [PATCH v18 00/33] x86,fs/resctrl: Support AMD Assignable Bandwidth Monitoring Counters (ABMC) Reinette Chatre
2025-09-09 16:19 ` Borislav Petkov
2025-09-09 16:24 ` Reinette Chatre
2025-09-09 17:33 ` Luck, Tony
2025-09-09 17:38 ` Borislav Petkov
2025-09-15 11:25 ` Borislav Petkov
2025-09-15 21:07 ` Reinette Chatre
2025-09-16 10:54 ` Borislav Petkov
2025-09-16 17:00 ` Moger, Babu
2025-11-16 17:25 ` Drew Fustini
2025-11-17 15:07 ` Babu Moger
2025-11-18 23:15 ` Drew Fustini
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=175793564043.709179.420128871131571525.tip-bot2@tip-bot2 \
--to=tip-bot2@linutronix.de \
--cc=babu.moger@amd.com \
--cc=bp@alien8.de \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-tip-commits@vger.kernel.org \
--cc=reinette.chatre@intel.com \
--cc=x86@kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®