Skip to content

Releases: intel/pcm

202509 Release

12 Sep 13:12
10f6b5e
Compare
Choose a tag to compare

Release Notes

New Features

  • pcm-iio: enable the tool on Icelake-D Xeon by adding event opCode file (@antonovalexnn)
  • pcm-power: implement csv output
  • pcm-iio: add date/time to csv output
  • scripts: add topotop for visualizing cpu/membw/upi usage (@askervin)

Improvements

  • install Intel perfmon event database (also in PCM rpm)
  • pcm-raw: support second OCR (offcore-response) counter on Intel Atom/E-core
  • pcm-pcie: allow core offlining on select Intel processor generations
  • pcm-raw: implement -? option to print all Intel event descriptions
  • support 1 bit in short notation: -b 1 instead of -b 1:1 (@ogbrugge-work)
  • pcm: allow core 0 to be offlined (@144026)
  • don't fail if PCIe PMU discovery table is corrupt, produce BIOS table bug report instead
  • Grafana dashboard: don't display UPI panels if there no Intel UPI links detected
  • pcm-iio: add documentation
  • pcm-memory: implement --nocxl option
  • documentation updates (@s-h-a-d-o-w)
  • pcm-accel: update documentation
  • pcm-raw: add option to select first record in Intel PMT db match result
  • pcm-bw-histogram.sh: expect pcm-memory to reside in same folder, rather than ./ (@tomcucinotta)
  • drop pcm-lspci, replaced by pcm-iio -list (@antonovalexnn)
  • implement pcicfg device availability check for msr.sys
  • add IAA accelerator membar check quirk for Windows
  • add L3 shared cache info

Fixes

  • fix DRAM energy unit on Intel Xeon 6 Granite Rapids/Sierra Forest/Grand Ridge
  • fix issue on Intel Xeon 6 Granite Rapids with skipping IAA accelerator (@antonovalexnn)
  • fix OCR events on GNR-D (Xeon 6 SoC)
  • fix pcm-numa on Intel Xeon 6 Granite Rapids
  • make cpu family/model extraction fully compliant to the spec to support the upcoming Diamond Rapids Xeon detection
  • pcm-pcie: correct events help description (@144026)
  • pcm-sensor-server metric exporter: don't exit if IIO PMUs are not availabile (@ogbrugge-work)
  • pcm-pcie: check if the required CHA PMUs are available
  • catch and report exceptions from thread creation
  • increase CXL port array size and add bounds checking
  • fix issue when CPUBUSNO_VALID is 0 (@antonovalexnn)
  • fix displaying binary codes in the terminal (@antonovalexnn)
  • fix compilation for memoptest

Other

  • require c++17
  • update dependencies
  • pcm-power: code refactoring
  • add simple googletest for PCICFG bdf function (@antonovalexnn)
  • add a test for parsing http headers inside urlstest.cpp (@ogbrugge-work)
  • adapt the expected outcome of urltest from 12 to 14 errors (@ogbrugge-work)
  • use a lambda instead of std::bind1st (@ogbrugge-work)
  • address cppcheck warnings
  • use IoCreateDeviceSecure API on Windows
  • convert commented out debug output to instead use the DBG macro (@ogbrugge-work)
  • pcm-sensor-server: cleanup and code formatting (@ogbrugge-work)
  • pcm-iio: code refactoring (@ogbrugge-work)
  • pcicfg/pci.h: remove unused code (@ogbrugge-work)

202502 Release

26 Feb 18:32
Compare
Choose a tag to compare

Release Notes

New Features

  • Xeon 6 SoC (GNR-D) support (@antonovalexnn @rdementi)
  • add Grand Ridge (GRR) support (@antonovalexnn @rdementi)
  • pcm-power: support tpmi perf limit reason telemetry for Granite Rapids (GNR) and Sierra Forest (SRF)
  • add ARL (Arrow Lake) support
  • add basic support for Elkhart Lake and Jasper Lake CPUs
  • pcm-raw: implement support for tpmi registers
  • pcm-raw: add PMT XML lookup
  • support SYS energy API
  • add scripts/bhs-power-mode.ps1 (GNR/SRF Latency Optimized Mode script for Windows)

