]> git.kernelconcepts.de Git - karo-tx-linux.git/commitdiff
[BLOCK] elevator switch fixes/cleanup
authorJens Axboe <axboe@suse.de>
Fri, 28 Oct 2005 06:30:39 +0000 (08:30 +0200)
committerJens Axboe <axboe@nelson.home.kernel.dk>
Fri, 28 Oct 2005 06:48:23 +0000 (08:48 +0200)
- 100msec sleep is a little excessive, lots of requests can complete
  in that timeframe. Use 10msec instead.
- Rename QUEUE_FLAG_BYPASS to QUEUE_FLAG_ELVSWITCH to indicate what
  is going on.

Signed-off-by: Jens Axboe <axboe@suse.de>
drivers/block/elevator.c
drivers/block/ll_rw_blk.c
include/linux/blkdev.h

index 272d939466211a73e0f97ef5f24b5a60e6d5586c..cf9bedbb761bcc9e647de77db2017efe646bad09 100644 (file)
@@ -671,14 +671,14 @@ static void elevator_switch(request_queue_t *q, struct elevator_type *new_e)
         */
        spin_lock_irq(q->queue_lock);
 
-       set_bit(QUEUE_FLAG_BYPASS, &q->queue_flags);
+       set_bit(QUEUE_FLAG_ELVSWITCH, &q->queue_flags);
 
        while (q->elevator->ops->elevator_dispatch_fn(q, 1))
                ;
 
        while (q->rq.elvpriv) {
                spin_unlock_irq(q->queue_lock);
-               msleep(100);
+               msleep(10);
                spin_lock_irq(q->queue_lock);
        }
 
@@ -703,7 +703,7 @@ static void elevator_switch(request_queue_t *q, struct elevator_type *new_e)
         * finally exit old elevator and turn off BYPASS.
         */
        elevator_exit(old_elevator);
-       clear_bit(QUEUE_FLAG_BYPASS, &q->queue_flags);
+       clear_bit(QUEUE_FLAG_ELVSWITCH, &q->queue_flags);
        return;
 
 fail_register:
@@ -716,7 +716,7 @@ fail_register:
 fail:
        q->elevator = old_elevator;
        elv_register_queue(q);
-       clear_bit(QUEUE_FLAG_BYPASS, &q->queue_flags);
+       clear_bit(QUEUE_FLAG_ELVSWITCH, &q->queue_flags);
        kfree(e);
 error:
        elevator_put(new_e);
index f7c9931cb3803e64590d6998e9645ffff153b6e2..fc12d019b19d52c8973bd2f7acb582963c3fe22a 100644 (file)
@@ -1940,7 +1940,7 @@ get_rq:
        if (rl->count[rw] >= queue_congestion_on_threshold(q))
                set_queue_congested(q, rw);
 
-       priv = !test_bit(QUEUE_FLAG_BYPASS, &q->queue_flags);
+       priv = !test_bit(QUEUE_FLAG_ELVSWITCH, &q->queue_flags);
        if (priv)
                rl->elvpriv++;
 
index 6186d5e2110fed06a5315a3692b75fdf21504b02..7d9d14d6d8f9dddea7c97d2dcfcf0348efc7760b 100644 (file)
@@ -442,7 +442,7 @@ enum {
 #define QUEUE_FLAG_DEAD                5       /* queue being torn down */
 #define QUEUE_FLAG_REENTER     6       /* Re-entrancy avoidance */
 #define QUEUE_FLAG_PLUGGED     7       /* queue is plugged */
-#define QUEUE_FLAG_BYPASS      8       /* don't use elevator, just do FIFO */
+#define QUEUE_FLAG_ELVSWITCH   8       /* don't use elevator, just do FIFO */
 #define QUEUE_FLAG_FLUSH       9       /* doing barrier flush sequence */
 
 #define blk_queue_plugged(q)   test_bit(QUEUE_FLAG_PLUGGED, &(q)->queue_flags)