public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: Ben Horgan <ben.horgan@arm.com>
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 v5 5/7] fs/resctrl: Continue counter allocation after failure
Date: Tue, 28 Apr 2026 14:04:20 +0100	[thread overview]
Message-ID: <20260428130422.2287302-6-ben.horgan@arm.com> (raw)
In-Reply-To: <20260428130422.2287302-1-ben.horgan@arm.com>

In mbm_event mode, with mbm_assign_on_mkdir set to 1, when a user creates a
new CTRL_MON or MON group resctrl attempts to allocate counters for each of
the supported MBM events on each resctrl domain. As counters are limited,
such allocation may fail and when it does counter allocations for the
remaining domains are skipped even if the domains have available counters.

Since a counter allocation failure may result in counter allocation being
skipped on other domains the user needs to view the resource group's
mbm_L3_assignments files to get an accurate view of counter assignment in a
new resource group and then manually create counters in the skipped domains
with available counters.

Writes to mbm_L3_assignments using the wildcard format, <event>:*=e, also
skip counter allocation in other domains after a counter allocation
failure.

When handling a request to create counters in all domains it is unnecessary
for a counter allocation in one domain to prevent counter allocation in
other domains. Always attempt to allocate all the counters requested.

Signed-off-by: Ben Horgan <ben.horgan@arm.com>
---
Changes since v4:
Update commit message (Reinette)
---
 fs/resctrl/monitor.c | 15 +++++++++------
 1 file changed, 9 insertions(+), 6 deletions(-)

diff --git a/fs/resctrl/monitor.c b/fs/resctrl/monitor.c
index 5fbcc64e50ce..0e6a389a16bf 100644
--- a/fs/resctrl/monitor.c
+++ b/fs/resctrl/monitor.c
@@ -1211,9 +1211,10 @@ static int rdtgroup_alloc_assign_cntr(struct rdt_resource *r, struct rdt_l3_mon_
  * NULL; otherwise, assign the counter to the specified domain @d.
  *
  * If all counters in a domain are already in use, rdtgroup_alloc_assign_cntr()
- * will fail. The assignment process will abort at the first failure encountered
- * during domain traversal, which may result in the event being only partially
- * assigned.
+ * will fail. When attempting to assign counters to all domains, carry on trying
+ * to assign counters after a failure since only some domains may have counters
+ * and the goal is to assign counters where possible. If any counter assignment
+ * fails, return the error from the last failing assignment.
  *
  * Return:
  * 0 on success, < 0 on failure.
@@ -1226,9 +1227,11 @@ static int rdtgroup_assign_cntr_event(struct rdt_l3_mon_domain *d, struct rdtgro
 
 	if (!d) {
 		list_for_each_entry(d, &r->mon_domains, hdr.list) {
-			ret = rdtgroup_alloc_assign_cntr(r, d, rdtgrp, mevt);
-			if (ret)
-				return ret;
+			int err;
+
+			err = rdtgroup_alloc_assign_cntr(r, d, rdtgrp, mevt);
+			if (err)
+				ret = err;
 		}
 	} else {
 		ret = rdtgroup_alloc_assign_cntr(r, d, rdtgrp, mevt);
-- 
2.43.0


  parent reply	other threads:[~2026-04-28 13:04 UTC|newest]

Thread overview: 19+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-04-28 13:04 [PATCH v5 0/7] x86,fs/resctrl: Pave the way for MPAM counter assignment Ben Horgan
2026-04-28 13:04 ` [PATCH v5 1/7] fs/resctrl: Tidy up the error path in resctrl_mkdir_event_configs() Ben Horgan
2026-05-04 15:59   ` Reinette Chatre
2026-04-28 13:04 ` [PATCH v5 2/7] x86,fs/resctrl: Create 'event_filter' files read only if they're not configurable Ben Horgan
2026-05-04 15:59   ` Reinette Chatre
2026-04-28 13:04 ` [PATCH v5 3/7] fs/resctrl: Disallow the software controller when MBM counters are assignable Ben Horgan
2026-05-04 16:01   ` Reinette Chatre
2026-05-05  9:34     ` Ben Horgan
2026-05-05 10:20       ` Ben Horgan
2026-05-05 15:21         ` Reinette Chatre
2026-05-05 15:51           ` Ben Horgan
2026-04-28 13:04 ` [PATCH v5 4/7] fs/resctrl: Add monitor property 'mbm_cntr_assign_fixed' Ben Horgan
2026-05-04 16:01   ` Reinette Chatre
2026-04-28 13:04 ` Ben Horgan [this message]
2026-05-04 16:01   ` [PATCH v5 5/7] fs/resctrl: Continue counter allocation after failure Reinette Chatre
2026-04-28 13:04 ` [PATCH v5 6/7] fs/resctrl: Document that automatic counter assignment is best effort Ben Horgan
2026-05-04 16:01   ` Reinette Chatre
2026-04-28 13:04 ` [PATCH v5 7/7] fs/resctrl: Document tasks file behaviour for task id 0 and idle tasks Ben Horgan
2026-05-04 16:02   ` Reinette Chatre

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=20260428130422.2287302-6-ben.horgan@arm.com \
    --to=ben.horgan@arm.com \
    --cc=Dave.Martin@arm.com \
    --cc=babu.moger@amd.com \
    --cc=bp@alien8.de \
    --cc=dave.hansen@linux.intel.com \
    --cc=fenghuay@nvidia.com \
    --cc=hpa@zytor.com \
    --cc=james.morse@arm.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mingo@redhat.com \
    --cc=reinette.chatre@intel.com \
    --cc=tan.shaopeng@fujitsu.com \
    --cc=tglx@kernel.org \
    --cc=tony.luck@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