• Steven Rostedt (VMware)'s avatar
    ftrace: Fix indexing of t_hash_start() from t_next() · fcdc7125
    Steven Rostedt (VMware) authored
    t_hash_start() does not increment *pos, where as t_next() must. But when
    t_next() does increment *pos, it must still pass in the original *pos to
    t_hash_start() otherwise it will skip the first instance:
    
     # cd /sys/kernel/debug/tracing
     # echo schedule:traceoff > set_ftrace_filter
     # echo do_IRQ:traceoff > set_ftrace_filter
     # echo call_rcu > set_ftrace_filter
     # cat set_ftrace_filter
    call_rcu
    schedule:traceoff:unlimited
    do_IRQ:traceoff:unlimited
    
    The above called t_hash_start() from t_start() as there was only one
    function (call_rcu), but if we add another function:
    
     # echo xfrm_policy_destroy_rcu >> set_ftrace_filter
     # cat set_ftrace_filter
    call_rcu
    xfrm_policy_destroy_rcu
    do_IRQ:traceoff:unlimited
    
    The "schedule:traceoff" disappears.
    Signed-off-by: default avatarSteven Rostedt (VMware) <rostedt@goodmis.org>
    fcdc7125
ftrace.c 146 KB