Re: [PATCH 4/5] x86: Add config variables for SMP_MAX

From: Paul Jackson
Date: Mon Jan 28 2008 - 11:45:45 EST


Ten days ago, Mike wrote:
> The primary problem arises because of cpumask_t local variables. Until I
> can deal with these, increasing NR_CPUS to a really large value increases
> stack size dramatically.
>
> Here are the top stack consumers with NR_CPUS = 4k.
>
> 16392 isolated_cpu_setup
> 10328 build_sched_domains

The problem in kernel/sched.c:isolated_cpu_setup() is an array of
NR_CPUS integers:

static int __init isolated_cpu_setup(char *str)
{
int ints[NR_CPUS], i;

str = get_options(str, ARRAY_SIZE(ints), ints);

Since isolated_cpu_setup() is an __init routine, perhaps we could
make that ints[] array static __initdata?

The build_sched_domains() may require more thought and code rework.
See also the lkml discussion of my patches that reworked the cpuset
code implementing 'sched_load_balance' calling into build_sched_domains
() via kernel/sched.c:partition_sched_domains(). This is not performance
critical code, fortunately.

--
I won't rest till it's the best ...
Programmer, Linux Scalability
Paul Jackson <pj@xxxxxxx> 1.940.382.4214
--
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/