Messages in this thread | | | Date | Wed, 25 Mar 2009 19:02:03 +0100 | From | Ingo Molnar <> | Subject | Re: [PATCH 2/5][RFC] tracing: move function profiler data out of function struct |
| |
* 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
| |