• Linus Torvalds's avatar
    Merge tag 'trace-v6.7' of git://git.kernel.org/pub/scm/linux/kernel/git/trace/linux-trace · 31e5f934
    Linus Torvalds authored
    Pull tracing updates from Steven Rostedt:
    
     - Remove eventfs_file descriptor
    
       This is the biggest change, and the second part of making eventfs
       create its files dynamically.
    
       In 6.6 the first part was added, and that maintained a one to one
       mapping between eventfs meta descriptors and the directories and file
       inodes and dentries that were dynamically created. The directories
       were represented by a eventfs_inode and the files were represented by
       a eventfs_file.
    
       In v6.7 the eventfs_file is removed. As all events have the same
       directory make up (sched_switch has an "enable", "id", "format", etc
       files), the handing of what files are underneath each leaf eventfs
       directory is moved back to the tracing subsystem via a callback.
    
       When an event is added to the eventfs, it registers an array of
       evenfs_entry's. These hold the names of the files and the callbacks
       to call when the file is referenced. The callback gets the name so
       that the same callback may be used by multiple files. The callback
       then supplies the filesystem_operations structure needed to create
       this file.
    
       This has brought the memory footprint of creating multiple eventfs
       instances down by 2 megs each!
    
     - User events now has persistent events that are not associated to a
       single processes. These are privileged events that hang around even
       if no process is attached to them
    
     - Clean up of seq_buf
    
       There's talk about using seq_buf more to replace strscpy() and
       friends. But this also requires some minor modifications of seq_buf
       to be able to do this
    
     - Expand instance ring buffers individually
    
       Currently if boot up creates an instance, and a trace event is
       enabled on that instance, the ring buffer for that instance and the
       top level ring buffer are expanded (1.4 MB per CPU). This wastes
       memory as this happens when nothing is using the top level instance
    
     - Other minor clean ups and fixes
    
    * tag 'trace-v6.7' of git://git.kernel.org/pub/scm/linux/kernel/git/trace/linux-trace: (34 commits)
      seq_buf: Export seq_buf_puts()
      seq_buf: Export seq_buf_putc()
      eventfs: Use simple_recursive_removal() to clean up dentries
      eventfs: Remove special processing of dput() of events directory
      eventfs: Delete eventfs_inode when the last dentry is freed
      eventfs: Hold eventfs_mutex when calling callback functions
      eventfs: Save ownership and mode
      eventfs: Test for ei->is_freed when accessing ei->dentry
      eventfs: Have a free_ei() that just frees the eventfs_inode
      eventfs: Remove "is_freed" union with rcu head
      eventfs: Fix kerneldoc of eventfs_remove_rec()
      tracing: Have the user copy of synthetic event address use correct context
      eventfs: Remove extra dget() in eventfs_create_events_dir()
      tracing: Have trace_event_file have ref counters
      seq_buf: Introduce DECLARE_SEQ_BUF and seq_buf_str()
      eventfs: Fix typo in eventfs_inode union comment
      eventfs: Fix WARN_ON() in create_file_dentry()
      powerpc: Remove initialisation of readpos
      tracing/histograms: Simplify last_cmd_set()
      seq_buf: fix a misleading comment
      ...
    31e5f934
inode.c 19.8 KB