This is an old revision of the document!


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.

News 02-September-2008: An updated patch from Fabien Thomas backporting PmcTools' callchain functionality to RELENG_7 is available: patch-callchain-FreeBSD-7-STABLE-2008-09-02.gz; Size 54.4KB; MD5 0440068c22ccaaf36aeb6e30558eb448. 12-July-2008: Fabien Thomas has ported PmcTools' callchain functionality to 7-STABLE and has contributed a patch against RELENG_7: patch-callchain-FreeBSD-7-STABLE-2008-07-12.gz; Size 54KB; MD5 bc5dd79ee7800af17486a8e0ce2fe500. Thank you, Fabien! 07-December-2007: Callchain functionality has been added to 8-CURRENT. 03-August-2007: A patch implementing callchain capture (against -CURRENT) is available: http://people.freebsd.org/~jkoshy/download/pmctools-callgraph-patch.gz. See PmcTools/CallchainCaptureAndAnalysis for more information.

Table of Contents

Flames/feedback to jkoshy@freebsd.org.

The original project pages are available at http://people.freebsd.org/~jkoshy/projects/perf-measurement/.

  • pmctools.1221466318.txt.gz
  • Last modified: 2008/09/15 08:11
  • by JosephKoshy