2009-06-08 01:10:26

by Gui, Jianfeng/归 剑峰

[permalink] [raw]
Subject: Re: [PATCH 02/20] io-controller: Common flat fair queuing code in elevaotor layer

Vivek Goyal wrote:
...
> +
> +/* Get next queue for service. */
> +struct io_queue *elv_get_next_ioq(struct request_queue *q, int extract)
> +{
> + struct elv_fq_data *efqd = &q->elevator->efqd;
> + struct io_entity *entity = NULL;
> + struct io_queue *ioq = NULL;
> + struct io_sched_data *sd;
> +
> + /*
> + * one can check for which queue will be selected next while having
> + * one queue active. preempt logic uses it.
> + */
> + BUG_ON(extract && efqd->active_queue != NULL);
> +
> + if (!efqd->busy_queues)
> + return NULL;
> +
> + sd = &efqd->root_group->sched_data;
> + if (extract)
> + entity = bfq_lookup_next_entity(sd, 1);
> + else
> + entity = bfq_lookup_next_entity(sd, 0);

This if and else branch is not needed.

Signed-off-by: Gui Jianfeng <[email protected]>
---
block/elevator-fq.c | 5 +----
1 files changed, 1 insertions(+), 4 deletions(-)

diff --git a/block/elevator-fq.c b/block/elevator-fq.c
index 3c5f9da..655162b 100644
--- a/block/elevator-fq.c
+++ b/block/elevator-fq.c
@@ -3069,10 +3069,7 @@ struct io_queue *elv_get_next_ioq(struct request_queue *q, int extract)

sd = &efqd->root_group->sched_data;
for (; sd != NULL; sd = entity->my_sched_data) {
- if (extract)
- entity = bfq_lookup_next_entity(sd, 1);
- else
- entity = bfq_lookup_next_entity(sd, 0);
+ entity = bfq_lookup_next_entity(sd, extract);

/*
* entity can be null despite the fact that there are busy
--
1.5.4.rc3


2009-06-08 13:00:04

by Vivek Goyal

[permalink] [raw]
Subject: Re: [PATCH 02/20] io-controller: Common flat fair queuing code in elevaotor layer

On Mon, Jun 08, 2009 at 09:08:44AM +0800, Gui Jianfeng wrote:
> Vivek Goyal wrote:
> ...
> > +
> > +/* Get next queue for service. */
> > +struct io_queue *elv_get_next_ioq(struct request_queue *q, int extract)
> > +{
> > + struct elv_fq_data *efqd = &q->elevator->efqd;
> > + struct io_entity *entity = NULL;
> > + struct io_queue *ioq = NULL;
> > + struct io_sched_data *sd;
> > +
> > + /*
> > + * one can check for which queue will be selected next while having
> > + * one queue active. preempt logic uses it.
> > + */
> > + BUG_ON(extract && efqd->active_queue != NULL);
> > +
> > + if (!efqd->busy_queues)
> > + return NULL;
> > +
> > + sd = &efqd->root_group->sched_data;
> > + if (extract)
> > + entity = bfq_lookup_next_entity(sd, 1);
> > + else
> > + entity = bfq_lookup_next_entity(sd, 0);
>
> This if and else branch is not needed.
>
> Signed-off-by: Gui Jianfeng <[email protected]>
> ---
> block/elevator-fq.c | 5 +----
> 1 files changed, 1 insertions(+), 4 deletions(-)
>
> diff --git a/block/elevator-fq.c b/block/elevator-fq.c
> index 3c5f9da..655162b 100644
> --- a/block/elevator-fq.c
> +++ b/block/elevator-fq.c
> @@ -3069,10 +3069,7 @@ struct io_queue *elv_get_next_ioq(struct request_queue *q, int extract)
>
> sd = &efqd->root_group->sched_data;
> for (; sd != NULL; sd = entity->my_sched_data) {
> - if (extract)
> - entity = bfq_lookup_next_entity(sd, 1);
> - else
> - entity = bfq_lookup_next_entity(sd, 0);
> + entity = bfq_lookup_next_entity(sd, extract);
>
> /*
> * entity can be null despite the fact that there are busy

Thanks Gui. Queued for next posting.

Thanks
Vivek