From: William Lee Irwin III <wli@holomorphy.com>
To: Keith Owens <kaos@sgi.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: Tue, 27 Jul 2004 17:40:30 -0700 [thread overview]
Message-ID: <20040728004030.GK2334@holomorphy.com> (raw)
In-Reply-To: <21964.1090974908@ocs3.ocs.com.au>
On Tue, 27 Jul 2004 17:14:15 -0700,
>> 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).
On Wed, Jul 28, 2004 at 10:35:08AM +1000, Keith Owens wrote:
> 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.
It's good to know there is a precedent and that the backtrace issue has
been looked at on other architectures.
On Wed, Jul 28, 2004 at 10:35:08AM +1000, Keith Owens wrote:
> 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?
The experiments were carried out using the standard calling convention.
We may investigate less standard calling conventions, but they should
actually already be there given __write_lock_failed/__read_lock_failed.
i.e. if reliable backtraces are going to be an issue they should
already be an issue for rwlocks.
-- wli
next prev parent reply other threads:[~2004-07-28 0:40 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
2004-07-28 0:40 ` William Lee Irwin III [this message]
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=20040728004030.GK2334@holomorphy.com \
--to=wli@holomorphy.com \
--cc=ak@suse.de \
--cc=akpm@osdl.org \
--cc=kaos@sgi.com \
--cc=linux-kernel@vger.kernel.org \
--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