From: Ingo Molnar <mingo@elte.hu>
To: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Heiko Carstens <heiko.carstens@de.ibm.com>,
Andrew Morton <akpm@linux-foundation.org>,
Peter Zijlstra <a.p.zijlstra@chello.nl>,
linux-arch@vger.kernel.org,
Martin Schwidefsky <schwidefsky@de.ibm.com>,
Arnd Bergmann <arnd@arndb.de>,
Horst Hartmann <horsth@linux.vnet.ibm.com>,
Christian Ehrhardt <ehrhardt@linux.vnet.ibm.com>,
Nick Piggin <nickpiggin@yahoo.com.au>
Subject: Re: [patch 2/3] spinlock: allow inlined spinlocks
Date: Sun, 16 Aug 2009 23:18:24 +0200 [thread overview]
Message-ID: <20090816211824.GA32652@elte.hu> (raw)
In-Reply-To: <alpine.LFD.2.01.0908161406060.3162@localhost.localdomain>
* Linus Torvalds <torvalds@linux-foundation.org> wrote:
> On Sun, 16 Aug 2009, Ingo Molnar wrote:
> >
> > We do that already for that reason:
>
> Ahh, we do. I was mislead by the fact that we still generate the
> out-of-line ones, even though we don't use them. Which is fine, of
> course.
>
> It doesn't do the irqrestore versions, but that's probably not a
> big deal.
i remember having done gradual builds and turning the inlining of
various locking functions on/off to see how it impacts the text
size, so we were quite close to the optimal setup ... then. (two
years ago?)
But ... the fact that you didnt notice it shows that the inlining
decisions in spinlock.h are less than transparent and not really
cleanly done.
Even if we dont change a thing on the x86 side the s390 observations
are obviously valid, and Heiko's generalization looks more
maintainable in terms of tweakability, as it's per function granular
and per arch as well.
OTOH, it needs some work: the CONFIG_PREEMPT and
CONFIG_DEBUG_SPINLOCKS dependency should be expressed too - and i
think CONFIG_PREEMPT is probably was bit s390.
And at that point we've got 2^3 * 2^28 * 20
(configs*functions*archs) variants, and i feel a bit uneasy about
that kind of complexity (even if the typical cases will be much
simpler than that). We wont really get it fully right, we'll just
drown in that.
Dammit, why cannot the compiler get this right, working it around in
the kernel source makes things so ugly :-(
It's not rocket science to do a good inliner but IMO GCC messed
their design up on day one by separating the assembler from the C
compiler, hence their inliner cannot really know about how large
instructions are. Rather stupid IMHO.
Ingo
next prev parent reply other threads:[~2009-08-16 21:18 UTC|newest]
Thread overview: 17+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-08-14 12:58 [patch 0/3] Allow inlined spinlocks again V4 Heiko Carstens
2009-08-14 12:58 ` [patch 1/3] spinlock: move spinlock function bodies to header file Heiko Carstens
2009-08-14 12:58 ` [patch 2/3] spinlock: allow inlined spinlocks Heiko Carstens
2009-08-16 17:57 ` Heiko Carstens
2009-08-16 18:06 ` Ingo Molnar
2009-08-16 18:43 ` Linus Torvalds
2009-08-16 20:24 ` Ingo Molnar
2009-08-16 21:07 ` Linus Torvalds
2009-08-16 21:18 ` Ingo Molnar [this message]
2009-08-16 18:44 ` Heiko Carstens
2009-08-16 20:48 ` Ingo Molnar
2009-08-16 21:33 ` Heiko Carstens
2009-08-16 21:36 ` Ingo Molnar
2009-08-16 18:22 ` Linus Torvalds
2009-08-17 15:46 ` Heiko Carstens
2009-08-14 12:58 ` [patch 3/3] spinlock: inline code for all locking variants on s390 Heiko Carstens
-- strict thread matches above, loose matches on Subject: below --
2009-08-12 18:39 [patch 0/3] Allow inlined spinlocks again V3 Heiko Carstens
2009-08-12 18:39 ` [patch 2/3] spinlock: allow inlined spinlocks Heiko Carstens
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=20090816211824.GA32652@elte.hu \
--to=mingo@elte.hu \
--cc=a.p.zijlstra@chello.nl \
--cc=akpm@linux-foundation.org \
--cc=arnd@arndb.de \
--cc=ehrhardt@linux.vnet.ibm.com \
--cc=heiko.carstens@de.ibm.com \
--cc=horsth@linux.vnet.ibm.com \
--cc=linux-arch@vger.kernel.org \
--cc=nickpiggin@yahoo.com.au \
--cc=schwidefsky@de.ibm.com \
--cc=torvalds@linux-foundation.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;
as well as URLs for NNTP newsgroup(s).