[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20130830094657.GD10002@twins.programming.kicks-ass.net>
Date: Fri, 30 Aug 2013 11:46:57 +0200
From: Peter Zijlstra <peterz@...radead.org>
To: Jason Low <jason.low2@...com>
Cc: mingo@...hat.com, linux-kernel@...r.kernel.org, efault@....de,
pjt@...gle.com, preeti@...ux.vnet.ibm.com,
akpm@...ux-foundation.org, mgorman@...e.de, riel@...hat.com,
aswin@...com, scott.norton@...com, srikar@...ux.vnet.ibm.com
Subject: Re: [PATCH v4 2/3] sched: Consider max cost of idle balance per
sched domain
On Thu, Aug 29, 2013 at 01:05:35PM -0700, Jason Low wrote:
> @@ -5299,14 +5300,29 @@ void idle_balance(int this_cpu, struct rq *this_rq)
> for_each_domain(this_cpu, sd) {
> unsigned long interval;
> int balance = 1;
> + u64 t0, domain_cost, max = 5*sysctl_sched_migration_cost;
>
> if (!(sd->flags & SD_LOAD_BALANCE))
> continue;
>
> + if (this_rq->avg_idle < curr_cost + sd->max_newidle_lb_cost)
> + break;
> +
> if (sd->flags & SD_BALANCE_NEWIDLE) {
> + t0 = sched_clock_cpu(smp_processor_id());
> +
> /* If we've pulled tasks over stop searching: */
> pulled_task = load_balance(this_cpu, this_rq,
> sd, CPU_NEWLY_IDLE, &balance);
> +
> + domain_cost = sched_clock_cpu(smp_processor_id()) - t0;
> + if (domain_cost > max)
> + domain_cost = max;
> +
> + if (domain_cost > sd->max_newidle_lb_cost)
> + sd->max_newidle_lb_cost = domain_cost;
> +
> + curr_cost += domain_cost;
> }
>
> interval = msecs_to_jiffies(sd->balance_interval);
I did an s/smp_processor_id()/this_cpu/ on that.
--
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