Re: [PATCH 2/5][RFC] tracing: move function profiler data out of function struct

Ingo Molnar
2009-03-25T18:02:43Z

* Steven Rostedt <rostedt@goodmis.org> wrote:

>
> On Wed, 25 Mar 2009, Ingo Molnar wrote:
>
> > > The atomic_inc_return protects against NMIs, since this is the only place
> > > the lock is taken.
> >
> > i mean, if this code executes _ni_ an NMI. Or that cannot happen? We
> > trace nmis too, dont we?
>
> Yes, it can execute in an NMI, but we have no issues there. If the
> lock was taken the atomic inc is set. If an NMI comes in, it will
> fail the atomic inc counter test and never try to take the lock.

You are misunderstanding me. Can this bit:

> > + if (!profile_pages->next && alloc_safe)
> > + profile_pages->next = (void *)get_zeroed_page(GFP_ATOMIC);

run in NMI context?

or is alloc_safe false in that case? Even if it's safe it looks
really messy ...

Ingo