]> git.ipfire.org Git - thirdparty/kernel/linux.git/commit
x86/resctrl: Add data structures and definitions for ABMC assignment
authorBabu Moger <babu.moger@amd.com>
Fri, 5 Sep 2025 21:34:13 +0000 (16:34 -0500)
committerBorislav Petkov (AMD) <bp@alien8.de>
Mon, 15 Sep 2025 10:17:33 +0000 (12:17 +0200)
commit84ecefb766748916099f5b7444a973a623611d63
tree780b1940e19d2f92abad0a60f3ade769892217aa
parent16ff6b038fb3b64aa033efdc95d673239610e1a6
x86/resctrl: Add data structures and definitions for ABMC assignment

The ABMC feature allows users to assign a hardware counter to an RMID,
event pair and monitor bandwidth usage as long as it is assigned. The
hardware continues to track the assigned counter until it is explicitly
unassigned by the user.

The ABMC feature implements an MSR L3_QOS_ABMC_CFG (C000_03FDh).
ABMC counter assignment is done by setting the counter id, bandwidth
source (RMID) and bandwidth configuration.

Attempts to read or write the MSR when ABMC is not enabled will result
in a #GP(0) exception.

Introduce the data structures and definitions for MSR L3_QOS_ABMC_CFG
(0xC000_03FDh):
=========================================================================
Bits  Mnemonic Description Access Reset
Type   Value
=========================================================================
63  CfgEn  Configuration Enable  R/W  0

62  CtrEn  Enable/disable counting R/W  0

61:53  –  Reserved  MBZ  0

52:48  CtrID  Counter Identifier R/W 0

47  IsCOS BwSrc field is a CLOSID R/W 0
(not an RMID)

46:44  – Reserved MBZ 0

43:32 BwSrc Bandwidth Source R/W 0
(RMID or CLOSID)

31:0 BwType Bandwidth configuration R/W 0
tracked by the CtrID
==========================================================================

The ABMC feature details are documented in APM [1] available from [2].
[1] AMD64 Architecture Programmer's Manual Volume 2: System Programming
Publication # 24593 Revision 3.41 section 19.3.3.3 Assignable Bandwidth
Monitoring (ABMC).

  [ bp: Touchups. ]

Signed-off-by: Babu Moger <babu.moger@amd.com>
Signed-off-by: Borislav Petkov (AMD) <bp@alien8.de>
Reviewed-by: Reinette Chatre <reinette.chatre@intel.com>
Link: https://lore.kernel.org/cover.1757108044.git.babu.moger@amd.com
Link: https://bugzilla.kernel.org/show_bug.cgi?id=206537
arch/x86/include/asm/msr-index.h
arch/x86/kernel/cpu/resctrl/internal.h