• Masami Hiramatsu (Google)'s avatar
    tracing/probes: Add $arg* meta argument for all function args · 18b1e870
    Masami Hiramatsu (Google) authored
    Add the '$arg*' meta fetch argument for function-entry probe events. This
    will be expanded to the all arguments of the function and the tracepoint
    using BTF function argument information.
    
    e.g.
     #  echo 'p vfs_read $arg*' >> dynamic_events
     #  echo 'f vfs_write $arg*' >> dynamic_events
     #  echo 't sched_overutilized_tp $arg*' >> dynamic_events
     # cat dynamic_events
    p:kprobes/p_vfs_read_0 vfs_read file=file buf=buf count=count pos=pos
    f:fprobes/vfs_write__entry vfs_write file=file buf=buf count=count pos=pos
    t:tracepoints/sched_overutilized_tp sched_overutilized_tp rd=rd overutilized=overutilized
    
    Also, single '$arg[0-9]*' will be converted to the BTF function argument.
    
    NOTE: This seems like a wildcard, but a fake one at this moment. This
    is just for telling user that this can be expanded to several arguments.
    And it is not like other $-vars, you can not use this $arg* as a part of
    fetch args, e.g. specifying name "foo=$arg*" and using it in dereferences
    "+0($arg*)" will lead a parse error.
    
    Link: https://lore.kernel.org/all/168507475126.913472.18329684401466211816.stgit@mhiramat.roam.corp.google.com/Signed-off-by: default avatarMasami Hiramatsu (Google) <mhiramat@kernel.org>
    18b1e870
trace_fprobe.c 28.9 KB