From: William Lee Irwin III <wli@holomorphy.com>
To: Keith Owens <kaos@ocs.com.au>
Cc: Linus Torvalds <torvalds@osdl.org>, Pavel Machek <pavel@ucw.cz>,
Zwane Mwaikambo <zwane@linuxpower.ca>,
Linux Kernel <linux-kernel@vger.kernel.org>,
Andrew Morton <akpm@osdl.org>, Matt Mackall <mpm@selenic.com>
Subject: Re: [PATCH][2.6] Completely out of line spinlocks / i386
Date: Wed, 11 Aug 2004 18:01:15 -0700 [thread overview]
Message-ID: <20040812010115.GY11200@holomorphy.com> (raw)
In-Reply-To: <23701.1092268910@ocs3.ocs.com.au>
On Wed, 11 Aug 2004 15:13:15 -0700 (PDT), Linus Torvalds wrote:
>> The inline spinlocks are _wonderful_ for seeing where the contention is in
>> a simple profile.
>> In contrast, in a profile the out-of-lines ones will show "x% was spent on
>> spinlocks". Which doesn't help much when you want to see where the problem
>> is.
>> This was _hugely_ useful, at least for me, for seeing what locks were
>> problematic.
On Thu, Aug 12, 2004 at 10:01:50AM +1000, Keith Owens wrote:
> Tweak the profile code to detect that the instruction pointer is in the
> out of line spinlock code and replace the ip with the caller's ip. We
> already do that for ia64, where the out of line spinlock code is a big
> win. A kdb backtrace on an ia64 contended lock will even decode the
> address of the lock, which is only possible because the lock address is
> in a known location for this case.
This would be a useful extension for other architectures also, if/when
they convert to doing likewise.
I actually favored making C language spin_lock() (i.e. the goddamn
thing is declared as a C function void spin_lock(spinlock_t *) and is
called like a normal C function -- no inline asm or inline C functions
at all) entrypoints beyond merely conslidating contention loops, but I
feared that would be too extreme of a reversal of the status quo to
ever get traction to post it. It did, however, shrink the kernel text
the most of any of the out-of-line spinlock patches by a large margin,
something completely absurd-sounding, like 220KB vs. 20KB-60KB. =)
-- wli
next prev parent reply other threads:[~2004-08-12 1:06 UTC|newest]
Thread overview: 31+ messages / expand[flat|nested] mbox.gz Atom feed top
2004-08-08 4:49 [PATCH][2.6] Completely out of line spinlocks / i386 Zwane Mwaikambo
2004-08-08 5:01 ` Linus Torvalds
2004-08-08 5:17 ` Zwane Mwaikambo
2004-08-08 5:21 ` Linus Torvalds
2004-08-08 6:00 ` Zwane Mwaikambo
2004-08-08 12:33 ` Andreas Schwab
2004-08-08 18:26 ` Zwane Mwaikambo
2004-08-11 21:59 ` Pavel Machek
2004-08-11 22:13 ` Linus Torvalds
2004-08-11 22:23 ` William Lee Irwin III
2004-08-12 0:01 ` Keith Owens
2004-08-12 0:39 ` David S. Miller
2004-08-12 0:54 ` Zwane Mwaikambo
2004-08-12 1:01 ` William Lee Irwin III [this message]
2004-08-12 1:37 ` Zwane Mwaikambo
2004-08-12 2:04 ` William Lee Irwin III
2004-08-12 7:20 ` William Lee Irwin III
2004-08-12 7:23 ` William Lee Irwin III
2004-08-12 7:25 ` William Lee Irwin III
2004-08-12 8:12 ` Zwane Mwaikambo
2004-08-12 8:11 ` William Lee Irwin III
2004-08-12 8:54 ` William Lee Irwin III
2004-08-13 8:01 ` William Lee Irwin III
2004-08-13 9:16 ` William Lee Irwin III
2004-08-13 9:30 ` William Lee Irwin III
2004-08-13 9:46 ` William Lee Irwin III
2004-08-13 10:05 ` William Lee Irwin III
2004-08-13 10:23 ` William Lee Irwin III
2004-08-13 10:39 ` William Lee Irwin III
2004-08-13 14:15 ` Zwane Mwaikambo
2004-08-13 14:29 ` William Lee Irwin III
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=20040812010115.GY11200@holomorphy.com \
--to=wli@holomorphy.com \
--cc=akpm@osdl.org \
--cc=kaos@ocs.com.au \
--cc=linux-kernel@vger.kernel.org \
--cc=mpm@selenic.com \
--cc=pavel@ucw.cz \
--cc=torvalds@osdl.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.