Re: x86: spinlock ops are always-inlined

From: Ingo Molnar
Date: Mon Apr 21 2008 - 10:22:38 EST



* Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx> wrote:

> On Fri, 18 Apr 2008 18:47:21 GMT
> Linux Kernel Mailing List <linux-kernel@xxxxxxxxxxxxxxx> wrote:
>
> > Gitweb: http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=7fda20f146d5d217684ffbc37c6b6c5f82c2dffd
> > Commit: 7fda20f146d5d217684ffbc37c6b6c5f82c2dffd
> > Parent: d93c870bad38e8daaaf9f7e900a13431f24becbb
> > Author: Ingo Molnar <mingo@xxxxxxx>
> > AuthorDate: Fri Feb 29 10:29:38 2008 +0100
> > Committer: Ingo Molnar <mingo@xxxxxxx>
> > CommitDate: Thu Apr 17 17:41:29 2008 +0200
> >
> > x86: spinlock ops are always-inlined
> >
> > Signed-off-by: Ingo Molnar <mingo@xxxxxxx>
> > ---
> > include/asm-x86/spinlock.h | 12 ++++++------
> > 1 files changed, 6 insertions(+), 6 deletions(-)
> >
> > diff --git a/include/asm-x86/spinlock.h b/include/asm-x86/spinlock.h
> > index 47dfe26..bc6376f 100644
> > --- a/include/asm-x86/spinlock.h
> > +++ b/include/asm-x86/spinlock.h
> > @@ -78,7 +78,7 @@ static inline int __raw_spin_is_contended(raw_spinlock_t *lock)
> > return (((tmp >> 8) & 0xff) - (tmp & 0xff)) > 1;
> > }
> >
> > -static inline void __raw_spin_lock(raw_spinlock_t *lock)
> > +static __always_inline void __raw_spin_lock(raw_spinlock_t *lock)
>
> What was the reason for making this change?

has no effect on current kernels (which always inline), but it breaks
with an upcoming feature, CONFIG_OPTIMIZE_INLINING=y that lets gcc
decide whether to inline or not. (should have mentioned this in the
changelog, sorry)

Ingo
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/