• Chris Mason's avatar
    Btrfs: improve the delayed inode throttling · de3cb945
    Chris Mason authored
    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: default avatarChris Mason <chris.mason@fusionio.com>
    de3cb945
delayed-inode.c 51.8 KB