Linus Torvalds 2aae1d67fd vfs-6.11.inode
-----BEGIN PGP SIGNATURE-----
 
 iHUEABYKAB0WIQRAhzRXHqcMeLMyaSiRxhvAZXjcogUCZpEG2wAKCRCRxhvAZXjc
 ooW/AQDzyY+xNGt4OPMvlyFUHd5RcyiLsMhYrkKc3FaIFjesVgD+PFW5PPW12c0V
 Z4VHg9w1HDDuUn4XvELs7OXZpek7RgU=
 =eDC8
 -----END PGP SIGNATURE-----

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
2024-07-15 11:39:44 -07:00
..
2024-05-29 09:25:15 -07:00
2024-07-02 21:23:00 +02:00
2024-07-15 11:31:32 -07:00
2024-07-15 11:39:44 -07:00
2024-07-15 11:39:44 -07:00
2024-07-15 11:14:59 -07:00
2024-07-15 11:31:32 -07:00
2024-05-13 14:14:05 -07:00
2024-07-15 11:14:59 -07:00
2024-07-15 11:31:32 -07:00
2024-07-15 11:18:49 -07:00
2024-07-15 11:31:32 -07:00
2024-07-15 11:31:32 -07:00
2024-05-21 09:51:42 -07:00
2024-07-15 11:14:59 -07:00
2024-07-15 10:52:51 -07:00
2024-07-15 11:31:32 -07:00
2024-07-15 11:14:59 -07:00
2024-07-15 11:08:14 -07:00
2024-07-15 11:31:32 -07:00
2024-05-21 09:51:42 -07:00
2024-07-15 11:14:59 -07:00
2024-07-11 09:03:28 -07:00
2024-07-15 11:08:14 -07:00
2024-07-15 10:52:51 -07:00
2024-07-15 10:52:51 -07:00
2024-05-28 11:52:53 +02:00
2024-05-28 11:52:49 +02:00
2024-07-15 11:31:32 -07:00
2024-04-23 13:27:43 +02:00
2024-05-28 11:52:45 +02:00
2024-04-23 15:37:02 +02:00
2024-07-15 11:31:32 -07:00
2024-07-15 11:39:44 -07:00
2024-06-25 11:15:48 +02:00
2024-05-02 20:35:57 +02:00
2024-07-15 11:14:59 -07:00
2024-05-23 12:04:36 -07:00
2024-04-25 20:56:20 -07:00
2024-07-15 10:52:51 -07:00
2024-05-10 08:26:31 +02:00
2024-03-12 20:03:34 -07:00
2024-07-15 11:39:44 -07:00
2024-07-11 09:03:28 -07:00
2024-03-11 10:21:06 -07:00
2024-07-15 10:52:51 -07:00
2024-03-13 12:53:53 -07:00
2024-07-15 10:52:51 -07:00
2024-02-02 13:11:49 +01:00
2024-03-12 20:03:34 -07:00
2024-05-02 16:28:20 +02:00
2024-05-24 13:34:07 +02:00
2024-04-10 16:23:02 -06:00
2024-02-15 23:43:47 -05:00