• Linus Torvalds's avatar
    Merge tag 'trace-v6.6' of git://git.kernel.org/pub/scm/linux/kernel/git/trace/linux-trace · 34232fcf
    Linus Torvalds authored
    Pull tracing updates from Steven Rostedt:
     "User visible changes:
    
       - Added a way to easier filter with cpumasks:
    
           # echo 'cpumask & CPUS{17-42}' > /sys/kernel/tracing/events/ipi_send_cpumask/filter
    
       - Show actual size of ring buffer after modifying the ring buffer
         size via buffer_size_kb.
    
         Currently it just returns what was written, but the actual size
         rounds up to the sub buffer size. Show that real size instead.
    
      Major changes:
    
       - Added "eventfs". This is the code that handles the inodes and
         dentries of tracefs/events directory. As there are thousands of
         events, and each event has several inodes and dentries that
         currently exist even when tracing is never used, they take up
         precious memory. Instead, eventfs will allocate the inodes and
         dentries in a JIT way (similar to what procfs does). There is now
         metadata that handles the events and subdirectories, and will
         create the inodes and dentries when they are used.
    
         Note, I also have patches that remove the subdirectory meta data,
         but will wait till the next merge window before applying them. It's
         a little more complex, and I want to make sure the dynamic code
         works properly before adding more complexity, making it easier to
         revert if need be.
    
      Minor changes:
    
       - Optimization to user event list traversal
    
       - Remove intermediate permission of tracefs files (note the
         intermediate permission removes all access to the files so it is
         not a security concern, but just a clean up)
    
       - Add the complex fix to FORTIFY_SOURCE to the kernel stack event
         logic
    
       - Other minor cleanups"
    
    * tag 'trace-v6.6' of git://git.kernel.org/pub/scm/linux/kernel/git/trace/linux-trace: (29 commits)
      tracefs: Remove kerneldoc from struct eventfs_file
      tracefs: Avoid changing i_mode to a temp value
      tracing/user_events: Optimize safe list traversals
      ftrace: Remove empty declaration ftrace_enable_daemon() and ftrace_disable_daemon()
      tracing: Remove unused function declarations
      tracing/filters: Document cpumask filtering
      tracing/filters: Further optimise scalar vs cpumask comparison
      tracing/filters: Optimise CPU vs cpumask filtering when the user mask is a single CPU
      tracing/filters: Optimise scalar vs cpumask filtering when the user mask is a single CPU
      tracing/filters: Optimise cpumask vs cpumask filtering when user mask is a single CPU
      tracing/filters: Enable filtering the CPU common field by a cpumask
      tracing/filters: Enable filtering a scalar field by a cpumask
      tracing/filters: Enable filtering a cpumask field by another cpumask
      tracing/filters: Dynamically allocate filter_pred.regex
      test: ftrace: Fix kprobe test for eventfs
      eventfs: Move tracing/events to eventfs
      eventfs: Implement removal of meta data from eventfs
      eventfs: Implement functions to create files and dirs when accessed
      eventfs: Implement eventfs lookup, read, open functions
      eventfs: Implement eventfs file add functions
      ...
    34232fcf
trace.c 258 KB