[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20081217180932.GB26572@balbir.in.ibm.com>
Date: Wed, 17 Dec 2008 23:39:32 +0530
From: Balbir Singh <balbir@...ux.vnet.ibm.com>
To: Vaidyanathan Srinivasan <svaidy@...ux.vnet.ibm.com>
Cc: Linux Kernel <linux-kernel@...r.kernel.org>,
Suresh B Siddha <suresh.b.siddha@...el.com>,
Venkatesh Pallipadi <venkatesh.pallipadi@...el.com>,
Peter Zijlstra <a.p.zijlstra@...llo.nl>,
Ingo Molnar <mingo@...e.hu>,
Dipankar Sarma <dipankar@...ibm.com>,
Vatsa <vatsa@...ux.vnet.ibm.com>,
Gautham R Shenoy <ego@...ibm.com>,
Andi Kleen <andi@...stfloor.org>,
David Collier-Brown <davecb@....com>,
Tim Connors <tconnors@...ro.swin.edu.au>,
Max Krasnyansky <maxk@...lcomm.com>,
Gregory Haskins <gregory.haskins@...il.com>,
Pavel Machek <pavel@...e.cz>
Subject: Re: [PATCH v6 2/7] sched: favour lower logical cpu number for
sched_mc balance
* Vaidyanathan Srinivasan <svaidy@...ux.vnet.ibm.com> [2008-12-17 22:56:42]:
> Just in case two groups have identical load, prefer to move load to lower
> logical cpu number rather than the present logic of moving to higher logical
> number.
>
> find_busiest_group() tries to look for a group_leader that has spare capacity
> to take more tasks and freeup an appropriate least loaded group. Just in case
> there is a tie and the load is equal, then the group with higher logical number
> is favoured. This conflicts with user space irqbalance daemon that will move
> interrupts to lower logical number if the system utilisation is very low.
>
> Signed-off-by: Vaidyanathan Srinivasan <svaidy@...ux.vnet.ibm.com>
> ---
>
> kernel/sched.c | 4 ++--
> 1 files changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/kernel/sched.c b/kernel/sched.c
> index 16897ab..0b9bbbd 100644
> --- a/kernel/sched.c
> +++ b/kernel/sched.c
> @@ -3264,7 +3264,7 @@ find_busiest_group(struct sched_domain *sd, int this_cpu,
> */
> if ((sum_nr_running < min_nr_running) ||
> (sum_nr_running == min_nr_running &&
> - first_cpu(group->cpumask) <
> + first_cpu(group->cpumask) >
> first_cpu(group_min->cpumask))) {
> group_min = group;
> min_nr_running = sum_nr_running;
> @@ -3280,7 +3280,7 @@ find_busiest_group(struct sched_domain *sd, int this_cpu,
> if (sum_nr_running <= group_capacity - 1) {
> if (sum_nr_running > leader_nr_running ||
> (sum_nr_running == leader_nr_running &&
> - first_cpu(group->cpumask) >
> + first_cpu(group->cpumask) <
> first_cpu(group_leader->cpumask))) {
> group_leader = group;
> leader_nr_running = sum_nr_running;
>
>
OK, so group_min is pushed to higher cpu numbers and group_leader is pulled to
lower cpu numbers
Acked-by: Balbir Singh <balbir@...ux.vnet.ibm.com>
--
Balbir
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists