====== Pmctools: Potential users of hwpmc(4) ====== This is a list of projects that could //use// hwpmc(4) and PMC based performance measurements. This page has some overlap with [[PmcTools/PmcResearch|PmcTools/PmcResearch]]. ===== Dyninst ===== Port [[http://www.dyninst.org/|Dyninst]] or other executable editing toolkit to %%FreeBSD%% and use it to dynamically instrument executables to read PMC data using the RDPMC instruction on x86 processors. This would allow us to do fine-grained measurement of i- and d-cache behaviour inside 'hot' functions without having the overhead of instrumenting //all// the functions in an executable. This feature would probably useful in conjunction with the GUI tool described in [[PmcTools/PmcResearch|PmcTools/PmcResearch]]. Dyninst however is distributed under an un-BSD-like license. I'd really prefer to use an equivalent BSD-licensed library if it exists. See also: [[/ElfToolChain|ElfToolChain]]. ===== PAPI for FreeBSD ===== Port over the PAPI interface to hwpmc. PAPI is a popular programming interface for scientific applications that desire to use hardware performance counters. * Project Home page: http://code.google.com/p/papi-for-freebsd/ * People known to be working on PAPI porting include: * Harald Servat redcrash@gmail.com * George Neville-Neil gnn@freebsd.org This work is available as a %%FreeBSD%% port ([[http://www.freebsd.org/cgi/ports.cgi?query=papi&stype=name&sektion=devel|/usr/ports/devel/papi]]). The PAPI library currently works on modern Intel hardware including Penryn and Nehalem (as of 3.7.x) ===== A PmcTools based Performance Visualizer ===== Described in the [[PmcTools/PerformanceVisualizer|PmcTools/PerformanceVisualizer]] page.