Re: Performance counter API review was [patch] Performance Countersfor Linux, v3
From: Corey Ashford
Date: Mon Feb 02 2009 - 15:04:44 EST
Andi Kleen wrote:
[snip]
- Global tracing. Right now there seem to be two modi: per task and
per CPU. But a common variant is global tracing of all CPUs. While this
could be in theory done right now by attaching to each CPU
this has the problem that it doesn't interact very well with CPU
hot plug. The application would need to poll for additional/lost
CPUs somehow and then re-attach to them (or detach). This would
likely be quite clumsy and slow. It would be better if the kernel supported
that better.
Or alternative here is to do nothing and keep oprofile for that job
(which it doesn't do that badly)
This issue is of particular interest to us, from the IBM Power toolchain
perspective.
Ingo, do you think it would be feasible to add an ability to open a
single file descriptor that could give global counting (and sampling) on
all CPU's? I realize this would entail creating a context per cpu in
the kernel.
How to present the count data back to user space is another issue. For
example, do you sum the counts of a particular event type across all
CPUs or do you keep them separate, and have the user space app read them
up per-cpu (perhaps not knowing exactly which cpu they come from)?
I realize that perfmon doesn't have this ability either, it's currently
per-cpu as well for global counting.
But it seems as long as you are going so far as providing a thread
inheritance feature (which I assume uses a summing approach for
providing counts back to user space), that this "pan-cpu" counting
feature might not be too difficult to implement. It sure would simplify
the life of user space apps, as Andi said.
--
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/