About Articles How to contact me Projects Site Map

Joseph Koshy > Projects > PMC based Performance Measurement in FreeBSD > PMC FAQ


* What is this PMCTools thing, anyhow?

It is an easy to use framework for using in-cpu measurement counters to measure system and application performance. It useful for investigating performance bottlenecks on your system and for collecting data for system provisioning.

* How is this different from Linux's Oprofile/Perfctr/Perfmon?

These Linux drivers use in-cpu performance counters too, but are mutually incompatible. My understanding is that you can have one or the other of these in the Linux kernel at any point but not at the same time. Excepting Perfmon2 the linux offerings are generally less featureful than hwpmc(4). Further, both Perfmon2 and Perfctr appear to be distributed as patches so deploying them requires extra work, while hwpmc(4) is part of the FreeBSD base system.

That said, a major feature that Oprofile and Perfmon have and that FreeBSD lacks is callgraph support. This is being remedied.

An area where the Linux world is (much) better than hwpmc(4) is that of breadth of CPU support. This will be hard to rectify as it stands—the Linux projects have good corporate support; with people working on them full-time and timely access to hardware that is inexpensive relative to the cost of living. In contrast FreeBSD's toolset is being developed by one volunteer, working in his free time and funded from his personal funds. I will, of course, gladly take patches that implement support for any unsupported CPUs. :)

* Why didn't you just port over Linux's Oprofile/Perfctr/Perfmon?

First, there are three drivers doing not-too-different things, but mutually incompatible with each other.

Second, these projects are GPL'ed and not suitable for inclusion into the base system.

* Can one convert hwpmc(4)'s log file to Oprofile's/other-tool's format?

Very possibly. The pmclog(3) API was designed to ease such kinds of tasks. Patches are welcome :) .

* What about PMCs on the other architectures that FreeBSD runs on?

The framework should be able to handle most modern PMCs.

If I can get hold of working non-x86 hardware I will definitely work on hwpmc(4) support for those CPUs. I have a loaner of a PPC G4 and a donated Ultra Sparc II that are in the pipeline for hwpmc(4) support.

Please see my wantlist for other CPUs (old and new) that I am looking for.

* What tools do you envisage that would use this PMC stuff?

Quite a few:

Last Modified: Sat Apr 21 22:53:24 2007
Site Search Google