Hi Babu, Tony, Reinette,
This patch introduces a wildcard domain ID selector "*" for the
io_alloc_cbm interface. It allows a user to update the Capacity Bitmask
(CBM) across all cache domains in a single operation.
Currently, configuring io_alloc_cbm requires an explicit ID for each
domain, which is cumbersome on systems with high core counts and numerous
cache clusters. Supporting a wildcard selector simplifies automation and
management tasks.
For example, a user can now write "*=0" to the io_alloc_cbm file to program
every domain to the hardware-defined minimum CBM. Note that the value
provided must still adhere to the constraints defined in the resource's
min_cbm_bits.
Please let me know your thoughts.
Changes since v3 [1]:
- 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/20251231023549.2390630-1-atomlin@atomlin.com/
[2]: https://lore.kernel.org/lkml/20251215230257.1798865-1-atomlin@atomlin.com/
[3]: https://lore.kernel.org/lkml/20251126171653.1004321-1-atomlin@atomlin.com/
Aaron Tomlin (1):
x86/resctrl: Add "*" shorthand to set io_alloc CBM for all domains
Documentation/filesystems/resctrl.rst | 8 ++++++++
fs/resctrl/ctrlmondata.c | 20 +++++++++++++++++---
2 files changed, 25 insertions(+), 3 deletions(-)
--
2.51.0