Introduction
This article describes software support available for the Memory Bandwidth Monitoring (MBM) feature. Prior blogs in this series have included an overview of the MBM feature and architecture and usage models, and detailed examples of proof points.
MBM is part of a larger series of technologies called Intel® Resource Director Technology (Intel® RDT). More information on the Intel RDT feature set can be found here, and an animation illustrating the key principles behind Intel RDT is posted here.
MBM Software Support
Two approaches are possible for software enabling of the monitoring features: either pinning RMIDs to hardware threads then affinitizing applications to those threads, or enabling the OS/VMM scheduler, which then keeps Resource Monitoring IDs (RMIDs) up to date on threads at swap-on, enabling threads to migrate and provides better flexibility.
A number of operating systems/VMMs have been enabled to support MBM via scheduler and infrastructure changes, including the Linux* kernel (support is trending into version 4.6-rc1). Specific examples include the following:
- The Xen* Hypervisor version 4.6 will include support for MBM, building on the CMT support added in 4.5.
- The Linux scheduler and Linux Perf utility support MBM.
- Patches are available at Kernel.org.
- The new MBM event codes are supported via additional event types.
- The Linux kernel team has pulled these patches into version 4.6-rc1.
- The Intel® Performance Counter Monitor.
The Intel® Resource Director Technology utility (and GitHub*) also provides real-time monitoring metrics for CMT and MBM, and the utility works with generic Linux* operating systems and the read/write Model-Specific Register Tools package to provide per-thread monitoring and control via associating RMIDs and Classes of Service (CLOS) with each hardware thread. An example of the output of this utility is shown in the proof points article.
Conclusion
This article provided an overview of initial software support for the MBM feature. Additional software support work is in progress, and updates will be posted as they are available.
Prior articles in this series include details including an overview of the MBM feature and architecture and usage models, and detailed examples of proof points.