Improvements

  • pcm-sensor-server: change protocol to IPv6, this should work fine on Linux dual stack systems (@ogbrugge-work)
  • refactor ccr class (@antonovalexnn)
  • introduce socketUniqueCoreID to again create a unique Core ID for the JSON and Prometheus output (@ogbrugge-work)
  • pcm-numa: enable support for GNR
  • pcm-tsx: support GNR
  • introduce and use PCM_DEBUG_LEVEL env variable to print debug messages
  • support >2 socket GNR systems on Windows/BSD
  • support pcm-iio inside docker container
  • pcm: make --color default on UNIX-like OSes
  • pcm: introduce --no-color option
  • pcm: add csv output for system power
  • make c-state output more compact
  • use a relative path in LINUX_SYSTEMD_UNITDIR (@hexchain)
  • perf optimization for accumulating socket CStateResidency

Fixes

  • create unique core ids and fix threads_per_core (@ogbrugge-work)
  • pcm-tpmi: fix multiple bugs
  • fix getThreadsPerCore function on non-Linux OSes
  • disable libasan by default due to bugs in libasan
  • fix PCICFG register misaligned read

202409 Release

17 Sep 07:53
Compare
Choose a tag to compare

Release Notes

New Features:

  • Intel Xeon 6 processors with P-cores (Granite Rapids) support (Alexander Antonov, Gang Deng, White Hu, Pavithran Pandiyan, Roman Dementiev)
  • Lunar Lake support
  • support pcm-power on Sierra Forest processors
  • grafana: add core and uncore frequencies metrics
  • grafana: add TMA and local/remote access ratio metrics
  • pcm-tpmi: add -i instances option
  • bhs-power-mode.sh script for BirchStream platforms (Granite Rapids and Sierra Forest processors)

Improvements

  • pcm-sensor-server: enable compilation with SSL
  • pcm-sensor-server: addition of a fuzzing client and subsequent rewrite of parts of the network communication and SSL detection (Bruggeman, Otto G)
  • pcm-sensor-server: stop using deprecated SSL functions (Otto Bruggeman)
  • docker: parallel build (make -j) (Pawel Palucki)
  • docker: build ignores "build" directory to not interfere with it (Pawel Palucki)
  • pcm-raw: add perfmon event repository as submodule for convenience and update instructions for perfmon event map/files
  • pcm-memory: replace NODE with SKT to avoid confusion with NUMA NODEs
  • added license to Dockerfile (Thomas Willhalm)
  • added PCM::checkStatus() API call (Artiom N.)
  • avoid using the hard-coded /usr/share/pcm/ path
  • cmake: compile with libasan
  • cmake: NO_STATIC_LIBASAN replaced with option (Artiom N.)
  • cmake: Added options prefix. Adde wxecutables build option (Artiom N.)
  • docker: bump fedora 5ce8497 (dependabot)
  • grafana: change the refresh period to 1s
  • grafana: show energy charts after freq charts
  • cmake: implement -DNO_ASAN=1 option
  • cmake: introduce NO_STATIC_LIBASAN option
  • cmake: introduce -DNO_STATIC_MSVC_RUNTIME_LIBRARY=1 option
  • drop support of gcc < 7
  • pcm-raw: make ICX PMURegisterDeclarations available on older steppings
  • upgrade simdjson to v3.9.4
  • add -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer and other hardening
  • set pointers to nullptr after delete or free
  • add PCM_ENFORCE_MBM option (env variable)
  • erase unneeded environment variables

Fixes:

  • handle TPMI initilization for systems without access to MCFG tables e.g. docker/VM (Pawel Palucki)
  • fix ssl accept issues (Otto Bruggeman)
  • fix public github issue #810 (Bruggeman, Otto G)
  • fix double free (Artiom N.)
  • specify a stable URL for WinPMem
  • pcm-raw: really use the alt_path if it exists (a bug fix)
  • link 1 does not have own speed register only on QPI
  • grafana: don't show unsupported metrics in prometheus
  • disable unsupported freq metrics for prometheus
  • fix locking in AcceleratorCounterState::getInstance()
  • fix a crash due to uninitialized array
  • avoid pre-mature PCM init triggered by global counter state init
  • fix a heap-buffer-overflow and a memory leak and throw exception with verbose reason
  • do not include shared library code into pcm-core executable
  • address issue #758 SPR UPI discovery table is broken on SPR MCC

202405 Release

23 May 07:51
e9a1f39
Compare
Choose a tag to compare

Release Notes

