Messages in this thread | | | Subject | Re: [PATCH 5/6] perf_counter: add more context information | From | Peter Zijlstra <> | Date | Thu, 02 Apr 2009 13:46:10 +0200 |
| |
On Thu, 2009-04-02 at 13:36 +0200, Ingo Molnar wrote: > * Peter Zijlstra <a.p.zijlstra@chello.nl> wrote: > > > Put in counts to tell which ips belong to what context. > > > > ----- > > | | hv > > | -- > > nr | | kernel > > | -- > > | | user > > ----- > > btw., i have an observation about the format: > > > -#define MAX_STACK_DEPTH 255 > > +#define MAX_STACK_DEPTH 254 > > > > struct perf_callchain_entry { > > - u64 nr; > > + u32 nr, hv, kernel, user; > > u64 ip[MAX_STACK_DEPTH]; > > }; > > For the special case of signal notifications, if the signal is > delivered immediately to the same task that raised it (pid=0), the > call chain is actually a still meaningful one: it is the stack that > is below the currently executing signal handler context. > > Wouldnt it make sense to record the full stack frame for that case, > to allow walking/unwinding of the stack? Or can user-space do that > just fine, based on its own signal context?
I think it can do that just fine or even better than we can -- userspace having access to a full dwarf2 unwinder and such.
> We are going to hard-code the "call-chain is a series of IPs, > nothing else" model, and i'd like to make sure it's future-proof :)
I think it should be, function return addresses are the primary piece of information here.
| |