Re: [performance bug] volanomark regression on 37-rc1

From: Alex,Shi
Date: Tue Nov 16 2010 - 20:17:06 EST




> ---
> kernel/sched_fair.c | 4 ----
> 1 file changed, 4 deletions(-)
>
> Index: linux-2.6/kernel/sched_fair.c
> ===================================================================
> --- linux-2.6.orig/kernel/sched_fair.c
> +++ linux-2.6/kernel/sched_fair.c
> @@ -1758,10 +1758,6 @@ static void pull_task(struct rq *src_rq,
> set_task_cpu(p, this_cpu);
> activate_task(this_rq, p, 0);
> check_preempt_curr(this_rq, p, 0);
> -
> - /* re-arm NEWIDLE balancing when moving tasks */
> - src_rq->avg_idle = this_rq->avg_idle = 2*sysctl_sched_migration_cost;
> - this_rq->idle_stamp = 0;
> }
>
> /*
>
>
In the original source (.36 kernel) the rq->idle_stamp is set as zero
after task was pulled to this cpu in load_balance(). Nikhil move this
setting to pull_task(), that has same effect.
I don't know what the details effect of removing idle_stamp setting
instead of recovered it on idle_balance(). :)

My machines are doing rc2 performance testing. I may try this patch
after testing finish.

The following is part of Nikhil's old patch.
===
@@ -3162,10 +3186,8 @@ static void idle_balance(int this_cpu, struct rq
*this_rq)
interval = msecs_to_jiffies(sd->balance_interval);
if (time_after(next_balance, sd->last_balance +
interval))
next_balance = sd->last_balance + interval;
- if (pulled_task) {
- this_rq->idle_stamp = 0;
+ if (pulled_task)
break;
- }
}

Regards
Alex



--
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/