Miao Xie
2014-Jan-14 12:31 UTC
[PATCH V2 0/4] Btrfs: improve the performance fluctuating of the fsync
We met the performance fluctuating problem when we synchronized the file data. The main reason of this problem was that we might only flush part dirty pages in a ordered extent, then got that ordered extent, wait for the csum calcucation. But if no task flushed the left part, we would wait until the flusher flushed them, sometimes we need wait for several seconds, it made the performance drop down suddenly. This patchset improved the above problem. The 1st patch helps us filter the logged ordered extents, the 2nd one removes the unnecessary lock operation, the 3rd one prevents the ordered extents from being inserted into a global list, it can reduce the lock contention and the traverse time of list. The 4th is the key patch to the above problem, it fixes the problem by flush the left dirty pages aggressively. Miao Xie (4): Btrfs: filter the ordered extents that has been logged Btrfs: don't get the lock when adding a csum into a ordered extent Btrfs: don't mix the ordered extents of all files together during logging the inodes Btrfs: flush the dirty pages of the ordered extent aggressively during logging csum fs/btrfs/ordered-data.c | 46 +++++++++++++++++++++++++++++----------- fs/btrfs/ordered-data.h | 6 ++++- fs/btrfs/tree-log.c | 53 +++++++++++++++++----------------------------- 3 files changed, 58 insertions(+), 47 deletions(-) -- To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html