[PATCH] IO Controller: No need to stop idling in as

From: Gui Jianfeng
Date: Fri Mar 27 2009 - 03:00:32 EST


Vivek Goyal wrote:

> .elevator_alloc_sched_queue_fn = as_alloc_as_queue,
> .elevator_free_sched_queue_fn = as_free_as_queue,
> +#ifdef CONFIG_IOSCHED_AS_HIER
> + .elevator_expire_ioq_fn = as_expire_ioq,
> + .elevator_active_ioq_set_fn = as_active_ioq_set,
> },
> -
> + .elevator_features = ELV_IOSCHED_NEED_FQ | ELV_IOSCHED_SINGLE_IOQ | ELV_IOSCHED_DONT_IDLE,

Hi Vivek,

I found the IO Controller doesn't work in as.
I dig into this issue, and notice that you stop idling in as. IMHO, this will cause
active ioq is always expired when tring to choose a new ioq to serve(elv_fq_select_ioq).
Because idling is disabled, active ioq can't be kept anymore.
So i just get rid of ELV_IOSCHED_DONT_IDLE, and it works fine this time.

Signed-off-by: Gui Jianfeng <guijianfeng@xxxxxxxxxxxxxx>
---
block/as-iosched.c | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/block/as-iosched.c b/block/as-iosched.c
index 27c14a7..499c521 100644
--- a/block/as-iosched.c
+++ b/block/as-iosched.c
@@ -1689,7 +1689,7 @@ static struct elevator_type iosched_as = {
.elevator_expire_ioq_fn = as_expire_ioq,
.elevator_active_ioq_set_fn = as_active_ioq_set,
},
- .elevator_features = ELV_IOSCHED_NEED_FQ | ELV_IOSCHED_SINGLE_IOQ | ELV_IOSCHED_DONT_IDLE,
+ .elevator_features = ELV_IOSCHED_NEED_FQ | ELV_IOSCHED_SINGLE_IOQ,
#else
},
#endif
--
1.5.4.rc3


--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/