mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: Aaron Tomlin <atomlin@atomlin.com>
To: tony.luck@intel.com, reinette.chatre@intel.com,
	Dave.Martin@arm.com, james.morse@arm.com, babu.moger@amd.com,
	tglx@linutronix.de, mingo@redhat.com, bp@alien8.de,
	dave.hansen@linux.intel.com
Cc: dave.martin@arm.com, sean@ashe.io, neelx@suse.com,
	mproche@gmail.com, chjohnst@gmail.com,
	linux-kernel@vger.kernel.org
Subject: [PATCH v5 0/2] fs/resctrl: Add "*" shorthand to set io_alloc CBM for all domains
Date: Tue, 10 Feb 2026 16:07:15 -0500	[thread overview]
Message-ID: <20260210210717.3866344-1-atomlin@atomlin.com> (raw)

Hi Babu, Tony, Reinette,

This series addresses two limitations in the fs/resctrl io_alloc interface:
inconsistent error reporting and the lack of a mechanism for bulk
configuration.

The last_cmd_status file is intended to report details about the most
recent filesystem operation to aid in diagnosing failures. Currently,
however, when parsing io_alloc_cbm, providing an invalid domain ID causes
the operation to fail with -EINVAL without updating last_cmd_status. This
results in confusing behaviour where the system call fails, but the status
file may misleadingly report "ok" (retained from a previous successful
operation). Patch 1 addresses this by updating
resctrl_io_alloc_parse_line() to explicitly write an error message to
last_cmd_status when the target domain ID cannot be found.

Configuring the io_alloc_cbm interface currently requires an explicit
domain ID for each cache domain. On systems with high core counts and
numerous cache clusters, this requirement becomes cumbersome for automation
tasks that aim to apply a uniform policy across the system. Patch 2
introduces a wildcard domain ID selector "*". This enables users to
programme the Capacity Bitmask (CBM) across all cache domains in a single
operation (e.g., writing "*=0" to apply a mask to all domains), provided
the value remains within the valid range defined by the resource.

Please let me know your thoughts.


Changes since v4 [1]:

 - Split the submission into a two-patch series to separate the fix from
   the new feature (Reinette Chatre)

 - Refactored resctrl_io_alloc_parse_line() to prioritise the dom check
   before string comparison, preventing potential NULL pointer dereference
   (Reinette Chatre)

 - Restructured commit messages to strictly follow the "Context, Problem,
   Solution" format (Reinette Chatre)

 - Updated the documentation to include the result of the modification
   (Babu Moger)

 - Updated the commit description to avoid implying that '0' is a universal
   minimum CBM (Reinette Chatre)

Changes since v3 [2]:
 - Updated the wildcard documentation text to be clearer and less
   prescriptive (Reinette Chatre)

 - Reverted the while loop refactoring in resctrl_io_alloc_parse_line() to
   restore the standard parsing pattern and prevent invalid domain ID
   regressions (Reinette Chatre)

 - Added explicit validation to ensure the wildcard selector is followed by
   a value assignment (Reinette Chatre)

 - Restored memcpy() usage for configuration copying to minimise unrelated
   diff noise

Changes since v2 [2]:
 - Dropped return -EINVAL for a missing seq_show implementation
   (Reinette Chatre)
 - Dropped helpers to check io_alloc support and enabled state
   (Reinette Chatre)
 - Removed additional complexity (Babu Moger)
 - Introduced the "*" wildcard for io_alloc_cbm to allow updating all
   cache domains (Reinette Chatre)
 - Replaced goto-based line parsing with a while loop to support
   multi-domain and wildcard iterations
 - Replaced memcpy() with direct structure assignment

Changes since v1 [3]:
 - Updated each helper for consistency (Babu Moger)
 - Refactored the loop logic in function resctrl_io_alloc_parse_line()
   to improve readability
 - Added inline keyword to each helper
 - Added inline keyword to function parse_domain_cbm()

[1]: https://lore.kernel.org/lkml/20260125171752.3374930-1-atomlin@atomlin.com/
[2]: https://lore.kernel.org/lkml/20251231023549.2390630-1-atomlin@atomlin.com/
[3]: https://lore.kernel.org/lkml/20251215230257.1798865-1-atomlin@atomlin.com/
[4]: https://lore.kernel.org/lkml/20251126171653.1004321-1-atomlin@atomlin.com/

Aaron Tomlin (2):
  fs/resctrl: Report invalid domain ID when parsing io_alloc
  fs/resctrl: Add "*" shorthand to set io_alloc CBM for all domains

 Documentation/filesystems/resctrl.rst | 10 ++++++++++
 fs/resctrl/ctrlmondata.c              | 16 +++++++++++++---
 2 files changed, 23 insertions(+), 3 deletions(-)

-- 
2.51.0


             reply	other threads:[~2026-02-10 21:07 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-02-10 21:07 Aaron Tomlin [this message]
2026-02-10 21:07 ` [PATCH v5 1/2] fs/resctrl: Report invalid domain ID when parsing io_alloc Aaron Tomlin
2026-02-18 18:27   ` Reinette Chatre
2026-03-24 23:23     ` Aaron Tomlin
2026-02-10 21:07 ` [PATCH v5 2/2] fs/resctrl: Add "*" shorthand to set io_alloc CBM for all domains Aaron Tomlin
2026-02-18 18:30   ` Reinette Chatre
2026-03-24 23:53     ` Aaron Tomlin

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=20260210210717.3866344-1-atomlin@atomlin.com \
    --to=atomlin@atomlin.com \
    --cc=Dave.Martin@arm.com \
    --cc=babu.moger@amd.com \
    --cc=bp@alien8.de \
    --cc=chjohnst@gmail.com \
    --cc=dave.hansen@linux.intel.com \
    --cc=james.morse@arm.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mingo@redhat.com \
    --cc=mproche@gmail.com \
    --cc=neelx@suse.com \
    --cc=reinette.chatre@intel.com \
    --cc=sean@ashe.io \
    --cc=tglx@linutronix.de \
    --cc=tony.luck@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

Powered by JetHome