[PATCH v14 09/24] fs/resctrl: Remove redundant calls to resctrl_mon_capable()

From: Tony Luck

Date: Mon Oct 19 2026 - 16:53:49 EST


resctrl_mon_capable() reports whether the system supports monitoring by
scanning all resources. On x86 it used to read a single architecture-provided
flag. Calls on paths that run repeatedly now pay for the scan.

Two such callers already know that monitoring is supported:

1) mbm_handle_overflow()
The MBM overflow handler runs once per second on each L3 monitoring
domain. It is only set up when MBM events are enabled, which requires
L3 monitoring support.

2) is_rmid_match()
Called for every task in the system when walking the task list to read
a tasks file, remove a group, or unmount. It only matches MON groups,
which can only be created on a system that supports monitoring.

Remove the call to resctrl_mon_capable() from both functions.

No functional change intended.

Signed-off-by: Tony Luck <tony.luck@xxxxxxxxx>
---
v14:
New commit message confessing that this is fixing a performance
problem created by an earlier patch this series.
---
fs/resctrl/monitor.c | 2 +-
fs/resctrl/rdtgroup.c | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/fs/resctrl/monitor.c b/fs/resctrl/monitor.c
index cb34d3637ee5..f05be52ab5b3 100644
--- a/fs/resctrl/monitor.c
+++ b/fs/resctrl/monitor.c
@@ -888,7 +888,7 @@ void mbm_handle_overflow(struct work_struct *work)
* If the filesystem has been unmounted this work no longer needs to
* run.
*/
- if (!resctrl_mounted || !resctrl_mon_capable())
+ if (!resctrl_mounted)
goto out_unlock;

/*
diff --git a/fs/resctrl/rdtgroup.c b/fs/resctrl/rdtgroup.c
index 96a4978ce6b6..7cf809380c53 100644
--- a/fs/resctrl/rdtgroup.c
+++ b/fs/resctrl/rdtgroup.c
@@ -691,7 +691,7 @@ static bool is_closid_match(struct task_struct *t, struct rdtgroup *r)

static bool is_rmid_match(struct task_struct *t, struct rdtgroup *r)
{
- return (resctrl_mon_capable() && (r->type == RDTMON_GROUP) &&
+ return (r->type == RDTMON_GROUP &&
resctrl_arch_match_rmid(t, r->mon.parent->closid,
r->mon.rmid));
}
--
2.56.0