diff options
| author | 2024-07-15 11:39:44 -0700 | |
|---|---|---|
| committer | 2024-07-15 11:39:44 -0700 | |
| commit | 2aae1d67fd1d9070f8f23a6e7d9a7a093cf35fbb (patch) | |
| tree | 425d848ecbbd12856fe7ef7190b8497d47ed4c7e /tools/perf/scripts/python/task-analyzer.py | |
| parent | Merge tag 'vfs-6.11.mount.api' of git://git.kernel.org/pub/scm/linux/kernel/git/vfs/vfs (diff) | |
| parent | fs: fix dentry size (diff) | |
| download | linux-rng-2aae1d67fd1d9070f8f23a6e7d9a7a093cf35fbb.tar.xz linux-rng-2aae1d67fd1d9070f8f23a6e7d9a7a093cf35fbb.zip | |
Merge tag 'vfs-6.11.inode' of git://git.kernel.org/pub/scm/linux/kernel/git/vfs/vfs
Pull vfs inode / dentry updates from Christian Brauner:
 "This contains smaller performance improvements to inodes and dentries:
  inode:
   - Add rcu based inode lookup variants.
     They avoid one inode hash lock acquire in the common case thereby
     significantly reducing contention. We already support RCU-based
     operations but didn't take advantage of them during inode
     insertion.
     Callers of iget_locked() get the improvement without any code
     changes. Callers that need a custom callback can switch to
     iget5_locked_rcu() as e.g., did btrfs.
     With 20 threads each walking a dedicated 1000 dirs * 1000 files
     directory tree to stat(2) on a 32 core + 24GB ram vm:
        before: 3.54s user 892.30s system 1966% cpu 45.549 total
        after:  3.28s user 738.66s system 1955% cpu 37.932 total (-16.7%)
     Long-term we should pick up the effort to introduce more
     fine-grained locking and possibly improve on the currently used
     hash implementation.
   - Start zeroing i_state in inode_init_always() instead of doing it in
     individual filesystems.
     This allows us to remove an unneeded lock acquire in new_inode()
     and not burden individual filesystems with this.
  dcache:
   - Move d_lockref out of the area used by RCU lookup to avoid
     cacheline ping poing because the embedded name is sharing a
     cacheline with d_lockref.
   - Fix dentry size on 32bit with CONFIG_SMP=y so it does actually end
     up with 128 bytes in total"
* tag 'vfs-6.11.inode' of git://git.kernel.org/pub/scm/linux/kernel/git/vfs/vfs:
  fs: fix dentry size
  vfs: move d_lockref out of the area used by RCU lookup
  bcachefs: remove now spurious i_state initialization
  xfs: remove now spurious i_state initialization in xfs_inode_alloc
  vfs: partially sanitize i_state zeroing on inode creation
  xfs: preserve i_state around inode_init_always in xfs_reinit_inode
  btrfs: use iget5_locked_rcu
  vfs: add rcu-based find_inode variants for iget ops
Diffstat (limited to 'tools/perf/scripts/python/task-analyzer.py')
0 files changed, 0 insertions, 0 deletions
