The benefits of adding some unit tests for the OProfile code pay off quickly - some portability issue or latent problem tends to get uncovered almost immediately. There's no way of telling how many future bugs are getting trapped by them, but it's been extremely useful so far.
Regression testing is somewhat more difficult, since naturally the results are statistical in nature, and dependent on the binaries on the system. One possibility might be UML, but it's hard to see how to make any runs deterministic.
I still need to finish off the OProfile internals manual, but it's pretty tedious to write, since I'm so familiar with how things work. And I'd much rather have somebody new to OProfile write it, as they'd be more likely to cover things clearly.