Show pageOld revisionsBacklinksBack to top This page is read only. You can view the source, but not change it. Ask your administrator if you think this is wrong. ====== PmcTools Feature Set ====== ^ Feature ^ Status ^ Description ^ | Callgraphs? | Ready | An oft-requested feature when generating profiles. | | SMP support? | Ready | Supports profiling on multi-processor systems. | | System-wide event counting? | Ready | Allows you to get a global view of the events happening on hardware as the system runs. | | System-wide statistical sampling? | Ready | Allows you to profile userland and kernel (including interrupt handlers) at the same time. | | Process-"virtual" PMCs? | Ready | Measure hardware events seen by the system when specific processes are scheduled on the CPU(s). | | Profiling "kernel threads" | Ready | Allows you to profile specific kernel threads, including "interrupt" threads. | | Profiling threaded code | Currently buggy | Allows you to profile threaded applications. | | Profiling of loadable kernel modules and ''%%dlopen()%%''ed libraries | Ready. | Allows dynamically loaded objects (in the kernel or in userland) to be profiled. | | Allow perfmon instructions like RDPMC? | Ready | Allows processes that allocated and attached PMCs to themselves to use low-overhead machine instructions to read their PMCs. | | Simultaneous process-virtual and system-wide profiling? | Ready | Allows tools to present a bird-eye view of system-wide hot-spots and drill down further into troublesome processes. | | Profile or monitor an already running process? | Ready | Profile and monitor long-lived processes without disturbing them. | | Multiple processes using PMCs at the same time? | Ready | The hwpmc(4) driver multiplexes available PMC resources, allowing multiple PMC-using processes to be executing concurrently. | | Works on stock (i.e., optimized) binaries? | Ready | You can do basic profiling on stock binaries. | | Integration with system profiling tools gprof(1), kgmon(8)? | In progress. | You can use gprof(1) for your analyses, for now. See pmcstat(8). | | Cross-architecture PMC API? | Ready | See pmc(3). | | Remote profiling? | Ready | Profile logs can be collected and analysed on a different system; allows for profiling embedded systems. | | Cross-architecture profiling? | Being implemented | Data collection and analysis can be done on machines with different endianness and word-size. | | Low-overhead? | On target | Our overheads are low, but have not yet been fully characterized. | | Supports all PMCs on CPUs running %%FreeBSD%%'s Tier-1&2 architectures? | Partially there | Currently the following PMCs are supported: AMD64 "K8", AMD Athlon XP "K7", Intel P-Pro/P-II/P-III/Celeron/Pentium-M, Intel P4(HTT). %%PowerPC%% G4 and %%UltraSparc%% US/ii support is planned shortly. Intel Core [NN] support is missing because I don't have access to working hardware. | | GUI Analysis tools? | Planned | Help wanted! | | PAPI interface? | Ready | In ports as ''%%devel/papi%%'' | | Documentation (manual pages) | Ready | See pmc(3), hwpmc(4), pmcstat(8), and pmccontrol(8). | | A tutorial on using all this stuff | Planned | For now, just ask on the -lists. | | Test-suite? | Planned | A formal test suite for pmc(3) and hwpmc(4) is planned. | | Scripting language API? | Stalled | A Python wrapper around pmc(3) is being written. | pmctools/features.txt Last modified: 2008/06/17 21:37by 127.0.0.1