summaryrefslogtreecommitdiffstats
path: root/kernel/trace/trace_functions.c
diff options
context:
space:
mode:
authorSteven Rostedt <srostedt@redhat.com>2012-11-02 17:47:21 -0400
committerSteven Rostedt <rostedt@goodmis.org>2013-01-22 23:38:01 -0500
commitedc15cafcbfa3d73f819cae99885a2e35e4cbce5 (patch)
tree964e0de8816e6d4b602318d90718770921e301d2 /kernel/trace/trace_functions.c
parente46cbf75c621725964fe1f6e7013e8bcd86a0e3d (diff)
downloadblackbird-op-linux-edc15cafcbfa3d73f819cae99885a2e35e4cbce5.tar.gz
blackbird-op-linux-edc15cafcbfa3d73f819cae99885a2e35e4cbce5.zip
tracing: Avoid unnecessary multiple recursion checks
When function tracing occurs, the following steps are made: If arch does not support a ftrace feature: call internal function (uses INTERNAL bits) which calls... If callback is registered to the "global" list, the list function is called and recursion checks the GLOBAL bits. then this function calls... The function callback, which can use the FTRACE bits to check for recursion. Now if the arch does not suppport a feature, and it calls the global list function which calls the ftrace callback all three of these steps will do a recursion protection. There's no reason to do one if the previous caller already did. The recursion that we are protecting against will go through the same steps again. To prevent the multiple recursion checks, if a recursion bit is set that is higher than the MAX bit of the current check, then we know that the check was made by the previous caller, and we can skip the current check. Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
Diffstat (limited to 'kernel/trace/trace_functions.c')
0 files changed, 0 insertions, 0 deletions
OpenPOWER on IntegriCloud