On Tue, 19 May 2015, Michael Ellerman wrote:
quoted
ftrace already handles recursion protection by itself (depending on the
per-ftrace-ops FTRACE_OPS_FL_RECURSION_SAFE flag).
OK, so I wonder why that's not working for us?
The situation when traced function recurses to itself is different from
the situation when tracing core infrastrcuture would recurse to itself
while performing tracing.
quoted
It's however not really well-defined what to do when recursion would
happen. Therefore __notrace__ annotation, that just completely avoid such
situation by making tracing impossible, looks like saner general solution
to me.
I disagree. Correctly annotating all functions that might be called ever and
for all time is a maintenance nightmare and is never going to work in the long
term.
All the functions called by ftrace must be marked as notrace, there is no
way out of it.
--
Jiri Kosina
SUSE Labs