[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-ID: <20241122235832.27498-1-tony.luck@intel.com>
Date: Fri, 22 Nov 2024 15:58:24 -0800
From: Tony Luck <tony.luck@...el.com>
To: Fenghua Yu <fenghua.yu@...el.com>,
Reinette Chatre <reinette.chatre@...el.com>,
Peter Newman <peternewman@...gle.com>,
Jonathan Corbet <corbet@....net>,
x86@...nel.org
Cc: James Morse <james.morse@....com>,
Jamie Iles <quic_jiles@...cinc.com>,
Babu Moger <babu.moger@....com>,
Randy Dunlap <rdunlap@...radead.org>,
"Shaopeng Tan (Fujitsu)" <tan.shaopeng@...itsu.com>,
linux-kernel@...r.kernel.org,
linux-doc@...r.kernel.org,
patches@...ts.linux.dev,
Tony Luck <tony.luck@...el.com>
Subject: [PATCH v10 0/8] x86/resctrl: mba_MBps enhancement
Background
----------
The resctrl filesystem supports a mount option that allows users to
specify a memory bandwidth limit in MiB/s for each domain of a CTRL_MON
group. The underlying implementation uses data collected from the local
memory bandwidth monitoring event for the CTRL_MON group and all of
its MON subgroups as input to a feedback loop that adjusts the memory
bandwidth allocation control percentage up or down to keep the group
within the limit set by the user.
Problem statement
-----------------
Hard coding the local memory bandwidth monitoring event has the following
issues:
1) Some systems may support total memory bandwidth monitoring but
not local. The user cannot use this mount option on such systems.
2) For large workloads that span NUMA domains using local bandwidth
monitoring will not throttle jobs correctly.
3) Users may have a mix of large and small workloads and may want to
use different input events per CTRL_MON group.
Solution
--------
A) Provide a new user interface to choose which event is used for each
CTRL_MON group.
B) Allow systems that only support total memory bandwidth monitoring to
use total bandwidth event.
Changes since v9
Link: https://lore.kernel.org/all/20241114001712.80315-1-tony.luck@intel.com/
Globally s/ctrl_mon/CTRL_MON/ in commit comments.
Patch Change
1 * Moved "Reviewed-by:" tag after Signed-off-by tags
* Added comment that I dropped the __init attribute that
was in Babu's original patch
2 * More detail in commit comment
* Added block comment above definition of mba_mbps_default_event
global variable
* Fixed bug reported by Reinette that changes to event used
for default group persist across unmount/mount. Did this
by moving initialization from rdtgroup_setup_default to
set_mba_sc() to catch both mount and unmount.
3 * Write commit commemt with problem & fix sections
* Add note to commit comment that check for is_mbm_local_enabled()
is deleted by this patch.
* Delete redundant check of is_mbm_local_enabled()
4 * Write commit commemt with problem & fix sections
* Reword legacy comment to avoid "we".
5 * Merged old patch 9 into this patch
* Write commit commemt with problem & fix sections
6 * Remove "historical" paragraph from commit comment
* Add note that "mba_MBps_event" file is only visible
when the "mba_MBps" mount option is in use.
7 * Remove "historical" paragraph from commit comment
8 * No change
Signed-off-by: Tony Luck <tony.luck@...el.com>
Babu Moger (1):
x86/resctrl: Introduce resctrl_file_fflags_init() to initialize fflags
Tony Luck (7):
x86/resctrl: Prepare for per-CTRL_MON group mba_MBps control
x86/resctrl: Modify update_mba_bw() to use per CTRL_MON group event
x86/resctrl: Compute memory bandwidth for all supported events
x86/resctrl: Make mba_sc use total bandwidth if local is not supported
x86/resctrl: Add "mba_MBps_event" file to CTRL_MON directories
x86/resctrl: Add write option to "mba_MBps_event" file
x86/resctrl: Document the new "mba_MBps_event" file
Documentation/arch/x86/resctrl.rst | 10 +++
include/linux/resctrl.h | 2 +
arch/x86/kernel/cpu/resctrl/internal.h | 9 ++-
arch/x86/kernel/cpu/resctrl/core.c | 9 ++-
arch/x86/kernel/cpu/resctrl/ctrlmondata.c | 70 +++++++++++++++++
arch/x86/kernel/cpu/resctrl/monitor.c | 94 +++++++++++------------
arch/x86/kernel/cpu/resctrl/rdtgroup.c | 45 +++++++----
7 files changed, 173 insertions(+), 66 deletions(-)
base-commit: adc218676eef25575469234709c2d87185ca223a
--
2.47.0
Powered by blists - more mailing lists