Re: Does process need to have a kernel-side stack all the time?

From: Denys Vlasenko
Date: Wed Apr 16 2008 - 10:21:41 EST


On Wednesday 16 April 2008 14:47, Ingo Molnar wrote:
> * Andi Kleen <andi@xxxxxxxxxxxxxx> wrote:
>
> > Denys Vlasenko <vda.linux@xxxxxxxxxxxxxx> writes:
> >
> > > A lot of effort went into minimizing of stack usage.
> > > If I understand it correctly, one of the reasons for this
> > > was to be efficient and not have lots of pages
> > > used for stacks when we have a lot of threads
> > > (tens of thousands).
> >
> > Actually the real reason the 4K stacks were introduced IIRC was that
> > the VM is not very good at allocation of order > 0 pages and that only
> > using order 0 and not order 1 in normal operation prevented some
> > stalls.
>
> no, the primary motivation Arjan and me started working on 4K stacks and
> implemented it was what Denys mentioned: i had a testcase that ran
> 50,000 threads before it ran out of memory - i wanted it to run 100,000
> threads. The improved order-0 behavior was just icing on the cake.

And my "random thought" occurred along the lines "Ingo once ran
100000 threads and then ran out of space for stack... wait a minute!
Why every single one of those threads need to have a stack at the same time?
They sure as hell can't actively use more than NR_CPUS stacks at once!".

Pity it wouldn't work.
--
vda
--
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/