Messages in this thread | | | Date | Tue, 26 Aug 2008 09:22:20 +0200 | From | Ingo Molnar <> | Subject | Re: [Bug #11342] Linux 2.6.27-rc3: kernel BUG at mm/vmalloc.c - bisected |
| |
* Linus Torvalds <torvalds@linux-foundation.org> wrote:
> On Mon, 25 Aug 2008, Linus Torvalds wrote: > > > > checkstack.pl shows these things as the top problems: > > > > 0xffffffff80266234 smp_call_function_mask [vmlinux]: 2736 > > 0xffffffff80234747 __build_sched_domains [vmlinux]: 2232 > > 0xffffffff8023523f __build_sched_domains [vmlinux]: 2232 > > > > Anyway, the reason smp_call_function_mask and friends have such _huge_ > > stack usages for you is that they contain a 'cpumask_t' on the stack. > > In fact, they contain multiple CPU-masks, each 4k-bits - 512 bytes - in > size. And they tend to call each other. > > Quite frankly, I don't think we were really ready for 4k CPU's. I'm > going to commit this patch to make sure others don't do that many > CPU's by mistake. It marks MAXCPU's as being 'broken' so you cannot > select it, and also limits the number of CPU's that you _can_ select > to "just" 512.
yeah, that's OK i guess - distros can still enable 4K support if they wish to. Someone interested in improving the stack footprint situation should dust off the max-stack-footprint tracer so that we can catch these things in a more structured way.
And i guess the next generation of 4K CPUs support should just get away from cpumask_t-on-kernel-stack model altogether, as the current model is not maintainable. We tried the on-kernel-stack variant, and it really does not work reliably. We can fix this in v2.6.28.
Ingo
| |