VOOZH about

URL: https://www.phoronix.com/news/Intel-pmtctl-Tool

⇱ Intel Working On pmtctl Tool For Linux In Dealing With Platform Telemetry Data - Phoronix


👁 Phoronix

Intel Working On pmtctl Tool For Linux In Dealing With Platform Telemetry Data

Written by Michael Larabel in Intel on 26 May 2026 at 05:55 AM EDT. 1 Comment
A set if 17 patches were posted today to the Linux kernel mailing list for introducing a new tool in the kernel source tree, pmtctl. This new pmtctl tool is for interfacing with Intel Platform Monitoring Technology.

Intel's Platform Monitoring Technology (PMT) is already supported by the mainline Linux kernel while pmtctl is a new convenient tool for dealing with these telemetry metrics. Like Turbostat and various other small utilities, Intel is aiming to have pmtctl live within the Linux kernel source tree.

👁 pmtctl


Intel engineer David Box explained of the new pmtctl tool:
"Intel Platform Monitoring Technology (PMT) exposes per-component telemetry counters through sysfs via the pmt_telemetry auxiliary bus driver. Each telemetry device provides a data file that can be read to sample the underlying hardware telemetry data. The meaning of each field within a sample is described by platform-specific metric definitions.

This series adds pmtctl, a command-line tool for querying PMT metrics on x86 Linux systems. It lives under tools/arch/x86/pmtctl/ alongside other platform-specific userspace tools.

The series introduces approximately 7k lines across the library, CLI frontend, code generation scripts, and documentation.
...
The implementation is split into a reusable library (libpmtctl_core) and a thin CLI frontend:

libpmtctl_core (lib/)
- Device enumeration: scans /sys/bus/auxiliary/drivers/pmt_telemetry and reads GUID and telem data path from sysfs attributes.
- Metric definitions: supports two loading modes:
built-in -- a C struct array compiled in at build time, generated from perf-style JSON by scripts/gen_builtin_defs.py.
runtime -- loaded at invocation via -J/--json-file (requires libjansson).
- Metric DB: block-based container with flat-index accessors.
- GUID intern table: canonical struct pmt_guid pointers shared between the built-in and JSON providers.

CLI frontend (src/)
- list: enumerate discovered PMT devices and/or metric definitions, with optional GUID intersection report (--guids) and device-only mode (--devices).
- stat: perf-stat-like metric sampling with configurable interval, count, event selection, and raw-register mode.

Metric JSON files are not included in the tree. Users obtain them from the Intel-PMT repository using Makefile targets that fetch XML metric definitions over the network and convert them into the JSON format expected by the tool.

Testing: functional testing requires a system with PMT-capable hardware and /sys/bus/auxiliary/drivers/pmt_telemetry populated. Reading telemetry data (stat) requires elevated privileges (CAP_SYS_ADMIN / sudo); listing metrics and devices (list) does not."

Those interested can find the Intel pmtctl patches on the mailing list currently undergoing review.

Michael Larabel is the principal author of Phoronix.com and founded the site in 2004 with a focus on enriching the Linux hardware experience. Michael has written more than 20,000 articles covering the state of Linux hardware support, Linux performance, graphics drivers, and other topics. Michael is also the lead developer of the Phoronix Test Suite, Phoromatic, and OpenBenchmarking.org automated benchmarking software. He can be followed via Twitter, LinkedIn, or contacted via MichaelLarabel.com.