New Features

  • Xeon 6E Processor Support: Added support for Xeon 6E processor (Sierra Forest/SRF). (Alexander Antonov, Gang Deng, Pavithran Pandiyan, Roman Dementiev)
  • pcm-iio: Enabled pcm-iio for Sierra Forest (SRF) processors. (Alexander Antonov)
  • Intel QAT Support: Added support for QAT Linux in-tree driver addressing issue#547. (Gang Deng)
  • Meteor Lake Support: Added support for Meteor Lake processors. (Roman Dementiev)
  • Intel PMT raw counter support in pcm-raw: Added support for Intel Platform Monitoring Technology Telemetry (Intel PMT) raw counters. (Roman Dementiev)
  • Client CPU Energy Metrics: Support for client CPU energy metrics in Grafana. (Roman Dementiev)
  • Colorful Display: Added --color option for colorful display in the command-line interface. (Roman Dementiev)

Improvements

  • CPU Support: Support for more CPUs added for localMemoryRequestRatioMetric. (Roman Dementiev)
  • Precise UPI Speed Detection: Improved UPI speed detection on SPR using UPI_SPEED_REGISTER. (Roman Dementiev)
  • Metric Version 2: Made metric version 2 the default setting. (Roman Dementiev)
  • New CONTRIBUTING.md: Added a CONTRIBUTING.md file to help guide new contributors. (Roman Dementiev)

Fixes

  • Dashboard Graph: Replaced Graph with Timeseries for better visualization in the dashboard. (Vimal Kumar)
  • Incorrect PMON IDs: Fixed incorrect PMON IDs for HCx stacks. (Alexander Antonov)
  • Ubox PMU Declarations: Added declarations for ubox PMU. (Huang, Xiaojun)
  • Indentation Alignment: Fixed indentation alignment issues in BuildRequires statements and corrected the Version and Url fields in pcm.spec. (Jon Kohler)
  • Error Checking: Added error checking and validation to start-prometheus.sh and start.sh scripts. (Roman Dementiev)
  • Crash on BDX: Fixed a crash on BDX when trying to program IRP or IIO PMU. (Roman Dementiev)
  • Less Useful Metrics: Disabled less useful metrics to streamline performance monitoring metric display. (Roman Dementiev)

202403 Release

17 Mar 09:09
Compare
Choose a tag to compare

Release Notes

New Features

  • pcm: implement alternative metrics option -m (UTIL=C0 residency for cores, CFREQ=core frequency in GHz) and make it default by Roman Dementiev
  • provide experimental kubernetes manifest by Pat Riehecky
  • grafana scripts: use network instead of link and to use podman or docker by Vimal Kumar

Improvements

  • Hardened binaries with "-Wl,-z,now" option on Linux by opcm
  • pcm-raw: fall-back to older stepping PMURegisterDeclarations if available by Roman Dementiev
  • Detect UPI LL PMUs on SPR/EMR through uncore PMU discovery and detect IMC PMUs on SPR/EMR through uncore PMU discovery by Roman Dementiev
  • Use larger (1Gbyte) buffer in memoptest to increase LLC miss rate by Roman Dementiev
  • grafana script enhancements by Roman Dementiev

Fixes

  • Fixed parameter parsing in pcm-sensor-server by Roman Dementiev
  • Fix: Accessing member of deleted objects by scuzqy
  • Addressed issue #665 - Windows MSR driver compilation error by Roman Dementiev

202401 Release

25 Jan 11:42
2612158
Compare
Choose a tag to compare

Release Notes:

New Features

  • Added Emerald Rapids processor support (Alexander Antonov and Roman Dementiev)
  • Added support for TMA Level 2 metrics on SPR+ (Roman Dementiev)
  • Added support of PP0 and PP1 energy metrics (Roman Dementiev)
  • Added -c option (corelist) to pcm-numa and pcm-msr utilites (Duane E Galbi)
  • pcm-msr new options added: iterate with seconds between each iteration and write results of each iteration to file (Duane E Galbi)
  • Added support for pcm-sensor-server metric exporter/service on OSX (Roman Dementiev)

Improvements

  • Removed hardcoded value for max supported sockets in pcm-iio tool (Alexander Antonov)
  • Rely on CPUID leaf 0x1F topology info when available (Roman Dementiev)

Fixes

  • Ensured PcmMsrClient on OSX can only be opened by root (HaoYan Qi)
  • Fixed codeQL warnings (Roman Dementiev)
  • Addressed issue with exceptions in msr.sys (Roman Dementiev)

