Btrfs: remove last_log_alloc allocator optimization
authorChris Mason <chris.mason@oracle.com>
Fri, 3 Oct 2008 16:24:01 +0000 (12:24 -0400)
committerChris Mason <chris.mason@oracle.com>
Fri, 3 Oct 2008 16:24:01 +0000 (12:24 -0400)
The tree logging code was trying to separate tree log allocations
from normal metadata allocations to improve writeback patterns during
an fsync.

But, the code was not effective and ended up just mixing tree log
blocks with regular metadata.  That seems to be working fairly well,
so the last_log_alloc code can be removed.

Signed-off-by: Chris Mason <chris.mason@oracle.com>
fs/btrfs/ctree.h
fs/btrfs/extent-tree.c
fs/btrfs/transaction.c

index 94e0cdfddc0c1bee5126aa704da3c3213117c838..8566eb30f56758515c73a06d67d4359b31f58ecf 100644 (file)
@@ -672,7 +672,6 @@ struct btrfs_fs_info {
        u64 delalloc_bytes;
        u64 last_alloc;
        u64 last_data_alloc;
-       u64 last_log_alloc;
 
        spinlock_t ref_cache_lock;
        u64 total_ref_cache_size;
index db37b867e4f168089ba59d1e801a3637dd579e0b..29380467b6717b00da27ae651060856893d7c3ac 100644 (file)
@@ -2228,13 +2228,6 @@ static int noinline find_free_extent(struct btrfs_trans_handle *trans,
        if ((data & BTRFS_BLOCK_GROUP_DATA) && btrfs_test_opt(root, SSD))
                last_ptr = &root->fs_info->last_data_alloc;
 
-       if (root->root_key.objectid == BTRFS_TREE_LOG_OBJECTID) {
-               last_ptr = &root->fs_info->last_log_alloc;
-               if (!last_ptr == 0 && root->fs_info->last_alloc) {
-                       *last_ptr = root->fs_info->last_alloc + empty_cluster;
-               }
-       }
-
        if (last_ptr) {
                if (*last_ptr)
                        hint_byte = *last_ptr;
index 11266d68a6c991777f55e772c61339fa3841f35a..5ecc24d634a264cc0452f047ecd1fcb804be1d3c 100644 (file)
@@ -61,7 +61,6 @@ static noinline int join_transaction(struct btrfs_root *root)
                root->fs_info->generation++;
                root->fs_info->last_alloc = 0;
                root->fs_info->last_data_alloc = 0;
-               root->fs_info->last_log_alloc = 0;
                cur_trans->num_writers = 1;
                cur_trans->num_joined = 0;
                cur_trans->transid = root->fs_info->generation;