Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 4d2732c6 authored by Rusty Russell's avatar Rusty Russell Committed by Ingo Molnar
Browse files

sched: convert idle_balance() to cpumask_var_t.



Impact: stack usage reduction

Dynamically allocating cpumasks (when CONFIG_CPUMASK_OFFSTACK) saves
space in the stack.  cpumask_var_t is just a struct cpumask for
!CONFIG_CPUMASK_OFFSTACK.

Signed-off-by: default avatarRusty Russell <rusty@rustcorp.com.au>
Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
parent 7d1e6a9b
Loading
Loading
Loading
Loading
+6 −2
Original line number Original line Diff line number Diff line
@@ -3676,7 +3676,10 @@ static void idle_balance(int this_cpu, struct rq *this_rq)
	struct sched_domain *sd;
	struct sched_domain *sd;
	int pulled_task = -1;
	int pulled_task = -1;
	unsigned long next_balance = jiffies + HZ;
	unsigned long next_balance = jiffies + HZ;
	cpumask_t tmpmask;
	cpumask_var_t tmpmask;

	if (!alloc_cpumask_var(&tmpmask, GFP_ATOMIC))
		return;


	for_each_domain(this_cpu, sd) {
	for_each_domain(this_cpu, sd) {
		unsigned long interval;
		unsigned long interval;
@@ -3687,7 +3690,7 @@ static void idle_balance(int this_cpu, struct rq *this_rq)
		if (sd->flags & SD_BALANCE_NEWIDLE)
		if (sd->flags & SD_BALANCE_NEWIDLE)
			/* If we've pulled tasks over stop searching: */
			/* If we've pulled tasks over stop searching: */
			pulled_task = load_balance_newidle(this_cpu, this_rq,
			pulled_task = load_balance_newidle(this_cpu, this_rq,
							   sd, &tmpmask);
							   sd, tmpmask);


		interval = msecs_to_jiffies(sd->balance_interval);
		interval = msecs_to_jiffies(sd->balance_interval);
		if (time_after(next_balance, sd->last_balance + interval))
		if (time_after(next_balance, sd->last_balance + interval))
@@ -3702,6 +3705,7 @@ static void idle_balance(int this_cpu, struct rq *this_rq)
		 */
		 */
		this_rq->next_balance = next_balance;
		this_rq->next_balance = next_balance;
	}
	}
	free_cpumask_var(tmpmask);
}
}


/*
/*