From: Andi Kleen <andi@firstfloor.org>
To: Denys Vlasenko <vda.linux@googlemail.com>
Cc: Ingo Molnar <mingo@elte.hu>, linux-kernel@vger.kernel.org
Subject: Re: Does process need to have a kernel-side stack all the time?
Date: Mon, 14 Apr 2008 19:44:15 +0200 [thread overview]
Message-ID: <87hce4uya8.fsf@basil.nowhere.org> (raw)
In-Reply-To: <200804141547.57719.vda.linux@googlemail.com> (Denys Vlasenko's message of "Mon, 14 Apr 2008 15:47:57 +0200")
Denys Vlasenko <vda.linux@googlemail.com> 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.
This rationale also goes back to 2.4 (especially some of the early 2.4
VMs were not very good) and the 2.6 VM is generally better and on
x86-64 I don't see much evidence that these stalls are a big problem
(but then x86-64 also has more lowmem).
Note that your proposal doesn't change this at all.
I personally think 4K stacks are a bad idea because code
is always getting more complex and having more stack is
a very useful safety margin.
> A random thought occurred to me: in a system with so many
> threads most of them are not executing anyway, even on
> that gigantic Altix machines. Do they all need to have
> kernel stack, all the time? I mean: the process which
> is running in user space is not using kernel stack at all.
> Process which is not running on a CPU right now
> is not using it either.
Actually processes that sleep do use the stack.
Take a look at Sysrq-t output some time. Pretty much
all sleepers have some context.
Only processes currently running in user land do not use
the kernel stack, but there are very little of them
(never more than you have CPUs)
-Andi
next prev parent reply other threads:[~2008-04-14 17:46 UTC|newest]
Thread overview: 14+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-04-14 13:47 Does process need to have a kernel-side stack all the time? Denys Vlasenko
2008-04-14 14:17 ` Denis V. Lunev
2008-04-14 14:54 ` Denys Vlasenko
2008-04-14 15:21 ` Ingo Molnar
2008-04-14 17:44 ` Andi Kleen [this message]
2008-04-14 18:42 ` Denys Vlasenko
2008-04-16 12:47 ` Ingo Molnar
2008-04-16 13:02 ` Andi Kleen
2008-04-16 13:54 ` Arjan van de Ven
2008-04-16 13:59 ` Andi Kleen
2008-04-16 14:31 ` Arjan van de Ven
2008-04-16 14:20 ` Denys Vlasenko
2008-04-16 14:34 ` Arjan van de Ven
2008-04-14 23:21 ` Chris Snook
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=87hce4uya8.fsf@basil.nowhere.org \
--to=andi@firstfloor.org \
--cc=linux-kernel@vger.kernel.org \
--cc=mingo@elte.hu \
--cc=vda.linux@googlemail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox