Introduction
PathFinder is a systematic, informative, and lightweight CXL.mem profiler. PathFinder leverages the capabilities of existing hardware performance monitors (PMUs) and dissects the CXL.mem protocol at adequate granularities.
Preparation
Check Kernel Version
Kernel version > 6.5.0
-
Check perf support: machine model should exist in
tools/perf/pmu-events/arch/x86
-
Check CHA PMU support for CXL path:
- Automatically supported starting from v6.11-rc1 kernel
- Or patch with:
https://github.com/torvalds/linux/commit/a5a6ff3d639d088d4af7e2935e1ee0d8b4e817d4
Getting Started
Install Dependencies
Required Python libraries are listed in requirements.txt
Detecting and Verifying PMU Topology
Run the following command:
python3 analyse/detectTopo.py
This will automatically detect socket, CPU, and PMU topology
and write the configuration to the file analyse/archconf.conf
.
You may also manually modify the contents of this configuration file.
Subsequent steps will use it to determine which PMUs to monitor along the CXL.mem path.
Next set the path of PathFinder and perf in this file:
analyse/config.conf
Optional: Install InfluxDB to Record Data
Installing a database enables support for historical data analysis.
If you choose not to install one, online analysis of counter data is still available.
Once InfluxDB is running, set the address and port in the configuration file:
analyse/config.conf