From: "Luck, Tony" <tony.luck@intel.com>
To: Reinette Chatre <reinette.chatre@intel.com>
Cc: Fenghua Yu <fenghuay@nvidia.com>,
Maciej Wieczor-Retman <maciej.wieczor-retman@intel.com>,
Peter Newman <peternewman@google.com>,
James Morse <james.morse@arm.com>,
Babu Moger <babu.moger@amd.com>,
"Drew Fustini" <dfustini@baylibre.com>,
Dave Martin <Dave.Martin@arm.com>, Chen Yu <yu.c.chen@intel.com>,
David E Box <david.e.box@intel.com>, <x86@kernel.org>,
Christoph Hellwig <hch@infradead.org>,
<linux-kernel@vger.kernel.org>, <patches@lists.linux.dev>
Subject: Re: [PATCH v7 07/14] x86/resctrl: Maintain a count of enabled monitor features
Date: Tue, 9 Jun 2026 11:46:09 -0700 [thread overview]
Message-ID: <aihfcS3T7M-hn5NV@agluck-desk3> (raw)
In-Reply-To: <ebb78841-8676-4383-a1b4-81ff4f1e782a@intel.com>
On Mon, Jun 08, 2026 at 04:18:54PM -0700, Reinette Chatre wrote:
> Hi Tony,
>
> On 6/1/26 12:56 PM, Tony Luck wrote:
> > AET (Application Energy Telemetry) may be enabled/disabled from one mount
> > to the next depending on whether the pmt_telemetry module is loaded. If
> > AET is the only monitoring feature supported on a system and it is enabled
> > in one mount, but disabled in a subsequent mount this will result in empty
> > mon_data directories.
> >
> > Change from a boolean to a count of enabled monitor features inside
> > architecture code. File system code only needs to know if any monitor
>
> First sentence seems to be missing what is being changed.
>
> > features are enabled so resctrl_arch_mon_capable() can still return
> > boolean.
> >
> > Signed-off-by: Tony Luck <tony.luck@intel.com>
> > ---
> > arch/x86/include/asm/resctrl.h | 4 ++--
> > arch/x86/kernel/cpu/resctrl/internal.h | 2 +-
> > arch/x86/kernel/cpu/resctrl/core.c | 24 +++++++++++++-----------
> > arch/x86/kernel/cpu/resctrl/monitor.c | 11 +++--------
> > 4 files changed, 19 insertions(+), 22 deletions(-)
> >
> > diff --git a/arch/x86/include/asm/resctrl.h b/arch/x86/include/asm/resctrl.h
> > index 575f8408a9e7..1e50c7dc3fe3 100644
> > --- a/arch/x86/include/asm/resctrl.h
> > +++ b/arch/x86/include/asm/resctrl.h
> > @@ -43,7 +43,7 @@ struct resctrl_pqr_state {
> > DECLARE_PER_CPU(struct resctrl_pqr_state, pqr_state);
> >
> > extern bool rdt_alloc_capable;
> > -extern bool rdt_mon_capable;
> > +extern int rdt_mon_feature_count;
> >
> > DECLARE_STATIC_KEY_FALSE(rdt_enable_key);
> > DECLARE_STATIC_KEY_FALSE(rdt_alloc_enable_key);
> > @@ -68,7 +68,7 @@ static inline void resctrl_arch_disable_alloc(void)
> >
> > static inline bool resctrl_arch_mon_capable(void)
> > {
> > - return rdt_mon_capable;
> > + return !!rdt_mon_feature_count;
> > }
> >
>
> This seem unnecessarily complicated to me. Can global "rdt_mon_capable" instead be dropped
> and let resctrl_arch_mon_capable() just return "true" if any of the resources are
> "mon_capable"?
Conceptually this is much simpler. But I have questions about the
implementation. The new function is trivial:
bool resctrl_arch_mon_capable(void)
{
struct rdt_resource *r;
for_each_mon_capable_rdt_resource(r)
return true;
return false;
}
But that led me to #include hell when I tried to keep it as an inline
function in <asm/resctrl.h> because for_each_mon_capable_rdt_resource()
is defined in <linux/resctrl.h> after the #include <asm/resctrl.h>
So I've moved it out-of-line into arch/x86/kernel/cpu/resctrl/core.c.
The MPAM implementation is also out-of-line.
But then I wondered about performance. This change on x86 goes from an
inline function that simply returns the value of a global variable to an
out-of-line function that scans the array of rdt resources. The common
case will be a hit on the first element, so not awful. But still worse
that before I touched it.
So I looked for places where resctrl_arch_mon_capable() is called in
"hot" code paths. There's a bunch in mount and mkdir, but those aren't
very hot.
My list (check to see if I missed any others):
1) Recurring call once per second in mbm_handle_overflow()
Seems redundant. There is a check to only start the overflow handler
on mon_capable systems (only with enabled MBM events!)
2) Call for potentially every task when reading tasks files in is_rmid_match()
Also seems redundant. Next part of that "if" looks at "r->type == RDTMON_GROUP"
which can only be true on mon_capable systems.
Should I clean these up in this series? As part of this patch which
exacerbates the performance impact, or as a separate cleanup patch?
>
> Reinette
>
-Tony
next prev parent reply other threads:[~2026-06-09 18:46 UTC|newest]
Thread overview: 60+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-06-01 19:56 [PATCH v7 00/14] Allow AET to use PMT as loadable module Tony Luck
2026-06-01 19:56 ` [PATCH v7 01/14] fs/resctrl: Move functions to avoid forward references in subsequent fixes Tony Luck
2026-06-01 19:56 ` [PATCH v7 02/14] fs/resctrl: Free mon_data structures on rdt_get_tree() failure Tony Luck
2026-06-01 19:56 ` [PATCH v7 03/14] fs/resctrl: Fix use-after-free during unmount Tony Luck
2026-06-01 19:56 ` [PATCH v7 04/14] fs/resctrl: Fix deadlock for errors during mount Tony Luck
2026-06-01 19:56 ` [PATCH v7 05/14] x86/resctrl: Stop setting event_group::force_off on RMID shortage Tony Luck
2026-06-08 23:16 ` Reinette Chatre
2026-06-09 16:51 ` Luck, Tony
2026-06-09 23:02 ` Reinette Chatre
2026-06-10 20:01 ` Luck, Tony
2026-06-01 19:56 ` [PATCH v7 06/14] fs/resctrl: Add interface to disable a monitor event Tony Luck
2026-06-08 23:18 ` Reinette Chatre
2026-06-09 17:21 ` Luck, Tony
2026-06-09 23:02 ` Reinette Chatre
2026-06-10 20:56 ` Luck, Tony
2026-06-10 22:26 ` Reinette Chatre
2026-06-10 23:19 ` Luck, Tony
2026-06-11 21:22 ` Reinette Chatre
2026-06-01 19:56 ` [PATCH v7 07/14] x86/resctrl: Maintain a count of enabled monitor features Tony Luck
2026-06-08 23:18 ` Reinette Chatre
2026-06-09 18:46 ` Luck, Tony [this message]
2026-06-09 23:03 ` Reinette Chatre
2026-06-11 17:27 ` Luck, Tony
2026-06-01 19:56 ` [PATCH v7 08/14] fs,x86,mpam/resctrl: Handle change in number of RMIDs on each mount Tony Luck
2026-06-08 23:21 ` Reinette Chatre
2026-06-09 21:58 ` Luck, Tony
2026-06-09 23:35 ` Reinette Chatre
2026-06-11 17:40 ` Luck, Tony
2026-06-01 19:56 ` [PATCH v7 09/14] x86/resctrl: Add PMT registration API for AET enumeration callbacks Tony Luck
2026-06-08 23:21 ` Reinette Chatre
2026-06-01 19:56 ` [PATCH v7 10/14] platform/x86/intel/pmt: Register enumeration functions with resctrl Tony Luck
2026-06-08 23:22 ` Reinette Chatre
2026-06-09 22:11 ` Luck, Tony
2026-06-18 21:15 ` Luck, Tony
2026-06-22 15:46 ` Reinette Chatre
2026-06-22 23:00 ` Luck, Tony
2026-06-23 15:45 ` Reinette Chatre
2026-06-23 18:24 ` Luck, Tony
2026-06-01 19:56 ` [PATCH v7 11/14] mpam,x86/resctrl: Resolve INTEL_PMT_TELEMETRY symbols at runtime Tony Luck
2026-06-08 23:25 ` Reinette Chatre
2026-06-10 0:08 ` Luck, Tony
2026-06-10 15:27 ` Reinette Chatre
2026-06-10 15:49 ` Luck, Tony
2026-06-10 16:21 ` Reinette Chatre
2026-06-10 16:34 ` Luck, Tony
2026-06-10 16:46 ` Reinette Chatre
2026-06-10 17:24 ` Luck, Tony
2026-06-10 17:58 ` Reinette Chatre
2026-06-10 22:09 ` Luck, Tony
2026-06-11 18:01 ` Luck, Tony
2026-06-11 21:22 ` Reinette Chatre
2026-06-11 22:27 ` Luck, Tony
2026-06-12 18:04 ` Luck, Tony
2026-06-01 19:56 ` [PATCH v7 12/14] fs/resctrl: Call architecture hooks for every mount/unmount Tony Luck
2026-06-08 23:26 ` Reinette Chatre
2026-06-10 16:16 ` Luck, Tony
2026-06-01 19:56 ` [PATCH v7 13/14] x86/resctrl: Simplify Kconfig options for resctrl Tony Luck
2026-06-01 19:56 ` [PATCH v7 14/14] Documentation/filesystems/resctrl: Add footnote for telemetry fstab mount caveat Tony Luck
2026-06-08 23:26 ` Reinette Chatre
2026-06-10 16:19 ` Luck, Tony
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=aihfcS3T7M-hn5NV@agluck-desk3 \
--to=tony.luck@intel.com \
--cc=Dave.Martin@arm.com \
--cc=babu.moger@amd.com \
--cc=david.e.box@intel.com \
--cc=dfustini@baylibre.com \
--cc=fenghuay@nvidia.com \
--cc=hch@infradead.org \
--cc=james.morse@arm.com \
--cc=linux-kernel@vger.kernel.org \
--cc=maciej.wieczor-retman@intel.com \
--cc=patches@lists.linux.dev \
--cc=peternewman@google.com \
--cc=reinette.chatre@intel.com \
--cc=x86@kernel.org \
--cc=yu.c.chen@intel.com \
/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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.