Contemporary processors provide performance monitoring units which can be
used to count low-level events like instruction execution, cache misses,
branch predictions, and so on. While there have been out-of-tree
performance monitoring patches for years, the mainline Linux kernel has
never fully supported access to low-level performance counters. Now,
suddenly, there are two competing patches which provide this support. This
article (from this week's Kernel Page, subscribers only) looks at the two
differing approaches to performance monitoring.