Linux kernel driver for low-level performance-monitoring counters, and support for virtualised (per-process) counters. User-space glue for use in applications, and by higher-level tools and libraries.