Pmc Tools

The goal of the PmcTools project is to provide FreeBSD's developers and system administrators with non-intrusive, low-overhead and innovative ways of measuring and analysing system performance.

So far the basic tools have been written: the hwpmc(4) driver and libpmc(3) userland API work together to provide application programs the means of using the in-CPU performance monitoring counters in modern CPUs. The pmcstat(8) utility uses the driver and interface library to provide the ability to make simple performance measurements. These tools are available in FreeBSD 6.X and later.

Significant amounts of work remain, for example in researching innovative ways of presenting and analysing the low-level data collected from hardware. For example, we would like to track the death by a thousand cuts manner in which performance is lost on modern architectures---e.g., due to the interaction between structure layout and L1/L2/L3 cache organization, due to internal resource shortages, due to too many synchronizing instructions---and map these back to source code artifacts that a developer could change.


Table of Contents

Flames/feedback to <>.

The original project pages are available at

CategoryInactiveProject CategoryStale

PmcTools (last edited 2018-07-21 04:01:15 by MarkLinimon)