From: Keith Owens <kaos@sgi.com>
To: William Lee Irwin III <wli@holomorphy.com>
Cc: Andrew Morton <akpm@osdl.org>,
Zwane Mwaikambo <zwane@linuxpower.ca>,
ak@suse.de, linux-kernel@vger.kernel.org
Subject: Re: [PATCH][2.6] Allow x86_64 to reenable interrupts on contention
Date: Wed, 28 Jul 2004 10:35:08 +1000 [thread overview]
Message-ID: <21964.1090974908@ocs3.ocs.com.au> (raw)
In-Reply-To: Your message of "Tue, 27 Jul 2004 17:14:15 MST." <20040728001415.GI2334@holomorphy.com>
On Tue, 27 Jul 2004 17:14:15 -0700,
William Lee Irwin III <wli@holomorphy.com> wrote:
>On Tue, 27 Jul 2004, Andi Kleen wrote:
>>>> This will likely increase code size. Do you have numbers by how
>>>> much? And is it really worth it?
>
>Zwane Mwaikambo <zwane@linuxpower.ca> wrote:
>>> Yes there is a growth;
>>> text data bss dec hex filename
>>> 3655358 1340511 486128 5481997 53a60d vmlinux-after
>>> 3648445 1340511 486128 5475084 538b0c vmlinux-before
>
>On Tue, Jul 27, 2004 at 12:01:25PM -0700, Andrew Morton wrote:
>> The growth is all in the out-of-line section, so there should be no
>> significant additional icache pressure.
>
>There are also flash and similar absolute space footprints to consider.
>Experiments seem to suggest that consolidating the lock sections and
>other spinlock code can reduce kernel image size by as much as 220KB on
>ia32 with no performance impact (rigorous benchmarks still in progress).
I consolidated the spinlock contention path to a single routine on
ia64, with big space savings. The problem with the ia64 consolidation
was backtracing through a contended lock; the ia64 unwind API is not
designed for code that is shared between multiple code paths but uses
non-standard entry and exit conventions. In the end, David Mosberger
did a patch to gcc to do lightweight calls to the out of line
contention code, just to get reliable backtraces.
kdb has workarounds for backtracing through ia64 contended locks when
the kernel is built with older versions of gcc. gdb (and hence kgdb)
has no idea about the special out of line code. Mind you, the same is
true right now with the out of line i386 code, you need special
heuristics to backtrace the existing spinlock code reliably. That will
only get worse with Zwane's patch, interrupts can now occur in the out
of line code.
Are you are planning to consolidate the out of line code for i386? Is
there a patch (even work in progress) so I can start thinking about
doing reliable backtraces?
next prev parent reply other threads:[~2004-07-28 0:35 UTC|newest]
Thread overview: 16+ messages / expand[flat|nested] mbox.gz Atom feed top
2004-07-27 9:29 [PATCH][2.6] Allow x86_64 to reenable interrupts on contention Zwane Mwaikambo
2004-07-27 11:26 ` Andi Kleen
2004-07-27 14:31 ` Zwane Mwaikambo
2004-07-27 15:37 ` Andi Kleen
2004-07-27 16:36 ` Ricky Beam
2004-07-28 8:47 ` Paul Jackson
2004-07-28 1:38 ` Zwane Mwaikambo
2004-07-27 19:01 ` Andrew Morton
2004-07-28 0:14 ` William Lee Irwin III
2004-07-28 0:35 ` Keith Owens [this message]
2004-07-28 0:40 ` William Lee Irwin III
2004-07-28 1:48 ` Keith Owens
2004-07-28 2:21 ` William Lee Irwin III
2004-07-28 2:24 ` David S. Miller
2004-07-28 8:20 ` William Lee Irwin III
2004-07-28 1:30 ` Zwane Mwaikambo
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=21964.1090974908@ocs3.ocs.com.au \
--to=kaos@sgi.com \
--cc=ak@suse.de \
--cc=akpm@osdl.org \
--cc=linux-kernel@vger.kernel.org \
--cc=wli@holomorphy.com \
--cc=zwane@linuxpower.ca \
/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