From: Ingo Molnar <mingo@elte.hu>
To: "Török Edwin" <edwintorok@gmail.com>
Cc: Robert Richter <robert.richter@amd.com>,
Mathieu Desnoyers <mathieu.desnoyers@polymtl.ca>,
srostedt@redhat.com, a.p.zijlstra@chello.nl,
sandmann@daimi.au.dk, linux-kernel@vger.kernel.org
Subject: Re: [PATCH] Identify which executable object the userspace address belongs to. Store thread group leader id, and use it to lookup the address in the process's map. We could have looked up the address on thread's map, but the thread might not exist by the time we are called. The process might not exist either, but if you are reading trace_pipe, that is unlikely.
Date: Mon, 3 Nov 2008 15:04:06 +0100 [thread overview]
Message-ID: <20081103140406.GA14472@elte.hu> (raw)
In-Reply-To: <490F035A.5070209@gmail.com>
* Török Edwin <edwintorok@gmail.com> wrote:
> > note that NMI interaction of user-space stackframe walkers can be
> > a bit tricky: the basic problem is that if you fetch a user-space
> > stackframe that can create a fault
>
> The code in trace_sysprof.c (which I used as a base for the
> save_stack_trace_user) disables pagefaults before reading the
> stackframe from userspace. Does it avoid this problem then?
no, it does not solve it - because pagefault_disable is a "soft"
mechanism which does not disable the faults themselves. (it only
disables some of their effects)
> > , and the IRET at the end of the fault handler will re-enable NMIs
> > (violating the NMI code's assumptions).
>
> Is this already a problem with oprofile's user-stack walker?
yes, oprofile's code is buggy here too. And not enabled by default,
and probably not used by many people. The bug would show up as
mistakenly enabled NMIs from within NMIs - the kernel will _probably_
live but could lock up or overflow its stack, etc.
> > The best approach would be if the kernel could output the best
> > info by default
>
> The kernel could do some grouping and counting (as latencytop does),
> but I don't see where it would fit in frace's infrastructure.
>
> I think ftrace's one entry per event is useful in many situations
> (debugging, latency measurements), but if the events occur too
> frequently it could produce too much data, and it would be more
> efficient to do some counting/grouping of similar info in-kernel
> before outputting to userspace. Perhaps as a layer on top of ftrace?
> What do you think?
yes, histogram generation would be a natural 'view' of a tracer: have
a look at Steve's likely()/unlikely() tracer that introduces that
notion into ftrace.
Ingo
next prev parent reply other threads:[~2008-11-03 14:04 UTC|newest]
Thread overview: 25+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-11-02 21:18 Add support for userspace stacktraces in tracing/iter_ctrl [v2] Török Edwin
2008-11-02 21:18 ` [PATCH] Add support for userspace stacktraces in tracing/iter_ctrl Török Edwin
2008-11-02 21:18 ` [PATCH] Identify which executable object the userspace address belongs to. Store thread group leader id, and use it to lookup the address in the process's map. We could have looked up the address on thread's map, but the thread might not exist by the time we are called. The process might not exist either, but if you are reading trace_pipe, that is unlikely Török Edwin
2008-11-02 21:25 ` Al Viro
2008-11-02 21:28 ` Török Edwin
2008-11-02 21:40 ` Al Viro
2008-11-03 7:32 ` Ingo Molnar
2008-11-04 18:26 ` Christoph Hellwig
2008-11-04 18:37 ` Török Edwin
2008-11-04 19:09 ` Christoph Hellwig
2008-11-04 19:10 ` Török Edwin
2008-11-06 9:55 ` Ingo Molnar
2008-11-06 12:26 ` Christoph Hellwig
2008-11-06 15:32 ` Ingo Molnar
2008-11-06 15:36 ` Christoph Hellwig
2008-11-03 7:47 ` Ingo Molnar
2008-11-03 8:16 ` Török Edwin
2008-11-03 8:21 ` Ingo Molnar
2008-11-03 8:29 ` Ingo Molnar
2008-11-03 13:57 ` Török Edwin
2008-11-03 14:04 ` Ingo Molnar [this message]
2008-11-03 19:26 ` Mathieu Desnoyers
2008-11-03 19:56 ` Peter Zijlstra
2008-11-03 19:58 ` Arnaldo Carvalho de Melo
2008-11-03 20:01 ` Török Edwin
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20081103140406.GA14472@elte.hu \
--to=mingo@elte.hu \
--cc=a.p.zijlstra@chello.nl \
--cc=edwintorok@gmail.com \
--cc=linux-kernel@vger.kernel.org \
--cc=mathieu.desnoyers@polymtl.ca \
--cc=robert.richter@amd.com \
--cc=sandmann@daimi.au.dk \
--cc=srostedt@redhat.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox