On Fri, 21 Nov 2014 12:01:51 -0500 Steven Rostedt <rost...@goodmis.org> wrote: > Looking at kernel/trace/trace_functions.c: function_trace_call() which is > registered with RECURSION_SAFE, I see that the recursion check is done > before the per_cpu_ptr() call to the dynamically allocated per_cpu data. > > It looks OK, but... > > Oh! but if we trace the page fault handler, and we fault here too > we just nuked the cr2 register. Not good.
Ah! Looking at the code, I see that do_page_fault (called from assembly) is marked notrace. And the first thing it does is: unsigned long address = read_cr2(); And uses that. Thus if the function tracer were to fault on exception_enter() or __do_page_fautt(), the address wont be clobbered. -- Steve -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/