• Linus Torvalds's avatar
    Merge tag 'probes-v6.6' of git://git.kernel.org/pub/scm/linux/kernel/git/trace/linux-trace · b70100f2
    Linus Torvalds authored
    Pull probes updates from Masami Hiramatsu:
    
     - kprobes: use struct_size() for variable size kretprobe_instance data
       structure.
    
     - eprobe: Simplify trace_eprobe list iteration.
    
     - probe events: Data structure field access support on BTF argument.
    
         - Update BTF argument support on the functions in the kernel
           loadable modules (only loaded modules are supported).
    
         - Move generic BTF access function (search function prototype and
           get function parameters) to a separated file.
    
         - Add a function to search a member of data structure in BTF.
    
         - Support accessing BTF data structure member from probe args by
           C-like arrow('->') and dot('.') operators. e.g.
              't sched_switch next=next->pid vruntime=next->se.vruntime'
    
         - Support accessing BTF data structure member from $retval. e.g.
              'f getname_flags%return +0($retval->name):string'
    
         - Add string type checking if BTF type info is available. This will
           reject if user specify ":string" type for non "char pointer"
           type.
    
         - Automatically assume the fprobe event as a function return event
           if $retval is used.
    
     - selftests/ftrace: Add BTF data field access test cases.
    
     - Documentation: Update fprobe event example with BTF data field.
    
    * tag 'probes-v6.6' of git://git.kernel.org/pub/scm/linux/kernel/git/trace/linux-trace:
      Documentation: tracing: Update fprobe event example with BTF field
      selftests/ftrace: Add BTF fields access testcases
      tracing/fprobe-event: Assume fprobe is a return event by $retval
      tracing/probes: Add string type check with BTF
      tracing/probes: Support BTF field access from $retval
      tracing/probes: Support BTF based data structure field access
      tracing/probes: Add a function to search a member of a struct/union
      tracing/probes: Move finding func-proto API and getting func-param API to trace_btf
      tracing/probes: Support BTF argument on module functions
      tracing/eprobe: Iterate trace_eprobe directly
      kernel: kprobes: Use struct_size()
    b70100f2
btf.c 220 KB