2010-11-30 08:41:52

by Gui, Jianfeng/归 剑峰

[permalink] [raw]
Subject: [PATCH] cfq-iosched: Get rid of on_st flag

It's able to check whether a CFQ group on a service tree by
checking "cfqg->rb_node". There's no need to maintain an
extra flag here.

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

diff --git a/block/cfq-iosched.c b/block/cfq-iosched.c
index e18d316..5d0349d 100644
--- a/block/cfq-iosched.c
+++ b/block/cfq-iosched.c
@@ -179,7 +179,6 @@ struct cfq_group {
/* group service_tree key */
u64 vdisktime;
unsigned int weight;
- bool on_st;

/* number of cfqq currently on this group */
int nr_cfqq;
@@ -863,7 +862,7 @@ cfq_group_service_tree_add(struct cfq_data *cfqd, struct cfq_group *cfqg)
struct rb_node *n;

cfqg->nr_cfqq++;
- if (cfqg->on_st)
+ if (!RB_EMPTY_NODE(&cfqg->rb_node))
return;

/*
@@ -879,7 +878,6 @@ cfq_group_service_tree_add(struct cfq_data *cfqd, struct cfq_group *cfqg)
cfqg->vdisktime = st->min_vdisktime;

__cfq_group_service_tree_add(st, cfqg);
- cfqg->on_st = true;
st->total_weight += cfqg->weight;
}

@@ -896,7 +894,6 @@ cfq_group_service_tree_del(struct cfq_data *cfqd, struct cfq_group *cfqg)
return;

cfq_log_cfqg(cfqd, cfqg, "del_from_rr group");
- cfqg->on_st = false;
st->total_weight -= cfqg->weight;
if (!RB_EMPTY_NODE(&cfqg->rb_node))
cfq_rb_erase(&cfqg->rb_node, st);
--
1.6.5.2


2010-11-30 14:23:57

by Vivek Goyal

[permalink] [raw]
Subject: Re: [PATCH] cfq-iosched: Get rid of on_st flag

On Tue, Nov 30, 2010 at 04:41:31PM +0800, Gui Jianfeng wrote:
> It's able to check whether a CFQ group on a service tree by
> checking "cfqg->rb_node". There's no need to maintain an
> extra flag here.
>
> Signed-off-by: Gui Jianfeng <[email protected]>
> Acked-by: Vivek Goyal <[email protected]>

Looks good to me.

Acked-by: Vivek Goyal <[email protected]>

Vivek

> ---
> block/cfq-iosched.c | 5 +----
> 1 files changed, 1 insertions(+), 4 deletions(-)
>
> diff --git a/block/cfq-iosched.c b/block/cfq-iosched.c
> index e18d316..5d0349d 100644
> --- a/block/cfq-iosched.c
> +++ b/block/cfq-iosched.c
> @@ -179,7 +179,6 @@ struct cfq_group {
> /* group service_tree key */
> u64 vdisktime;
> unsigned int weight;
> - bool on_st;
>
> /* number of cfqq currently on this group */
> int nr_cfqq;
> @@ -863,7 +862,7 @@ cfq_group_service_tree_add(struct cfq_data *cfqd, struct cfq_group *cfqg)
> struct rb_node *n;
>
> cfqg->nr_cfqq++;
> - if (cfqg->on_st)
> + if (!RB_EMPTY_NODE(&cfqg->rb_node))
> return;
>
> /*
> @@ -879,7 +878,6 @@ cfq_group_service_tree_add(struct cfq_data *cfqd, struct cfq_group *cfqg)
> cfqg->vdisktime = st->min_vdisktime;
>
> __cfq_group_service_tree_add(st, cfqg);
> - cfqg->on_st = true;
> st->total_weight += cfqg->weight;
> }
>
> @@ -896,7 +894,6 @@ cfq_group_service_tree_del(struct cfq_data *cfqd, struct cfq_group *cfqg)
> return;
>
> cfq_log_cfqg(cfqd, cfqg, "del_from_rr group");
> - cfqg->on_st = false;
> st->total_weight -= cfqg->weight;
> if (!RB_EMPTY_NODE(&cfqg->rb_node))
> cfq_rb_erase(&cfqg->rb_node, st);
> --
> 1.6.5.2
>

2010-11-30 19:53:17

by Jens Axboe

[permalink] [raw]
Subject: Re: [PATCH] cfq-iosched: Get rid of on_st flag

On 2010-11-30 09:41, Gui Jianfeng wrote:
> It's able to check whether a CFQ group on a service tree by
> checking "cfqg->rb_node". There's no need to maintain an
> extra flag here.

Thanks, applied.

--
Jens Axboe