[PATCH v23 00/19] Add support for Sub-NUMA cluster (SNC) systems

Tony Luck posted 19 patches 1 year, 5 months ago
Documentation/arch/x86/resctrl.rst        |  27 ++
include/linux/resctrl.h                   |  88 ++++--
arch/x86/include/asm/msr-index.h          |   1 +
arch/x86/kernel/cpu/resctrl/internal.h    | 108 +++++---
arch/x86/kernel/cpu/resctrl/core.c        | 312 ++++++++++++++++------
arch/x86/kernel/cpu/resctrl/ctrlmondata.c |  89 +++---
arch/x86/kernel/cpu/resctrl/monitor.c     | 256 +++++++++++++++---
arch/x86/kernel/cpu/resctrl/pseudo_lock.c |  27 +-
arch/x86/kernel/cpu/resctrl/rdtgroup.c    | 281 ++++++++++++-------
9 files changed, 865 insertions(+), 324 deletions(-)
[PATCH v23 00/19] Add support for Sub-NUMA cluster (SNC) systems
Posted by Tony Luck 1 year, 5 months ago
This series based on top of tip x86/cache commit f385f0246394
("x86/resctrl: Replace open coded cacheinfo searches")

The Sub-NUMA cluster feature on some Intel processors partitions the CPUs
that share an L3 cache into two or more sets. This plays havoc with the
Resource Director Technology (RDT) monitoring features.  Prior to this
patch Intel has advised that SNC and RDT are incompatible.

Some of these CPUs support an MSR that can partition the RMID counters
in the same way. This allows monitoring features to be used. Legacy
monitoring files provide the sum of counters from each SNC node for
backwards compatibility. Additional  files per SNC node provide details
per node.

Memory bandwidth allocation features continue to operate at
the scope of the L3 cache.

L3 cache occupancy and allocation operate on the portion of
L3 cache available for each SNC node.

Signed-off-by: Tony Luck <tony.luck@intel.com>

---
Changes since v21: https://lore.kernel.org/all/20240627203856.66628-1-tony.luck@intel.com/

No net code changes (final version v23 == v22)

* Patch 9 split into two (9 & 10 in this series) Added Reinette's Reviewed-by tag to both.
* Added Reinette's Reviewed-by tag to parts 15 & 16 (were 14, 15 in v22)

Tony Luck (19):
  x86/resctrl: Prepare for new domain scope
  x86/resctrl: Prepare to split rdt_domain structure
  x86/resctrl: Prepare for different scope for control/monitor
    operations
  x86/resctrl: Split the rdt_domain and rdt_hw_domain structures
  x86/resctrl: Add node-scope to the options for feature scope
  x86/resctrl: Introduce snc_nodes_per_l3_cache
  x86/resctrl: Block use of mba_MBps mount option on Sub-NUMA Cluster
    (SNC) systems
  x86/resctrl: Prepare for new Sub-NUMA Cluster (SNC) monitor files
  x86/resctrl: Add a new field to struct rmid_read for summation of
    domains
  x86/resctrl: Initialize on-stack struct rmid_read instances
  x86/resctrl: Refactor mkdir_mondata_subdir() with a helper function
  x86/resctrl: Allocate a new field in union mon_data_bits
  x86/resctrl: Create Sub-NUMA Cluster (SNC) monitor files
  x86/resctrl: Handle removing directories in Sub-NUMA Cluster (SNC)
    mode
  x86/resctrl: Fill out rmid_read structure for smp_call*() to read a
    counter
  x86/resctrl: Make __mon_event_count() handle sum domains
  x86/resctrl: Enable shared RMID mode on Sub-NUMA Cluster (SNC) systems
  x86/resctrl: Sub-NUMA Cluster (SNC) detection
  x86/resctrl: Update documentation with Sub-NUMA cluster changes

 Documentation/arch/x86/resctrl.rst        |  27 ++
 include/linux/resctrl.h                   |  88 ++++--
 arch/x86/include/asm/msr-index.h          |   1 +
 arch/x86/kernel/cpu/resctrl/internal.h    | 108 +++++---
 arch/x86/kernel/cpu/resctrl/core.c        | 312 ++++++++++++++++------
 arch/x86/kernel/cpu/resctrl/ctrlmondata.c |  89 +++---
 arch/x86/kernel/cpu/resctrl/monitor.c     | 256 +++++++++++++++---
 arch/x86/kernel/cpu/resctrl/pseudo_lock.c |  27 +-
 arch/x86/kernel/cpu/resctrl/rdtgroup.c    | 281 ++++++++++++-------
 9 files changed, 865 insertions(+), 324 deletions(-)


