• Linus Torvalds's avatar
    Merge tag 'probes-v6.7' of git://git.kernel.org/pub/scm/linux/kernel/git/trace/linux-trace · 05bf73aa
    Linus Torvalds authored
    Pull probes updates from Masami Hiramatsu:
     "Cleanups:
    
       - kprobes: Fixes typo in kprobes samples
    
       - tracing/eprobes: Remove 'break' after return
    
      kretprobe/fprobe performance improvements:
    
       - lib: Introduce new `objpool`, which is a high performance lockless
         object queue. This uses per-cpu ring array to allocate/release
         objects from the pre-allocated object pool.
    
         Since the index of ring array is a 32bit sequential counter, we can
         retry to push/pop the object pointer from the ring without lock (as
         seq-lock does)
    
       - lib: Add an objpool test module to test the functionality and
         evaluate the performance under some circumstances
    
       - kprobes/fprobe: Improve kretprobe and rethook scalability
         performance with objpool.
    
         This improves both legacy kretprobe and fprobe exit handler (which
         is based on rethook) to be scalable on SMP systems. Even with
         8-threads parallel test, it shows a great scalability improvement
    
       - Remove unneeded freelist.h which is replaced by objpool
    
       - objpool: Add maintainers entry for the objpool
    
       - objpool: Fix to remove unused include header lines"
    
    * tag 'probes-v6.7' of git://git.kernel.org/pub/scm/linux/kernel/git/trace/linux-trace:
      kprobes: unused header files removed
      MAINTAINERS: objpool added
      kprobes: freelist.h removed
      kprobes: kretprobe scalability improvement
      lib: objpool test module added
      lib: objpool added: ring-array based lockless MPMC
      tracing/eprobe: drop unneeded breaks
      samples: kprobes: Fixes a typo
    05bf73aa
fprobe.c 9.17 KB