Dependencies

  • Bumped fedora from 37 to 39 in docker container (dependabot)

202311 Release

10 Nov 16:07
Compare
Choose a tag to compare

Release Notes

New Features

  • Support for Sapphire Rapids accelerators in pcm-grafana dashboard. (Pavithran Pandiyan)
  • Added support of Sapphire Rapids MCC CPUs in pcm-iio tool. (Alexander Antonov)
  • Added support for M3UPI PMU for Sapphire Rapids. (Dementiev, Roman)
  • Added new tool to access TPMI registers: pcm-tpmi (Dementiev, Roman)
  • Added support for mmio register reads in pcm-raw tool. (Dementiev, Roman)
  • pcm-raw now supports ha pmu and added invert,anythread,nc,isoc,opc and state emon event modifiers. (Dementiev, Roman)
  • New script for filtering data in CSV. (Dementiev, Roman)
  • Added bit operations for pcm register tools: pcm-msr, pcm-pcicfg, pcm-mmio (Dementiev, Roman)

Improvements

  • Updated windows-related documentation. (Dementiev, Roman)
  • Added instructions for compiling windows driver. (QiongwenXu)
  • pcm-raw: Add PCU PMU declaration for BDX/SKX/CLX/CPX and document pcicfg register events (Dementiev, Roman)
  • pcm-raw: remove the max number of event restrictions for register events (Dementiev, Roman)

Bug Fixes

  • Fixed deadlock in processDVSEC. (Dementiev, Roman)
  • Fixed race condition in isHWTMAL1Supported. (Dementiev, Roman)
  • Fixed a clang scan warning. (Dementiev, Roman)
  • Fixed the docker name for Grafana in start.sh. (Mike Yang)
  • Fixed an issue in getMaxNumOfCBoxes to allow the fall-back perf API method to be called. (Dementiev, Roman)
  • Fixed an issue with pcicfg reg syntax documentation. (opcm)
  • Fixed an issue in pcm-accel to avoid confusion when overflow happens. (White Hu)
  • Added exception handling in utils.cpp:get_cpu_bus(). (Steffen Persvold)
  • Fix pcm for PCU and MDF: IO read size is data size (xuqiongwen-ms)

Other Changes

  • DLL-related code enhancements (Dementiev, Roman)
  • Added PCM_NO_MAIN_EXCEPTION_HANDLER variable. (Dementiev, Roman)

202307 Release

14 Jul 09:45
Compare
Choose a tag to compare

Release Notes

  • pcm-memory and grafana dashboard: support CXL bandwidth monitoring on Sapphire Rapids
  • pcm-raw: support collection for MSR and PCICFG (CSR) registers in csv format
  • pcm-mmio: support dumps for memory regions
  • pcm-raw: additional CPU model/steppings supported (CPX, SPR)
  • pcm-pcicfg: support PCICFG register lookup/search by device ID
  • documentation updates (how to run under non-root user, CXL monitoring, pcm-accel IAA, DSA, QAT, pcm-raw register monitoring)
  • addressed CVE-2023-34351
  • bug fixes

202302 Release

21 Feb 09:14
Compare
Choose a tag to compare

Release Notes

  • pcm-accel: support monitoring of Intel® QuickAssist Technology (QAT) performance metrics
  • grafana: support grafana dashboards with multiple hosts (with host selector) and fix UPI charts
  • grafana: added dram pmem bandwidth and their ratio to grafana charts
  • added python script to automate the generation of summary reports from pcm csv
  • added backtrace info with signal SEGV for better debugability
  • pcm-pcie: fix issues with delay parameter
  • pcm-raw: validate counter event restrictions
  • pcm-raw: initial support of hybrid cpus
  • added LLCRDMISSLAT metric support for SPR
  • added support for Gemini Lake
  • added support memory bandwidth metrics for more ADL&TGL CPU models
  • added systemd unit for Linux systems
  • pcm-sensor-server: enhanced error handling in close, setSocket and sync calls
  • avoid using errata events on older processors
  • pcm-sensor-server: implement -force-rtm-abort-mode option

202212 Release

23 Dec 10:10
Compare
Choose a tag to compare

Release Notes:

  • pcm-memory: add SPR HBM support
  • support multiple hosts for Grafana dashboard with prometheus
  • fixes for pcm-iio/pcm-accel