Skip to content
mdcornu edited this page May 22, 2018 · 22 revisions

Welcome to the intel-cmt-cat wiki!

Overview

This software package provides support for Intel(R) Resource Director Technology: Cache Monitoring Technology (CMT), Memory Bandwidth Monitoring (MBM), Cache Allocation Technology (CAT), Code and Data Prioritization (CDP) and Memory Bandwidth Allocation (MBA).

Intel(R) RDT provides the hardware framework to monitor and manage shared CPU resources, like cache and memory bandwidth. An increase in the number of workloads running simultaneously on a system increases pressure on shared CPU resources resulting in lower performance determinism. Intel(R) RDT technologies can monitor and control the allocation of key shared system resources to help improve determinism.

OS Support

Linux is the primary supported operating system at the moment. There is a FreeBSD port of the software but due to limited validation scope it is rather experimental at this stage.
Although most modern Linux kernels include support for Intel(R) RDT, the intel-cmt-cat software package predates these extensions and can operate with and without kernel support. The intel-cmt-cat software can detect and leverage these kernel extensions when available to add functionality, but is also compatible with legacy kernels.

OS Frameworks

Linux kernel support for Intel(R) RDT was originally introduced with Linux perf system call extensions for CMT and MBM. More recently, the Resctrl interface added support for CAT, CDP and MBA. On modern Linux kernels, it is advised to use the kernel/OS interface when available. Details about these interfaces can be found in intel_rdt_ui.txt. This software package, intel-cmt-cat, remains to work seamlessly in all Linux kernel versions.

intel-cmt-cat interfaces

The intel-cmt-cat software library and utilities offer two interfaces to program Intel(R) RDT technologies, these are the MSR & OS interfaces.

The MSR interface is used to configure the platform by programming the hardware (MSR's) directly. This is the legacy interface and requires no kernel support but is limited to monitoring and managing resources on a per core basis.

The OS interface was later added to the package and when selected, the library will leverage Linux kernel extensions to program these technologies. This allows monitoring and managing resources on a per core/process basis and should be used when available.

Please see the tables below for more information on when Intel(R) RDT feature (MSR & OS) support was added to the package.

MSR interface feature support:

intel-cmt-cat version RDT feature enabled Kernel version required
0.1.3 L3 CAT, CMT, MBM Any
0.1.4 L3 CDP Any
0.1.5 L2 CAT Any
1.2.0 MBA Any
2.0.0 L2 CDP Any

OS interface feature support:

intel-cmt-cat version RDT feature enabled Kernel version required Recommended interface
0.1.4 CMT (Perf) 4.1 MSR (1)
1.0.0 MBM (Perf) 4.7 MSR (1)
1.1.0 L3 CAT, L3 CDP, L2 CAT (Resctrl) 4.10 OS for allocation only (with the exception of MBA)
MSR for allocation + monitoring (2)
1.2.0 MBA (Resctrl) 4.12 OS for allocation only
MSR for allocation + monitoring (2)
2.0.0 CMT, MBM (Resctrl) 4.14 OS
2.0.0 L2 CDP 4.16 OS
  1. Monitoring with Perf on a per core basis is not supported and returns invalid results.
  2. The MSR and OS interfaces are not compatible. MSR interface is recommended if monitoring and allocation is to be used.

Software dependencies

The only dependencies of intel-cmt-cat is access to C and pthreads libraries and:

  • without kernel extensions - 'msr' kernel module
  • with kernel extensions - Intel(R) RDT extended Perf system call and Resctrl filesystem

Enabling Intel(R) RDT support in the Linux kernel

Intel(R) RDT kernel support can be enabled using kernel configuration options.
For example:

  • enable kernel v4.10 - v4.13 with configuration option CONFIG_INTEL_RDT_A
  • enable kernel v4.14+ with configuration option CONFIG_INTEL_RDT
  • Note: no kernel configuration options required before v4.10.

Individual Intel(R) RDT features can be enabled/disabled by passing kernel command line parameters at boot.

For example, to turn on CMT and turn off MBA, add the following to your kernel command line:
rdt=cmt,!mba

The full list of parameters is:
cmt, mbmtotal, mbmlocal, l3cat, l3cdp, l2cat, l2cdp, mba

For more information, visit our other wiki pages:

Clone this wiki locally