lkml.org 
[lkml]   [2009]   [Feb]   [2]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: Performance counter API review was [patch] Performance Counters for Linux, v3
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@us.ibm.com



\
 
 \ /
  Last update: 2009-02-02 21:07    [W:0.312 / U:0.260 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site