]> git.kernelconcepts.de Git - karo-tx-linux.git/commitdiff
btrfs: remove unlikely from data-dependent branches and slow paths
authorDavid Sterba <dsterba@suse.cz>
Mon, 29 Sep 2014 23:33:33 +0000 (01:33 +0200)
committerDavid Sterba <dsterba@suse.cz>
Thu, 2 Oct 2014 14:15:21 +0000 (16:15 +0200)
There are the branch hints that obviously depend on the data being
processed, the CPU predictor will do better job according to the actual
load. It also does not make sense to use the hints in slow paths that do
a lot of other operations like locking, waiting or IO.

Signed-off-by: David Sterba <dsterba@suse.cz>
fs/btrfs/extent-tree.c
fs/btrfs/file.c
fs/btrfs/inode.c
fs/btrfs/ioctl.c
fs/btrfs/transaction.c

index 44d04979f071711f99989d00fc2aeb073bdffa4d..ede740bfaac0edc50b42929e2edd24face31f2a7 100644 (file)
@@ -9694,7 +9694,7 @@ void btrfs_end_nocow_write(struct btrfs_root *root)
 
 int btrfs_start_nocow_write(struct btrfs_root *root)
 {
-       if (unlikely(atomic_read(&root->will_be_snapshoted)))
+       if (atomic_read(&root->will_be_snapshoted))
                return 0;
 
        percpu_counter_inc(&root->subv_writers->counter);
@@ -9702,7 +9702,7 @@ int btrfs_start_nocow_write(struct btrfs_root *root)
         * Make sure counter is updated before we check for snapshot creation.
         */
        smp_mb();
-       if (unlikely(atomic_read(&root->will_be_snapshoted))) {
+       if (atomic_read(&root->will_be_snapshoted)) {
                btrfs_end_nocow_write(root);
                return 0;
        }
index 29b147d46b0a116a8bd1826a57db89f1ee8e0c3a..a18ceabd99a87978f785e2ef0b6318eab3b80ab9 100644 (file)
@@ -452,7 +452,7 @@ static noinline int btrfs_copy_from_user(loff_t pos, int num_pages,
                if (unlikely(copied == 0))
                        break;
 
-               if (unlikely(copied < PAGE_CACHE_SIZE - offset)) {
+               if (copied < PAGE_CACHE_SIZE - offset) {
                        offset += copied;
                } else {
                        pg++;
@@ -1792,7 +1792,7 @@ static ssize_t btrfs_file_write_iter(struct kiocb *iocb,
        if (sync)
                atomic_inc(&BTRFS_I(inode)->sync_writers);
 
-       if (unlikely(file->f_flags & O_DIRECT)) {
+       if (file->f_flags & O_DIRECT) {
                num_written = __btrfs_direct_write(iocb, from, pos);
        } else {
                num_written = __btrfs_buffered_write(file, from, pos);
index 998e67fdf2f6b6ce49db5b2eb3106e735ce36714..47d214560831a4d4ddb052c2b12ec1c36961b576 100644 (file)
@@ -7802,9 +7802,9 @@ static int btrfs_submit_direct_hook(int rw, struct btrfs_dio_private *dip,
        atomic_inc(&dip->pending_bios);
 
        while (bvec <= (orig_bio->bi_io_vec + orig_bio->bi_vcnt - 1)) {
-               if (unlikely(map_length < submit_len + bvec->bv_len ||
+               if (map_length < submit_len + bvec->bv_len ||
                    bio_add_page(bio, bvec->bv_page, bvec->bv_len,
-                                bvec->bv_offset) < bvec->bv_len)) {
+                                bvec->bv_offset) < bvec->bv_len) {
                        /*
                         * inc the count before we submit the bio so
                         * we know the end IO handler won't happen before
@@ -8017,8 +8017,8 @@ static ssize_t btrfs_direct_IO(int rw, struct kiocb *iocb,
                ret = btrfs_delalloc_reserve_space(inode, count);
                if (ret)
                        goto out;
-       } else if (unlikely(test_bit(BTRFS_INODE_READDIO_NEED_LOCK,
-                                    &BTRFS_I(inode)->runtime_flags))) {
+       } else if (test_bit(BTRFS_INODE_READDIO_NEED_LOCK,
+                                    &BTRFS_I(inode)->runtime_flags)) {
                inode_dio_done(inode);
                flags = DIO_LOCKING | DIO_SKIP_HOLES;
                wakeup = false;
index 0ff212757b955cf90e3f0e7736145e1ef432264e..f2c60cd70e63ea44a6ab81160c0493662b55463b 100644 (file)
@@ -3167,7 +3167,7 @@ static void clone_update_extent_map(struct inode *inode,
                                        em->start + em->len - 1, 0);
        }
 
-       if (unlikely(ret))
+       if (ret)
                set_bit(BTRFS_INODE_NEEDS_FULL_SYNC,
                        &BTRFS_I(inode)->runtime_flags);
 }
index 16d0c1b62b3ef2eec7e225451327cafe89994e10..8eded14e8c5c414268f4438c0c341c64b628f2b5 100644 (file)
@@ -418,7 +418,7 @@ start_transaction(struct btrfs_root *root, u64 num_items, unsigned int type,
                /*
                 * Do the reservation for the relocation root creation
                 */
-               if (unlikely(need_reserve_reloc_root(root))) {
+               if (need_reserve_reloc_root(root)) {
                        num_bytes += root->nodesize;
                        reloc_reserved = true;
                }