All of lore.kernel.org
 help / color / mirror / Atom feed
From: Babu Moger <babu.moger@amd.com>
To: <corbet@lwn.net>, <tony.luck@intel.com>,
	<reinette.chatre@intel.com>, <tglx@kernel.org>,
	<mingo@redhat.com>, <bp@alien8.de>, <dave.hansen@linux.intel.com>
Cc: <skhan@linuxfoundation.org>, <x86@kernel.org>,
	<Dave.Martin@arm.com>, <james.morse@arm.com>,
	<babu.moger@amd.com>, <hpa@zytor.com>,
	<akpm@linux-foundation.org>, <rdunlap@infradead.org>,
	<dapeng1.mi@linux.intel.com>, <kees@kernel.org>,
	<elver@google.com>, <lirongqing@baidu.com>, <ebiggers@kernel.org>,
	<paulmck@kernel.org>, <seanjc@google.com>,
	<pawan.kumar.gupta@linux.intel.com>, <nikunj@amd.com>,
	<yazen.ghannam@amd.com>, <peterz@infradead.org>,
	<chang.seok.bae@intel.com>, <kim.phillips@amd.com>,
	<thomas.lendacky@amd.com>, <naveen@kernel.org>,
	<elena.reshetova@intel.com>, <xin@zytor.com>,
	<linux-doc@vger.kernel.org>, <linux-kernel@vger.kernel.org>,
	<eranian@google.com>, <peternewman@google.com>
Subject: [PATCH v2 0/8] x86/resctrl: Support for AMD Global (Slow) Memory Bandwidth Allocation
Date: Fri, 24 Apr 2026 01:41:30 +0000	[thread overview]
Message-ID: <cover.1776980182.git.babu.moger@amd.com> (raw)


This series adds resctrl support for two new AMD memory-bandwidth
allocation features:

  - GMBA  - Global Memory Bandwidth Allocation (hardware name: GLBE).
            Bounds DRAM bandwidth for groups of threads that span
            multiple L3 QoS domains, rather than being per-L3 like MBA.

  - GSMBA - Global Slow Memory Bandwidth Allocation (hardware name:
            GLSBE). The CXL.memory / slow-memory counterpart of GMBA,
            analogous to how SMBA relates to MBA.

Both features share a new "NPS-node" control domain: a set of QoS (L3)
domains grouped together and aligned to the system's NPS (Nodes Per
Socket) BIOS configuration. Although the control domain is NPS-scoped,
the underlying bandwidth-limit MSRs (MSR_IA32_GMBA_BW_BASE 0xc0000600,
MSR_IA32_GSMBA_BW_BASE 0xc0000680) are instantiated per L3. Programming
a single control domain therefore requires writing the MSR on one CPU
per L3 that the domain spans - a new pattern for resctrl. Patches 2/8
and 3/8 introduce that infrastructure so the new resources can reuse
it.

The features are documented in:

  AMD64 Zen6 Platform Quality of Service (PQOS) Extensions,
  Publication # 69193 Revision 1.00, Issue Date March 2026

available at https://bugzilla.kernel.org/show_bug.cgi?id=206537

Series overview
---------------

Patches 1-5 to enable GMBA:

  1/8  x86,fs/resctrl: Add support for Global Bandwidth Enforcement (GLBE)

  2/8  x86/resctrl: Add RESCTRL_NPS_NODE scope for AMD NPS-aligned domains
       Add a new ctrl_scope value for resctrl resources whose control
       domain spans multiple L3s within an NPS node.

  3/8  x86/resctrl: Update control MSRs per L3 for NPS-scoped resources
       Add resctrl_arch_update_nps(): builds a cpumask with one CPU per
       distinct L3 in the domain, then issues rdt_ctrl_update() via
       smp_call_function_many() on that mask. Falls back to the full
       domain mask if the scratch masks cannot be built. Route
       resctrl_arch_update_domains() and resctrl_arch_reset_all_ctrls()
       through this helper when ctrl_scope == RESCTRL_NPS_NODE.

  4/8  x86,fs/resctrl: Add the resource for Global Memory Bandwidth Allocation
       Register RDT_RESOURCE_GMBA in rdt_resources_all[] with
       ctrl_scope=RESCTRL_NPS_NODE and schema_fmt=RANGE, add commands to
       discover feature details.

  5/8  fs/resctrl: Add the documentation for Global Memory Bandwidth Allocation
       Add examples in Documentation/filesystems/resctrl.rst.

Patches 6-8 to enable GSMBA in the same shape:

  6/8  x86,fs/resctrl: Add support for Global Slow Memory Bandwidth Allocation

  7/8  x86,fs/resctrl: Add the resource for Global Slow Memory Bandwidth Allocation
       Register RDT_RESOURCE_GSMBA with ctrl_scope=RESCTRL_NPS_NODE.

  8/8  fs/resctrl: Add the documentation for Global Slow Memory Bandwidth Allocation
       Add examples in Documentation/filesystems/resctrl.rst.

Changes since v1
----------------
  - Earlier sent RFC(v1) with Global Bandwidth Enforcement (GLBE) and
    Privilege Level Zero Association (PLZA). This series only handles
    Global Memory Bandwidth Allocation. Both the features are sent separately.

  - Documentation
      * Fixed grammar in the GMBA / GSMBA sections of resctrl.rst.
      * Added examples to update GMBA and GSMBA in resctrl.rst documentation.

  - Major changes are releated to RESCTRL_NPS_NODE scope handling.

  - Commit messages
      * Reworked the changelogs in all the patches.

