Skip to content
  • Abhishek Sagar's avatar
    ftrace: distinguish kretprobe'd functions in trace logs · 76094a2c
    Abhishek Sagar authored
    
    
    Tracing functions via ftrace which have a kretprobe installed on them, can produce misleading output in their trace logs. E.g, consider the correct trace of the following sequence:
    
    do_IRQ()
    {
    ~
      irq_enter();
    ~
    }
    
    Trace log (sample):
    <idle>-0     [00] 4154504455.781616: irq_enter <- do_IRQ
    
    But if irq_enter() has a kretprobe installed on it, the return value stored on the stack at each invocation is modified to divert the return to a kprobe trampoline function called kretprobe_trampoline(). So with this the trace would (currently) look like:
    
    <idle>-0     [00] 4154504455.781616: irq_enter <- kretprobe_trampoline
    
    Now this is quite misleading to the end user, as it suggests something that didn't actually happen. So just to avoid such misinterpretations, the inlined patch aims to output such a log as:
    
    <idle>-0     [00] 4154504455.781616: irq_enter <- [unknown/kretprobe'd]
    
    Signed-off-by: default avatarAbhishek Sagar <sagar.abhishek@gmail.com>
    Acked-by: default avatarSteven Rostedt <srostedt@redhat.com>
    Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
    76094a2c