]> git.baikalelectronics.ru Git - kernel.git/commit
Btrfs: improve the delayed inode throttling
authorChris Mason <chris.mason@fusionio.com>
Mon, 4 Mar 2013 22:13:31 +0000 (17:13 -0500)
committerChris Mason <chris.mason@fusionio.com>
Thu, 7 Mar 2013 12:52:40 +0000 (07:52 -0500)
commitd2d3a46d646d7c63e6b07dc58318c7c90b64d0f9
treed3f479c1431a2607d7154d7a1e10878533d38008
parente0f435ce9510cad05dc620f7fdb9fea017e4e2ac
Btrfs: improve the delayed inode throttling

The delayed inode code batches up changes to the btree in hopes of doing
them in bulk.  As the changes build up, processes kick off worker
threads and wait for them to make progress.

The current code kicks off an async work queue item for each delayed
node, which creates a lot of churn.  It also uses a fixed 1 HZ waiting
period for the throttle, which allows us to build a lot of pending
work and can slow down the commit.

This changes us to watch a sequence counter as it is bumped during the
operations.  We kick off fewer work items and have each work item do
more work.

Signed-off-by: Chris Mason <chris.mason@fusionio.com>
fs/btrfs/delayed-inode.c
fs/btrfs/delayed-inode.h