• Steven Rostedt (VMware)'s avatar
    ftrace, orc, x86: Handle ftrace dynamically allocated trampolines · 6be7fa3c
    Steven Rostedt (VMware) authored
    The function tracer can create a dynamically allocated trampoline that is
    called by the function mcount or fentry hook that is used to call the
    function callback that is registered. The problem is that the orc undwinder
    will bail if it encounters one of these trampolines. This breaks the stack
    trace of function callbacks, which include the stack tracer and setting the
    stack trace for individual functions.
    
    Since these dynamic trampolines are basically copies of the static ftrace
    trampolines defined in ftrace_*.S, we do not need to create new orc entries
    for the dynamic trampolines. Finding the return address on the stack will be
    identical as the functions that were copied to create the dynamic
    trampolines. When encountering a ftrace dynamic trampoline, we can just use
    the orc entry of the ftrace static function that was copied for that
    trampoline.
    Signed-off-by: default avatarSteven Rostedt (VMware) <rostedt@goodmis.org>
    6be7fa3c
unwind_orc.c 15.3 KB