The Code and Data Prioritization (CDP) feature, as described in the previous article in this series, provides software-programmable control of code and data placement in the last-level cache (LLC). This enables isolation of code from data in cases where an application may have a large or streaming data footprint, for instance.
Several software packages support CDP, including the Linux* kernel, KVM, and the RDT Utility posted at 01.org. specifically:
- Linux kernel: The Linux kernel support for Cache Allocation Technology (CAT) also includes CDP. The latest patches are available here: https://github.com/fyu1/linux/tree/cat16.1.
- KVM: The KVM hypervisor is supported as part of the Linux kernel enabling.
- Xen: The Xen Hypervisor is planning to support CDP in version 4.7.
- RDT Utility: The RDT Utility at 01.org (Overview, GitHub*) provides support for all of the RDT features, including CDP. Command-line flags are provided to enable/disable and configure the feature, and the code is provided under the commercial-friendly BSD license.
Support for additional software is pending.
Example data showing the benefits of CDP will be published when available. Example benefits have been shown across a number of applications.
The CDP feature enables software control over code and data fills on the LLC, providing further software control for specialized use cases. Initial software support is described above and full documentation is available in the Intel Software Developer Manuals.