Btrfs: Reduce contention on the root node
Chris Mason authored

This calls unlock_up sooner in btrfs_search_slot in order to decrease the
amount of work done with the higher level tree locks held.

Also, it changes btrfs_tree_lock to spin for a big against the page lock
before scheduling.  This makes a big difference in context switch rate under
highly contended workloads.

Longer term, a better locking structure is needed than the page lock.
Signed-off-by: default avatarChris Mason <chris.mason@oracle.com>
f9efa9c7
Name Last commit Last update
..
COPYING Btrfs: add GPLv2
INSTALL Btrfs: Documentation update
Makefile Btrfs: Start btree concurrency work.
TODO Btrfs: add GPLv2
acl.c Btrfs: Include sched.h in the acl code for current (fixes compile on 2.6.23)
async-thread.c Btrfs: Worker thread optimizations
async-thread.h Btrfs: Worker thread optimizations
bit-radix.c Btrfs: trivial include fixups
bit-radix.h Btrfs: add GPLv2
btrfs_inode.h Btrfs: Add a per-inode csum mutex to avoid races creating csum items
compat.h Btrfs: Add workaround for AppArmor changing remove_suid()
crc32c.h Btrfs: Endianess bug fix for v0.13 with kernels
ctree.c Btrfs: Reduce contention on the root node
ctree.h Btrfs: Online btree defragmentation fixes
dir-item.c Btrfs: unaligned access fixes
disk-io.c Btrfs: Online btree defragmentation fixes
disk-io.h Btrfs: Online btree defragmentation fixes
extent-tree.c Btrfs: Online btree defragmentation fixes
extent_io.c Btrfs: Change find_extent_buffer to use TestSetPageLocked
extent_io.h Btrfs: Handle write errors on raid1 and raid10
extent_map.c Btrfs: kerneldoc comments for extent_map.c
extent_map.h Btrfs: Split the extent_map code into two parts
file-item.c Btrfs: Clone file data ioctl
file.c Btrfs: Add a per-inode csum mutex to avoid races creating csum items
hash.c btrfs-progs: Stop stomping on 'name' input parameter
hash.h
inode-item.c
inode-map.c
inode.c
ioctl.c
ioctl.h
locking.c
locking.h
ordered-data.c
ordered-data.h
print-tree.c
print-tree.h
root-tree.c
struct-funcs.c
super.c
sysfs.c
transaction.c
transaction.h
tree-defrag.c
volumes.c
volumes.h
xattr.c
xattr.h