Re: [announce] Performance Counters for Linux, v6

From: Corey Ashford
Date: Sun Jan 25 2009 - 20:06:55 EST


Ingo Molnar wrote:
We are pleased to announce version 6 of our performance counters subsystem implementation. The shortlog, diffstat and the combo patch can be found below. The combo patch against latest -git (2.6.29-rc2) can be also found at:

http://people.redhat.com/mingo/perfcounters/perfcounters-v6-v2.6.29-rc2.patch

It's also available in tip/master at:

http://people.redhat.com/mingo/tip.git/README

There are many changes in the v6 release:

- PowerPC performance counters support from Paul Mackerras, for POWER6
and for the PPC970 family.

- ioctl API to disable/enable individual counters and groups without
closing their fd. This can be useful for libraries, ad-hoc instrumentation and PAPI support.

- 'pinned' and 'exclusive' counter attributes - for those
applications that want to influence counter scheduling explicitly.

- The 'perfstat' utility (ex 'timec') has been updated:

http://people.redhat.com/mingo/perfcounters/perfstat.c

- 'kerneltop' (easy-to-use text mode NMI profiler) has been updated:
http://people.redhat.com/mingo/perfcounters/kerneltop.c

- Merged to latest mainline

- Various fixes and other updates

Ingo

Hi Ingo,

Looking over the latest capabilities of this proposal, I am wondering how it can accommodate performance monitor units which have extra registers which require user-defined data to be loaded into them.

For example, on the Power architecture, there is an Instruction Matching Register which allows the counting of particular instructions. Currently, this is unsupported in perfmon2/3, but we have plans to add it, and it's pretty straight-forward to imagine how this would be done in perfmon.

But I don't see an obvious way to do it with your proposal. Do you have any ideas how Performance Counters for Linux could accommodate this sort of PMU functionality?

One thought would be to change the event code to an event descriptor structure, which has room for lots of bits, including arch-defined bits (in the case of Power, an IMR value, and others). This might also be a way to accommodate unit masks (and enums) as well, which Andi Kleen pointed out as an issue in an earlier LKML posting.

Regards,

- Corey

Corey Ashford
Software Engineer
IBM Linux Technology Center, Linux Toolchain
Beaverton, OR
503-578-3507
cjashfor@xxxxxxxxxx

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/