Commit fde6ad22 authored by Nick Piggin's avatar Nick Piggin Committed by Linus Torvalds

[PATCH] blk: branch hints

Sprinkle around a few branch hints in the block layer.
Signed-off-by: default avatarNick Piggin <nickpiggin@yahoo.com.au>
Cc: Jens Axboe <axboe@suse.de>
Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
parent 250dccc0
...@@ -1439,7 +1439,7 @@ EXPORT_SYMBOL(blk_remove_plug); ...@@ -1439,7 +1439,7 @@ EXPORT_SYMBOL(blk_remove_plug);
*/ */
void __generic_unplug_device(request_queue_t *q) void __generic_unplug_device(request_queue_t *q)
{ {
if (test_bit(QUEUE_FLAG_STOPPED, &q->queue_flags)) if (unlikely(test_bit(QUEUE_FLAG_STOPPED, &q->queue_flags)))
return; return;
if (!blk_remove_plug(q)) if (!blk_remove_plug(q))
...@@ -1763,7 +1763,7 @@ EXPORT_SYMBOL(blk_init_queue_node); ...@@ -1763,7 +1763,7 @@ EXPORT_SYMBOL(blk_init_queue_node);
int blk_get_queue(request_queue_t *q) int blk_get_queue(request_queue_t *q)
{ {
if (!test_bit(QUEUE_FLAG_DEAD, &q->queue_flags)) { if (likely(!test_bit(QUEUE_FLAG_DEAD, &q->queue_flags))) {
atomic_inc(&q->refcnt); atomic_inc(&q->refcnt);
return 0; return 0;
} }
...@@ -2584,7 +2584,7 @@ static int __make_request(request_queue_t *q, struct bio *bio) ...@@ -2584,7 +2584,7 @@ static int __make_request(request_queue_t *q, struct bio *bio)
spin_lock_prefetch(q->queue_lock); spin_lock_prefetch(q->queue_lock);
barrier = bio_barrier(bio); barrier = bio_barrier(bio);
if (barrier && (q->ordered == QUEUE_ORDERED_NONE)) { if (unlikely(barrier) && (q->ordered == QUEUE_ORDERED_NONE)) {
err = -EOPNOTSUPP; err = -EOPNOTSUPP;
goto end_io; goto end_io;
} }
...@@ -2685,7 +2685,7 @@ static int __make_request(request_queue_t *q, struct bio *bio) ...@@ -2685,7 +2685,7 @@ static int __make_request(request_queue_t *q, struct bio *bio)
/* /*
* REQ_BARRIER implies no merging, but lets make it explicit * REQ_BARRIER implies no merging, but lets make it explicit
*/ */
if (barrier) if (unlikely(barrier))
req->flags |= (REQ_HARDBARRIER | REQ_NOMERGE); req->flags |= (REQ_HARDBARRIER | REQ_NOMERGE);
req->errors = 0; req->errors = 0;
...@@ -2809,7 +2809,7 @@ static inline void block_wait_queue_running(request_queue_t *q) ...@@ -2809,7 +2809,7 @@ static inline void block_wait_queue_running(request_queue_t *q)
{ {
DEFINE_WAIT(wait); DEFINE_WAIT(wait);
while (test_bit(QUEUE_FLAG_DRAIN, &q->queue_flags)) { while (unlikely(test_bit(QUEUE_FLAG_DRAIN, &q->queue_flags))) {
struct request_list *rl = &q->rq; struct request_list *rl = &q->rq;
prepare_to_wait_exclusive(&rl->drain, &wait, prepare_to_wait_exclusive(&rl->drain, &wait,
...@@ -2918,7 +2918,7 @@ void generic_make_request(struct bio *bio) ...@@ -2918,7 +2918,7 @@ void generic_make_request(struct bio *bio)
goto end_io; goto end_io;
} }
if (test_bit(QUEUE_FLAG_DEAD, &q->queue_flags)) if (unlikely(test_bit(QUEUE_FLAG_DEAD, &q->queue_flags)))
goto end_io; goto end_io;
block_wait_queue_running(q); block_wait_queue_running(q);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment