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.
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!
- Callchain functionality has been added to 8-CURRENT.
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
PmcTools/Features-- short summary of what's available
PmcTools/KnownBugs -- known bugs in the PMC toolchain
PmcTools/PmcEnhancements -- requested features and enhancements
PmcTools/PmcHardware -- current and near-future hardware support
PmcTools/PmcRelatedWork -- other work around PMC hardware
PmcTools/PmcResearch -- research planned around hwpmc
PmcTools/PmcProjects -- projects that use PMCs
PmcTools/PlanOfWork -- the immediate plan of action
Flames/feedback to <jkoshy@freebsd.org>.
The original project pages are available at http://people.freebsd.org/~jkoshy/projects/perf-measurement/.