Samuel Pitoiset is working more this summer on reverse-engineering the performance counters found on modern GPUs and with that is working towards exposing the counters to user-space via the Nouveau Gallium3D driver. Samuel says, "The main goal of this project is to help Linux developpers in identifying the performance bottleneck of OpenGL applications. At the end of this GSoC, NVIDIA’s GPU graphics counter for GeForce 8, 9 and 2XX (nv50/tesla) will (almost-all) be exposed for Nouveau. Some counters won’t be available until the compute support (ie. the ability to launch kernels) for nv50 is not implemented."
The student open-source developer has already been working on new reverse-engineering support in the past few weeks and almost has complete documentation and understanding for the performance counters, including the start of RE'ing the Fermi counters. The NV50 and NVC0 work-in-progress documentation can be found via this Git repository.
You can learn more about Samuel's work via his personal blog. His next challenge will be coming up with the Linux kernel ioctls for exposing the performance counter information.