Previous Revisions:
v1 : https://lore.kernel.org/lkml/cover.1769029977.git.babu.moger@amd.com/
---

base-commit: 216fe4b3e06754e73c79a88b1df7e9806e41f29d

Signed-off-by: Babu Moger <babu.moger@amd.com>

Babu Moger (8):
  x86,fs/resctrl: Add support for Global Bandwidth Enforcement (GLBE)
  x86/resctrl: Add RESCTRL_NPS_NODE scope for AMD NPS-aligned domains
  x86/resctrl: Update control MSRs per L3 for NPS-scoped resources
  x86,fs/resctrl: Add the resource for Global Bandwidth Allocation
  fs/resctrl: Add the documentation for Global Memory Bandwidth
    Allocation
  x86,fs/resctrl: Add support for Global Slow Memory Bandwidth
    Allocation
  x86,fs/resctrl: Add the resource for Global Slow Memory Bandwidth
    Allocation
  fs/resctrl: Add the documentation for Global Slow Memory Bandwidth
    Allocation

 .../admin-guide/kernel-parameters.txt         |   2 +-
 Documentation/filesystems/resctrl.rst         |  81 ++++++++++++++
 arch/x86/include/asm/cpufeatures.h            |   3 +-
 arch/x86/include/asm/msr-index.h              |   2 +
 arch/x86/kernel/cpu/resctrl/core.c            | 101 +++++++++++++++++-
 arch/x86/kernel/cpu/resctrl/ctrlmondata.c     |  90 +++++++++++++++-
 arch/x86/kernel/cpu/resctrl/internal.h        |   1 +
 arch/x86/kernel/cpu/resctrl/rdtgroup.c        |  15 ++-
 arch/x86/kernel/cpu/scattered.c               |   2 +
 fs/resctrl/ctrlmondata.c                      |   5 +-
 fs/resctrl/rdtgroup.c                         |  25 ++++-
 include/linux/resctrl.h                       |   3 +
 12 files changed, 313 insertions(+), 17 deletions(-)

-- 
2.43.0


             reply	other threads:[~2026-04-24  1:41 UTC|newest]

Thread overview: 18+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-04-24  1:41 Babu Moger [this message]
2026-04-24  1:41 ` [PATCH v2 1/8] x86,fs/resctrl: Add support for Global Bandwidth Enforcement (GLBE) Babu Moger
2026-04-24  1:41 ` [PATCH v2 2/8] x86/resctrl: Add RESCTRL_NPS_NODE scope for AMD NPS-aligned domains Babu Moger
2026-04-28 10:16   ` Peter Newman
2026-04-28 23:27     ` Moger, Babu
2026-04-24  1:41 ` [PATCH v2 3/8] x86/resctrl: Update control MSRs per L3 for NPS-scoped resources Babu Moger
2026-04-24  1:41 ` [PATCH v2 4/8] x86,fs/resctrl: Add the resource for Global Bandwidth Allocation Babu Moger
2026-04-24  1:41 ` [PATCH v2 5/8] fs/resctrl: Add the documentation for Global Memory " Babu Moger
2026-04-24  1:41 ` [PATCH v2 6/8] x86,fs/resctrl: Add support for Global Slow " Babu Moger
2026-04-24  1:41 ` [PATCH v2 7/8] x86,fs/resctrl: Add the resource " Babu Moger
2026-04-24  1:41 ` [PATCH v2 8/8] fs/resctrl: Add the documentation " Babu Moger
2026-04-29 22:34 ` [PATCH v2 0/8] x86/resctrl: Support for AMD Global (Slow) " Reinette Chatre
2026-04-30 23:04   ` Moger, Babu
2026-04-30 23:40     ` Reinette Chatre
2026-05-01 14:38       ` Moger, Babu
2026-05-15 15:31         ` Moger, Babu
2026-05-15 16:35           ` Reinette Chatre
2026-05-15 18:52             ` 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=cover.1776980182.git.babu.moger@amd.com \
    --to=babu.moger@amd.com \
    --cc=Dave.Martin@arm.com \
    --cc=akpm@linux-foundation.org \
    --cc=bp@alien8.de \
    --cc=chang.seok.bae@intel.com \
    --cc=corbet@lwn.net \
    --cc=dapeng1.mi@linux.intel.com \
    --cc=dave.hansen@linux.intel.com \
    --cc=ebiggers@kernel.org \
    --cc=elena.reshetova@intel.com \
    --cc=elver@google.com \
    --cc=eranian@google.com \
    --cc=hpa@zytor.com \
    --cc=james.morse@arm.com \
    --cc=kees@kernel.org \
    --cc=kim.phillips@amd.com \
    --cc=linux-doc@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=lirongqing@baidu.com \
    --cc=mingo@redhat.com \
    --cc=naveen@kernel.org \
    --cc=nikunj@amd.com \
    --cc=paulmck@kernel.org \
    --cc=pawan.kumar.gupta@linux.intel.com \
    --cc=peternewman@google.com \
    --cc=peterz@infradead.org \
    --cc=rdunlap@infradead.org \
    --cc=reinette.chatre@intel.com \
    --cc=seanjc@google.com \
    --cc=skhan@linuxfoundation.org \
    --cc=tglx@kernel.org \
    --cc=thomas.lendacky@amd.com \
    --cc=tony.luck@intel.com \
    --cc=x86@kernel.org \
    --cc=xin@zytor.com \
    --cc=yazen.ghannam@amd.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.