Speaker
Description
The CXL specification defines a Component Performance Monitoring Unit (CPMU) register interface for performance monitoring of CXL devices. The Linux kernel includes a CPMU driver that exposes an interface to collect hardware events from CXL memory devices through the perf subsystem.
The current driver supports poll-based event counting using perf stat , providing events such as clock ticks, DDR CAS read/write counts, and CXL M2S/S2M protocol events. However, interrupt-based sampling is not implemented — the CPMU capability register defines interrupt support in the CXL spec, but the kernel driver does not utilize it. As a result, perf top and other sampling-based tools are not available.
This talk gives an overview of the current CPMU driver implementation, its usage with the perf tool, and the limitations encountered. We also look at how CPMUs relate to standard DRAM profiling with uncore PMUs and EDAC. We discuss adding interrupt support and extending CPMU discovery beyond CXL endpoint devices to root ports and switch ports.