public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: Tony Luck <tony.luck@intel.com>
To: Fenghua Yu <fenghua.yu@intel.com>,
	Reinette Chatre <reinette.chatre@intel.com>,
	Peter Newman <peternewman@google.com>,
	Jonathan Corbet <corbet@lwn.net>,
	x86@kernel.org
Cc: James Morse <james.morse@arm.com>,
	Jamie Iles <quic_jiles@quicinc.com>,
	Babu Moger <babu.moger@amd.com>,
	Randy Dunlap <rdunlap@infradead.org>,
	"Shaopeng Tan (Fujitsu)" <tan.shaopeng@fujitsu.com>,
	linux-kernel@vger.kernel.org, linux-doc@vger.kernel.org,
	patches@lists.linux.dev, Tony Luck <tony.luck@intel.com>
Subject: [PATCH v11 0/8] x86/resctrl: mba_MBps enhancement
Date: Fri,  6 Dec 2024 08:31:40 -0800	[thread overview]
Message-ID: <20241206163148.83828-1-tony.luck@intel.com> (raw)

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 v10:
Link: https://lore.kernel.org/all/20241122235832.27498-1-tony.luck@intel.com/

Patch	Change
-----	------

2	s/filesystm/filesystem/
	Reformat block comment above definition of mba_mbps_default_event using
	more of 80 column width

3	s/Update_mba_bw()/update_mba_bw()

Added Reinette's Reviewed-by tag to parts 2-8

N.B. v6.13-rc1 introduced a locking change in commit f1be1788a32e ("block:
model freeze & enter queue as lock for supporting lockdep") that throws
a lockdep splat when mounting the resctrl filesystem (with certain
CONFIG options).

Proposed patches that fix this are here:
Link: https://lore.kernel.org/all/20241206111611.978870-2-ming.lei@redhat.com/
Link: https://lore.kernel.org/all/20241206111611.978870-3-ming.lei@redhat.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    | 43 +++++++----
 7 files changed, 171 insertions(+), 66 deletions(-)


base-commit: 40384c840ea1944d7c5a392e8975ed088ecf0b37
-- 
2.47.0


             reply	other threads:[~2024-12-06 16:31 UTC|newest]

Thread overview: 31+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-12-06 16:31 Tony Luck [this message]
2024-12-06 16:31 ` [PATCH v11 1/8] x86/resctrl: Introduce resctrl_file_fflags_init() to initialize fflags Tony Luck
2024-12-13 21:02   ` [tip: x86/cache] " tip-bot2 for Babu Moger
2024-12-06 16:31 ` [PATCH v11 2/8] x86/resctrl: Prepare for per-CTRL_MON group mba_MBps control Tony Luck
2024-12-09 20:45   ` Borislav Petkov
2024-12-09 22:05     ` Luck, Tony
2024-12-09 22:20       ` Borislav Petkov
2024-12-09 22:35         ` Luck, Tony
2024-12-09 23:40           ` Reinette Chatre
2024-12-10  0:00             ` Luck, Tony
2024-12-10 10:13               ` Borislav Petkov
2024-12-10 18:42                 ` Reinette Chatre
2024-12-10 18:59                   ` Borislav Petkov
2024-12-13 21:02   ` [tip: x86/cache] " tip-bot2 for Tony Luck
2024-12-06 16:31 ` [PATCH v11 3/8] x86/resctrl: Modify update_mba_bw() to use per CTRL_MON group event Tony Luck
2024-12-13 21:02   ` [tip: x86/cache] " tip-bot2 for Tony Luck
2024-12-06 16:31 ` [PATCH v11 4/8] x86/resctrl: Compute memory bandwidth for all supported events Tony Luck
2024-12-13 21:02   ` [tip: x86/cache] " tip-bot2 for Tony Luck
2024-12-06 16:31 ` [PATCH v11 5/8] x86/resctrl: Make mba_sc use total bandwidth if local is not supported Tony Luck
2024-12-13 21:02   ` [tip: x86/cache] " tip-bot2 for Tony Luck
2024-12-06 16:31 ` [PATCH v11 6/8] x86/resctrl: Add "mba_MBps_event" file to CTRL_MON directories Tony Luck
2024-12-13 21:02   ` [tip: x86/cache] " tip-bot2 for Tony Luck
2024-12-06 16:31 ` [PATCH v11 7/8] x86/resctrl: Add write option to "mba_MBps_event" file Tony Luck
2024-12-13 21:02   ` [tip: x86/cache] " tip-bot2 for Tony Luck
2024-12-06 16:31 ` [PATCH v11 8/8] x86/resctrl: Document the new " Tony Luck
2024-12-13 21:02   ` [tip: x86/cache] " tip-bot2 for Tony Luck
2024-12-09 17:10 ` [PATCH v11 0/8] x86/resctrl: mba_MBps enhancement Reinette Chatre
2024-12-09 17:28   ` Borislav Petkov
2024-12-09 17:53     ` Luck, Tony
2024-12-09 17:57       ` Borislav Petkov
2024-12-09 19:15         ` Moger, Babu

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=20241206163148.83828-1-tony.luck@intel.com \
    --to=tony.luck@intel.com \
    --cc=babu.moger@amd.com \
    --cc=corbet@lwn.net \
    --cc=fenghua.yu@intel.com \
    --cc=james.morse@arm.com \
    --cc=linux-doc@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=patches@lists.linux.dev \
    --cc=peternewman@google.com \
    --cc=quic_jiles@quicinc.com \
    --cc=rdunlap@infradead.org \
    --cc=reinette.chatre@intel.com \
    --cc=tan.shaopeng@fujitsu.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