From: Andrea Arcangeli <andrea@suse.de>
To: Linus Torvalds <torvalds@osdl.org>
Cc: "Brian Gerst" <bgerst@didntduck.org>,
"Ingo Molnar" <mingo@elte.hu>,
"Jörn Engel" <joern@wohnheim.fh-wedel.de>,
"Arjan van de Ven" <arjanv@redhat.com>,
"Rik van Riel" <riel@redhat.com>,
linux-kernel@vger.kernel.org
Subject: Re: 4k stacks in 2.6
Date: Thu, 27 May 2004 17:39:08 +0200 [thread overview]
Message-ID: <20040527153908.GJ3889@dualathlon.random> (raw)
In-Reply-To: <Pine.LNX.4.58.0405270754360.1648@ppc970.osdl.org>
On Thu, May 27, 2004 at 07:55:36AM -0700, Linus Torvalds wrote:
>
>
> On Thu, 27 May 2004, Andrea Arcangeli wrote:
> >
> > On Thu, May 27, 2004 at 10:18:40AM -0400, Brian Gerst wrote:
> > > The problem on i386 (unlike x86-64) is that the thread_info struct sits
> > > at the bottom of the stack and is referenced by masking bits off %esp.
> > > So the stack size must be constant whether in process context or IRQ
> > > context.
> >
> > so what, that's a minor implementation detail, pda is a software thing.
>
> "minor implementation detail"?
>
> You need to get to the thread info _some_ way, and you need to get to it
> _fast_. There are really no sane alternatives. I certainly do not want to
> play games with segments.
If the page is "even" the thread_info is at the top of the stack. If the
page is "odd" the thread_info is at the bottom of the stack (or the
other way around depending what you mean with "odd" and "even").
the per-cpu irq stack will have the thread_info at both the top and the
bottom of the 8k naturally aligned order1 compound page. The regular
kernel stack will have it at the top or the bottom depending if it's odd
or even.
this should allow 8k irqstack and bh stack fine at in-cpu-core speed w/o
segments or similar.
The only downside is that itadds a branch to current_thread_info that
will have to check the 12th bitflag in the esp before doing andl, the
second downside is having to update two thread_info during irq, instead
of just one.
It would be probably better if the thread_info was just a pointer to a
"pda" instead of being the PDA itself so there are just two writes into
the kernel stack for every irq. In x86-64 this is much more natural
since the pda-pointer is in the cpu 64bit %gs register and that saves a
branch and defereference on the stack for every "current" invocation,
and two writes for every first-irq or first-bh.
next prev parent reply other threads:[~2004-05-27 15:39 UTC|newest]
Thread overview: 106+ messages / expand[flat|nested] mbox.gz Atom feed top
2004-05-23 19:43 4g/4g for 2.6.6 Phy Prabab
2004-05-23 20:32 ` Linus Torvalds
2004-05-23 20:51 ` Jeff Garzik
2004-05-24 1:55 ` Linus Torvalds
2004-05-24 2:19 ` Jeff Garzik
2004-05-24 2:33 ` Wim Coekaerts
2004-05-31 9:51 ` Pavel Machek
2004-05-24 3:30 ` Martin J. Bligh
2004-06-01 5:52 ` Eric W. Biederman
2004-05-23 21:55 ` Phy Prabab
2004-05-24 7:05 ` Arjan van de Ven
2004-05-24 7:11 ` Phy Prabab
2004-05-24 7:24 ` Arjan van de Ven
2004-05-24 7:27 ` Phy Prabab
2004-05-24 12:01 ` Dave Jones
2004-05-24 2:39 ` William Lee Irwin III
2004-05-24 8:25 ` Ingo Molnar
2004-05-24 12:48 ` Andrea Arcangeli
2004-05-25 19:15 ` Rik van Riel
2004-05-25 19:41 ` Andrea Arcangeli
2004-05-25 19:50 ` Rik van Riel
2004-05-25 20:10 ` Rik van Riel
2004-05-25 21:15 ` Andrea Arcangeli
2004-05-26 10:33 ` 4k stacks in 2.6 Ingo Molnar
2004-05-26 12:50 ` Jörn Engel
2004-05-26 12:53 ` Arjan van de Ven
2004-05-26 13:00 ` Jörn Engel
2004-05-26 13:05 ` Arjan van de Ven
2004-05-26 16:41 ` Jörn Engel
2004-05-27 12:45 ` Ingo Molnar
2004-05-27 13:59 ` Andrea Arcangeli
2004-05-27 14:03 ` Arjan van de Ven
2004-05-27 14:42 ` Andrea Arcangeli
2004-06-02 19:40 ` Bill Davidsen
2004-05-27 14:18 ` Brian Gerst
2004-05-27 14:50 ` Andrea Arcangeli
2004-05-27 14:55 ` Linus Torvalds
2004-05-27 15:39 ` Andrea Arcangeli [this message]
2004-05-27 18:31 ` Guy Sotomayor
2004-05-27 19:26 ` Brian Gerst
2004-06-01 5:56 ` 4k stacks in 2.6 [worst offenders] Jörn Engel
2004-06-01 6:02 ` [RFC PATCH] explicitly mark recursion count Jörn Engel
2004-06-01 12:20 ` Pavel Machek
2004-06-01 13:27 ` Jörn Engel
2004-06-01 13:32 ` Pavel Machek
2004-06-01 13:37 ` Jörn Engel
2004-06-01 19:48 ` Horst von Brand
2004-06-01 19:29 ` Horst von Brand
2004-06-01 19:58 ` Linus Torvalds
2004-06-02 13:16 ` Jörn Engel
2004-06-02 14:15 ` Linus Torvalds
2004-06-02 14:27 ` Jörn Engel
2004-06-02 14:45 ` Linus Torvalds
2004-06-02 15:04 ` Jörn Engel
2004-06-02 15:12 ` Linus Torvalds
2004-06-02 15:27 ` Jörn Engel
2004-06-02 15:52 ` Linus Torvalds
2004-06-02 16:17 ` Jörn Engel
2004-06-02 16:25 ` Linus Torvalds
2004-06-02 17:17 ` Jörn Engel
2004-06-02 17:32 ` Greg KH
2004-06-02 17:46 ` Jörn Engel
2004-06-02 14:35 ` Davide Libenzi
2004-06-02 18:20 ` Jörn Engel
2004-06-02 18:37 ` Davide Libenzi
2004-06-02 18:58 ` Jörn Engel
2004-06-02 19:33 ` Valdis.Kletnieks
2004-06-02 19:37 ` viro
2004-06-02 19:45 ` Jörn Engel
2004-06-02 19:59 ` viro
2004-06-03 6:55 ` Jörn Engel
2004-06-02 19:55 ` Valdis.Kletnieks
2004-06-02 23:20 ` Davide Libenzi
2004-06-03 7:29 ` Jörn Engel
2004-06-01 12:39 ` viro
2004-06-01 13:26 ` Jörn Engel
2004-06-07 18:14 ` 4k stacks in 2.6 Timothy Miller
2004-06-08 6:26 ` Arjan van de Ven
2004-06-08 8:45 ` Jörn Engel
2004-05-26 18:12 ` David S. Miller
2004-05-26 19:02 ` Matt Mackall
2004-05-26 19:25 ` Dave Jones
2004-05-25 21:16 ` 4g/4g for 2.6.6 Andrew Morton
2004-05-25 21:48 ` Ingo Molnar
2004-05-25 22:09 ` David S. Miller
2004-05-25 22:20 ` Ingo Molnar
2004-05-25 23:10 ` David S. Miller
2004-05-25 21:04 ` Bill Davidsen
2004-05-24 1:33 ` Martin J. Bligh
2004-05-24 1:38 ` Phy Prabab
[not found] <1ZQpn-1Rx-1@gated-at.bofh.it>
[not found] ` <1ZQz8-1Yh-15@gated-at.bofh.it>
[not found] ` <1ZRFf-2Vt-3@gated-at.bofh.it>
[not found] ` <203Zu-4aT-15@gated-at.bofh.it>
2004-05-26 13:57 ` 4k stacks in 2.6 Andi Kleen
2004-05-26 18:17 ` hch
2004-05-26 18:24 ` Andi Kleen
2004-05-26 20:39 ` Zwane Mwaikambo
[not found] ` <206b3-5WN-33@gated-at.bofh.it>
[not found] ` <20baw-1Lz-15@gated-at.bofh.it>
2004-05-26 19:32 ` Andi Kleen
2004-05-27 11:27 ` Jörn Engel
2004-05-27 13:49 ` Andrea Arcangeli
2004-05-27 14:15 ` Jörn Engel
2004-05-27 14:49 ` Andrea Arcangeli
2004-05-27 14:59 ` Jörn Engel
2004-05-27 15:08 ` Keith Owens
2004-05-27 15:21 ` Jörn Engel
2004-05-27 15:34 ` Arjan van de Ven
2004-05-27 15:46 ` Jörn Engel
2004-06-01 5:25 ` Jörn Engel
2004-05-26 15:17 Albert Cahalan
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=20040527153908.GJ3889@dualathlon.random \
--to=andrea@suse.de \
--cc=arjanv@redhat.com \
--cc=bgerst@didntduck.org \
--cc=joern@wohnheim.fh-wedel.de \
--cc=linux-kernel@vger.kernel.org \
--cc=mingo@elte.hu \
--cc=riel@redhat.com \
--cc=torvalds@osdl.org \
/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
all inboxes | Powered by JetHome®