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

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

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

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

Publish Date: 2026-05-26 05:55:00

Source Domain: www.phoronix.com

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.

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

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…

Source