lkml.org 
[lkml]   [2009]   [Apr]   [2]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: [PATCH 5/6] perf_counter: add more context information

* Peter Zijlstra <a.p.zijlstra@chello.nl> wrote:

> 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.

eventually we'll have one in the kernel too, but yeah, user-space
can do this better. It will have precise details about the runtime
environment.

And any async mechanism has no chance to do anything useful with
stack frame info anyway - that stack frame might be long gone.

> > 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.

ok - good - just wanted to make sure :)

Ingo


\
 
 \ /
  Last update: 2009-04-02 20:19    [W:0.135 / U:0.044 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site