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>,
<x86@kernel.org>, <linux-kernel@vger.kernel.org>,
<patches@lists.linux.dev>
Subject: Re: [PATCH v13 25/32] x86/resctrl: Handle number of RMIDs supported by RDT_RESOURCE_PERF_PKG
Date: Mon, 17 Nov 2025 08:37:03 -0800 [thread overview]
Message-ID: <aRtPL9IQXWiKfhEk@agluck-desk3> (raw)
In-Reply-To: <8ca676bf-7b50-4898-baf1-92241712f871@intel.com>
On Fri, Nov 14, 2025 at 03:26:42PM -0800, Reinette Chatre wrote:
> Hi Tony,
>
> On 11/14/25 1:55 PM, Luck, Tony wrote:
> >
> > resctrl: Feature energy guid=0x26696143 not enabled due to insufficient RMIDs
> >
> >
> > static bool enable_events(struct event_group *e, struct pmt_feature_group *p)
> > {
> > struct rdt_resource *r = &rdt_resources_all[RDT_RESOURCE_PERF_PKG].r_resctrl;
> > bool warn_disable = false;
> >
> > if (!group_has_usable_regions(e, p))
> > return false;
> >
> > /* Disable feature if insufficient RMIDs */
> > if (!all_regions_have_sufficient_rmid(e, p)) {
> > warn_disable = true;
> > rdt_set_feature_disabled(e->name);
> > }
> >
> > /* User can override above disable from kernel command line */
> > if (!rdt_is_feature_enabled(e->name)) {
> > if (warn_disable)
> > pr_info("Feature %s guid=0x%x not enabled due to insufficient RMIDs\n",
> > e->name, e->guid);
> > return false;
> > }
> > ...
> > }
>
> Thank you for considering. This looks good to me.
>
> I now realize that if a system supports, for example, two energy guid and only one has insufficient
> RMID then one or both may be disabled by default depending on which resctrl attempts to enable
> first. This is arbitrary based on where the event group appears in the array.
intel_pmt_get_regions_by_feature() does return arrays of telemetry_region
with different guids today, but not currently for the "RMID" features.
So this could be a problem in the future.
I think I need to drop the "rdt=perf,!energy" command line control as
being too coarse. Instead add a new boot argument. E.g.
rdtguid=0x26696143,!0x26557651
to give the user control per-guid instead of per-pmt_feature_id. Users
can discover which guids are supported on a system by looking in
/sys/bus/auxiliary/devices/intel_vsec.discovery.*/intel_pmt/features*/per_rmid*
where there are "guids" and "num_rmids" files.
> How a system with two guid of the same feature type would work is not clear to me though. Looks
> like they cannot share events at all since an event is uniquely associated with a struct pmt_event
> that can belong to only one event group. If they may share events then enable_events()->resctrl_enable_mon_event()
> will complain loudly but still proceed and allow the event group to be enabled.
I can't see a good reason why the same event would be enabled under
different guids present on the same system. We can revisit my assumption
if the "Duplicate enable for event" message shows up.
> I think the resctrl_enable_mon_event() warnings were added to support enabling of new features
> so that the WARNs can catch issues during development ... now it may encounter issues when a
> kernel with this implementation is run on a system that supports a single feature with
> multiple guid. Do you have more insight in how the "single feature with multiple guid" may look to
> better prepare resctrl to handle them?
>
> Should "enable_events" be split so that a feature can be disabled for all its event groups if
> any of them cannot be enabled due to insufficient RMIDs?
> Perhaps resctrl_enable_mon_event() should also now return success/fail so that an event group
> cannot be enabled if its events cannot be enabled?
> Finally, a system with two guid of the same feature type will end up printing duplicate
> "<feature type> monitoring detected" that could be more descriptive?
I need to add the guid to that message.
>
> Reinette
-Tony
next prev parent reply other threads:[~2025-11-17 16:37 UTC|newest]
Thread overview: 85+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-10-29 16:20 [PATCH v13 00/32] x86,fs/resctrl telemetry monitoring Tony Luck
2025-10-29 16:20 ` [PATCH v13 01/32] x86,fs/resctrl: Improve domain type checking Tony Luck
2025-10-29 16:20 ` [PATCH v13 02/32] x86/resctrl: Move L3 initialization into new helper function Tony Luck
2025-10-29 16:20 ` [PATCH v13 03/32] x86/resctrl: Refactor domain_remove_cpu_mon() ready for new domain types Tony Luck
2025-10-29 16:20 ` [PATCH v13 04/32] x86/resctrl: Clean up domain_remove_cpu_ctrl() Tony Luck
2025-10-29 16:20 ` [PATCH v13 05/32] x86,fs/resctrl: Refactor domain create/remove using struct rdt_domain_hdr Tony Luck
2025-11-12 19:18 ` Reinette Chatre
2025-10-29 16:20 ` [PATCH v13 06/32] fs/resctrl: Split L3 dependent parts out of __mon_event_count() Tony Luck
2025-10-29 16:20 ` [PATCH v13 07/32] x86,fs/resctrl: Use struct rdt_domain_hdr when reading counters Tony Luck
2025-11-12 19:19 ` Reinette Chatre
2025-10-29 16:20 ` [PATCH v13 08/32] x86,fs/resctrl: Rename struct rdt_mon_domain and rdt_hw_mon_domain Tony Luck
2025-11-13 4:01 ` Reinette Chatre
2025-10-29 16:20 ` [PATCH v13 09/32] x86,fs/resctrl: Rename some L3 specific functions Tony Luck
2025-11-13 4:01 ` Reinette Chatre
2025-10-29 16:20 ` [PATCH v13 10/32] fs/resctrl: Make event details accessible to functions when reading events Tony Luck
2025-10-29 16:20 ` [PATCH v13 11/32] x86,fs/resctrl: Handle events that can be read from any CPU Tony Luck
2025-10-30 6:14 ` Chen, Yu C
2025-10-30 15:54 ` Luck, Tony
2025-10-30 16:18 ` Chen, Yu C
2025-11-13 4:02 ` Reinette Chatre
2025-10-29 16:20 ` [PATCH v13 12/32] x86,fs/resctrl: Support binary fixed point event counters Tony Luck
2025-11-05 14:42 ` Dave Martin
2025-11-05 23:31 ` Luck, Tony
2025-11-06 0:09 ` Reinette Chatre
2025-11-11 17:22 ` Dave Martin
2025-11-12 16:12 ` Reinette Chatre
2025-11-06 2:27 ` Luck, Tony
2025-11-11 17:31 ` Dave Martin
2025-11-14 18:39 ` Luck, Tony
2025-11-11 17:16 ` Dave Martin
2025-11-14 18:51 ` Luck, Tony
2025-11-10 16:52 ` Luck, Tony
2025-11-11 17:34 ` Dave Martin
2025-11-12 13:08 ` David Laight
2025-10-29 16:20 ` [PATCH v13 13/32] x86,fs/resctrl: Add an architectural hook called for each mount Tony Luck
2025-10-29 16:20 ` [PATCH v13 14/32] x86,fs/resctrl: Add and initialize rdt_resource for package scope monitor Tony Luck
2025-11-13 4:04 ` Reinette Chatre
2025-10-29 16:20 ` [PATCH v13 15/32] fs/resctrl: Cleanup as L3 is no longer the only monitor resource Tony Luck
2025-11-13 4:05 ` Reinette Chatre
2025-10-29 16:20 ` [PATCH v13 16/32] x86/resctrl: Discover hardware telemetry events Tony Luck
2025-11-13 4:11 ` Reinette Chatre
2025-10-29 16:21 ` [PATCH v13 17/32] x86,fs/resctrl: Fill in details of events for guid 0x26696143 and 0x26557651 Tony Luck
2025-11-13 22:38 ` Reinette Chatre
2025-10-29 16:21 ` [PATCH v13 18/32] x86,fs/resctrl: Add architectural event pointer Tony Luck
2025-10-29 16:21 ` [PATCH v13 19/32] x86/resctrl: Find and enable usable telemetry events Tony Luck
2025-11-13 22:46 ` Reinette Chatre
2025-10-29 16:21 ` [PATCH v13 20/32] x86/resctrl: Read " Tony Luck
2025-11-13 22:47 ` Reinette Chatre
2025-10-29 16:21 ` [PATCH v13 21/32] fs/resctrl: Refactor mkdir_mondata_subdir() Tony Luck
2025-11-13 22:48 ` Reinette Chatre
2025-10-29 16:21 ` [PATCH v13 22/32] fs/resctrl: Refactor rmdir_mondata_subdir_allrdtgrp() Tony Luck
2025-11-13 22:48 ` Reinette Chatre
2025-10-29 16:21 ` [PATCH v13 23/32] x86,fs/resctrl: Handle domain creation/deletion for RDT_RESOURCE_PERF_PKG Tony Luck
2025-10-29 16:21 ` [PATCH v13 24/32] x86/resctrl: Add energy/perf choices to rdt boot option Tony Luck
2025-10-29 16:21 ` [PATCH v13 25/32] x86/resctrl: Handle number of RMIDs supported by RDT_RESOURCE_PERF_PKG Tony Luck
2025-11-13 22:51 ` Reinette Chatre
2025-11-14 21:55 ` Luck, Tony
2025-11-14 23:26 ` Reinette Chatre
2025-11-17 16:37 ` Luck, Tony [this message]
2025-11-17 17:31 ` Reinette Chatre
2025-11-17 18:52 ` Luck, Tony
2025-11-18 16:48 ` Reinette Chatre
2025-11-18 17:35 ` Luck, Tony
2025-11-18 18:11 ` Reinette Chatre
2025-10-29 16:21 ` [PATCH v13 26/32] fs/resctrl: Move allocation/free of closid_num_dirty_rmid[] Tony Luck
2025-11-13 22:51 ` Reinette Chatre
2025-10-29 16:21 ` [PATCH v13 27/32] x86,fs/resctrl: Compute number of RMIDs as minimum across resources Tony Luck
2025-10-29 16:21 ` [PATCH v13 28/32] fs/resctrl: Move RMID initialization to first mount Tony Luck
2025-10-29 16:21 ` [PATCH v13 29/32] x86/resctrl: Enable RDT_RESOURCE_PERF_PKG Tony Luck
2025-11-13 22:52 ` Reinette Chatre
2025-10-29 16:21 ` [PATCH v13 30/32] fs/resctrl: Provide interface to create architecture specific debugfs area Tony Luck
2025-10-29 16:21 ` [PATCH v13 31/32] x86/resctrl: Add debugfs files to show telemetry aggregator status Tony Luck
2025-11-13 22:53 ` Reinette Chatre
2025-10-29 16:21 ` [PATCH v13 32/32] x86,fs/resctrl: Update documentation for telemetry events Tony Luck
2025-11-13 22:56 ` Reinette Chatre
2025-10-29 18:59 ` [PATCH v13 00/32] x86,fs/resctrl telemetry monitoring Luck, Tony
2025-11-05 15:33 ` Moger, Babu
2025-11-05 15:41 ` Luck, Tony
2025-12-17 0:28 ` Luck, Tony
2025-12-17 16:44 ` Moger, Babu
2025-12-17 17:08 ` Luck, Tony
2025-11-16 17:35 ` Drew Fustini
2025-11-17 16:52 ` Luck, Tony
2025-11-18 23:03 ` Drew Fustini
2025-11-18 23:12 ` 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=aRtPL9IQXWiKfhEk@agluck-desk3 \
--to=tony.luck@intel.com \
--cc=Dave.Martin@arm.com \
--cc=babu.moger@amd.com \
--cc=dfustini@baylibre.com \
--cc=fenghuay@nvidia.com \
--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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox