Skip to content

Commit

Permalink
sched: reduce stack size requirements in kernel/sched.c
Browse files Browse the repository at this point in the history
Impact: cleanup

  * use node_to_cpumask_ptr in place of node_to_cpumask to reduce stack
    requirements in sched.c

Signed-off-by: Mike Travis <travis@sgi.com>
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
  • Loading branch information
Mike Travis authored and Ingo Molnar committed Nov 24, 2008
1 parent 943f3d0 commit ea6f18e
Showing 1 changed file with 7 additions and 6 deletions.
13 changes: 7 additions & 6 deletions kernel/sched.c
Original file line number Diff line number Diff line change
Expand Up @@ -6110,8 +6110,9 @@ static void move_task_off_dead_cpu(int dead_cpu, struct task_struct *p)

do {
/* On same node? */
mask = node_to_cpumask(cpu_to_node(dead_cpu));
cpus_and(mask, mask, p->cpus_allowed);
node_to_cpumask_ptr(pnodemask, cpu_to_node(dead_cpu));

cpus_and(mask, *pnodemask, p->cpus_allowed);
dest_cpu = any_online_cpu(mask);

/* On any allowed CPU? */
Expand Down Expand Up @@ -7098,9 +7099,9 @@ static int cpu_to_allnodes_group(int cpu, const cpumask_t *cpu_map,
struct sched_group **sg, cpumask_t *nodemask)
{
int group;
node_to_cpumask_ptr(pnodemask, cpu_to_node(cpu));

*nodemask = node_to_cpumask(cpu_to_node(cpu));
cpus_and(*nodemask, *nodemask, *cpu_map);
cpus_and(*nodemask, *pnodemask, *cpu_map);
group = first_cpu(*nodemask);

if (sg)
Expand Down Expand Up @@ -7150,9 +7151,9 @@ static void free_sched_groups(const cpumask_t *cpu_map, cpumask_t *nodemask)

for (i = 0; i < nr_node_ids; i++) {
struct sched_group *oldsg, *sg = sched_group_nodes[i];
node_to_cpumask_ptr(pnodemask, i);

*nodemask = node_to_cpumask(i);
cpus_and(*nodemask, *nodemask, *cpu_map);
cpus_and(*nodemask, *pnodemask, *cpu_map);
if (cpus_empty(*nodemask))
continue;

Expand Down

0 comments on commit ea6f18e

Please sign in to comment.