Hi Joe,
----- Original Message -----
> Hi,
>
> Attached is a perfevent PMDA for general review/comments/suggestions. This
> linux-specific pmda exposes the hardware performance counters available on
> recent x86 systems. This pmda has been running on our cluster the last 10
> months without problems (I've been meaning to submit this for inclusion for
> a while!).
>
I've had time to review more closely now. Without trying to sound glib,
this is quite probably the highest quality code I've seen sent in, ever.
So, ah - thank you, and many happy returns!
It is pretty close to ready for merging. Just a few small things - if you
could merge the contents of perfevent/unittest into qa/perfevent and add
some driver scripts into qa/XXX with expected output, that side of things
is done.
I've attached a little patch that brings a few of the PMDA interfaces used
up-to-date, and uses an atexit handler for your shutdown code. The latter
will help with running the code in PM_CONTEXT_LOCAL mode, which might also
be helpful in QA testing (but also in regular use). See qa/744 and qa/755
which do some simple local context use for pmdanvidia). See qa/{730,731}
also as examples which are similar to your fake-root testing (and qa/linux
sub-directory).
There's a couple of files missing your copyright annotation (help,pmda.c),
which all the rest have. A man page would be extremely helpful here, with
a section on the configuration file, and perhaps an example setup section?
The final piece will be integration into the build - the configure.ac file
will need magic to test for libpfm headers and library, and the spec / deb
build goo will need to be able to function with/without libpfm2 (and build
new pcp-pmda-perfevent packages if found).
Oh - your GNUmakefile has a Linux-only requirement, but my reading up on
libpfm indicates others are using it on Mac, Windows & other platforms;
so - the configure tests will do (update the makefile to use those, IOW).
The Infiniband PMDA looks like a good template for you to use for this.
Will - to answer your platform/architectures question - there's no code in
Joes work that wont run everywhere that libpfm does (which looks like alot
of places - there's a full list on the sourceforge page of supported archs)
so even for our Red Hat packaging side of things, I'm guessing this is all
going to be pretty straightforward?
I think that'll do it. I can help with any of the above - just lemme know
or if anything is unclear. Next release is planned for 16 July so if this
can get done by end of next week, that'd be perfect. Else, the next one -
not much left to be done here either way.
Thanks again!
cheers.
--
Nathan
perfevent.patch
Description: Text Data
|