Skip to content
  • Chris Mason's avatar
    Btrfs: reduce stalls during transaction commit · b7ec40d7
    Chris Mason authored
    
    
    To avoid deadlocks and reduce latencies during some critical operations, some
    transaction writers are allowed to jump into the running transaction and make
    it run a little longer, while others sit around and wait for the commit to
    finish.
    
    This is a bit unfair, especially when the callers that jump in do a bunch
    of IO that makes all the others procs on the box wait.  This commit
    reduces the stalls this produces by pre-reading file extent pointers
    during btrfs_finish_ordered_io before the transaction is joined.
    
    It also tunes the drop_snapshot code to politely wait for transactions
    that have started writing out their delayed refs to finish.  This avoids
    new delayed refs being flooded into the queue while we're trying to
    close off the transaction.
    
    Signed-off-by: default avatarChris Mason <chris.mason@oracle.com>
    b7ec40d7