summaryrefslogtreecommitdiffstats
path: root/fs/btrfs/delayed-ref.h
diff options
context:
space:
mode:
authorChris Mason <chris.mason@fusionio.com>2013-01-29 17:49:37 -0500
committerChris Mason <chris.mason@fusionio.com>2013-02-01 14:24:25 -0500
commit242e18c7c1a8ff3aa05c9fbb6e0bb427511152a6 (patch)
treeb284eaf8ef18253eb577078f14d542154d20dd94 /fs/btrfs/delayed-ref.h
parent8de972b4faa4be9b2a3c53103e18d86092a5da45 (diff)
downloadop-kernel-dev-242e18c7c1a8ff3aa05c9fbb6e0bb427511152a6.zip
op-kernel-dev-242e18c7c1a8ff3aa05c9fbb6e0bb427511152a6.tar.gz
Btrfs: reduce lock contention on extent buffer locks
The extent buffers have a refs_lock which we use to make coordinate freeing the extent buffer with operations on the radix tree. On tree roots and other extent buffers that very cache hot, this can be highly contended. These are also the extent buffers that are basically pinned in memory. This commit adds code to cmpxchg our way through the ref modifications, and as long as the result of the reference change is still pinned in ram, we skip the expensive spinlock. Signed-off-by: Chris Mason <chris.mason@fusionio.com>
Diffstat (limited to 'fs/btrfs/delayed-ref.h')
0 files changed, 0 insertions, 0 deletions
OpenPOWER on IntegriCloud