Pitoiset has been reverse engineering the NVIDIA hardware counters and implementing them within the Nouveau DRM driver and allowing them to be exposed to user-space -- with the ultimate goal of allowing NVPerfKit-like functionality under Linux. In Samuel's work towards exposing NVIDIA's counters in Nouveau through Gallium3D, he's implemented initial support for the GL_AMD_performance_monitor extension.
The GL_AMD_performance_monitor was engineered by AMD and allows capturing and reporting of performance monitors that hold arbitrary counted data. The AMD performance monitor extension is general to allow a wide array of counters and counter types to be exposed. Details on the GL_AMD_performance_monitor extension can be found via the OpenGL.org registry. Since last year, Intel's open-source Linux Mesa driver has also supported the AMD_performance_monitor extension.
Samuel's initial GL_AMD_performance_monitor implementation for Nouveau is currently limited to MP counters on Fermi GPUs and newer but still this summer he hopes to tackle the graphics counters for older NVIDIA NV50 hardware too. Samuel published the initial 11 patches a short time ago today that add over 600 lines of new code to Gallium3D. The patches can be found here and will hopefully be integrated in time for Mesa 10.3.