base-commit: f385f024639431bec3e70c33cdbc9563894b3ee5
-- 
2.45.2
Re: [PATCH v23 00/19] Add support for Sub-NUMA cluster (SNC) systems
Posted by Moger, Babu 1 year, 5 months ago
Tested the series on AMD systems and ran few basic tests. Everything looks
good.  Thanks.

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


On 6/28/24 16:56, Tony Luck wrote:
> This series based on top of tip x86/cache commit f385f0246394
> ("x86/resctrl: Replace open coded cacheinfo searches")
> 
> The Sub-NUMA cluster feature on some Intel processors partitions the CPUs
> that share an L3 cache into two or more sets. This plays havoc with the
> Resource Director Technology (RDT) monitoring features.  Prior to this
> patch Intel has advised that SNC and RDT are incompatible.
> 
> Some of these CPUs support an MSR that can partition the RMID counters
> in the same way. This allows monitoring features to be used. Legacy
> monitoring files provide the sum of counters from each SNC node for
> backwards compatibility. Additional  files per SNC node provide details
> per node.
> 
> Memory bandwidth allocation features continue to operate at
> the scope of the L3 cache.
> 
> L3 cache occupancy and allocation operate on the portion of
> L3 cache available for each SNC node.
> 
> Signed-off-by: Tony Luck <tony.luck@intel.com>
> 
> ---
> Changes since v21: https://lore.kernel.org/all/20240627203856.66628-1-tony.luck@intel.com/
> 
> No net code changes (final version v23 == v22)
> 
> * Patch 9 split into two (9 & 10 in this series) Added Reinette's Reviewed-by tag to both.
> * Added Reinette's Reviewed-by tag to parts 15 & 16 (were 14, 15 in v22)
> 
> Tony Luck (19):
>   x86/resctrl: Prepare for new domain scope
>   x86/resctrl: Prepare to split rdt_domain structure
>   x86/resctrl: Prepare for different scope for control/monitor
>     operations
>   x86/resctrl: Split the rdt_domain and rdt_hw_domain structures
>   x86/resctrl: Add node-scope to the options for feature scope
>   x86/resctrl: Introduce snc_nodes_per_l3_cache
>   x86/resctrl: Block use of mba_MBps mount option on Sub-NUMA Cluster
>     (SNC) systems
>   x86/resctrl: Prepare for new Sub-NUMA Cluster (SNC) monitor files
>   x86/resctrl: Add a new field to struct rmid_read for summation of
>     domains
>   x86/resctrl: Initialize on-stack struct rmid_read instances
>   x86/resctrl: Refactor mkdir_mondata_subdir() with a helper function
>   x86/resctrl: Allocate a new field in union mon_data_bits
>   x86/resctrl: Create Sub-NUMA Cluster (SNC) monitor files
>   x86/resctrl: Handle removing directories in Sub-NUMA Cluster (SNC)
>     mode
>   x86/resctrl: Fill out rmid_read structure for smp_call*() to read a
>     counter
>   x86/resctrl: Make __mon_event_count() handle sum domains
>   x86/resctrl: Enable shared RMID mode on Sub-NUMA Cluster (SNC) systems
>   x86/resctrl: Sub-NUMA Cluster (SNC) detection
>   x86/resctrl: Update documentation with Sub-NUMA cluster changes
> 
>  Documentation/arch/x86/resctrl.rst        |  27 ++
>  include/linux/resctrl.h                   |  88 ++++--
>  arch/x86/include/asm/msr-index.h          |   1 +
>  arch/x86/kernel/cpu/resctrl/internal.h    | 108 +++++---
>  arch/x86/kernel/cpu/resctrl/core.c        | 312 ++++++++++++++++------
>  arch/x86/kernel/cpu/resctrl/ctrlmondata.c |  89 +++---
>  arch/x86/kernel/cpu/resctrl/monitor.c     | 256 +++++++++++++++---
>  arch/x86/kernel/cpu/resctrl/pseudo_lock.c |  27 +-
>  arch/x86/kernel/cpu/resctrl/rdtgroup.c    | 281 ++++++++++++-------
>  9 files changed, 865 insertions(+), 324 deletions(-)
> 
> 
> base-commit: f385f024639431bec3e70c33cdbc9563894b3ee5

-- 
Thanks
Babu Moger
RE: [PATCH v23 00/19] Add support for Sub-NUMA cluster (SNC) systems
Posted by Luck, Tony 1 year, 5 months ago
> Tested the series on AMD systems and ran few basic tests. Everything looks
> good.  Thanks.
>
> Tested-by: Babu Moger <babu.moger@amd.com>

Babu: Thanks a ton for testing.

Boris: All parts have Reinette's "Reviewed-by:" tags (except 9 where she is co-author).

Is -rc6 too late for inclusion this cycle?

-Tony