[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20080511203827.GA850@uranus.ravnborg.org>
Date: Sun, 11 May 2008 22:38:27 +0200
From: Sam Ravnborg <sam@...nborg.org>
To: Adrian Bunk <bunk@...nel.org>
Cc: mingo@...e.hu, linux-kernel@...r.kernel.org,
Andrew Morton <akpm@...ux-foundation.org>
Subject: Re: [2.6 patch] kernel/sched*: optimize inlining
> >
> > You continue to fail to acknowledge that it is valueable information
> > that we pass gcc a _hint_ that it is a good idea to inline certain
> > functions.
> >
> > The inline hint is there to tell gcc that it shall inline this function
> > in cases where it usual think it should not do so. Which invietably
> > will result in a larger codesize in some cases.
>
> We also give gcc an explicit "Optimize for size.".
gcc was asked to optimize for size in general as per the commandline option.
But on a much more fine grained level gcc is given a hint that
this function would be a good idea to inline.
And I really expect gcc to pay most attention to the more specific
information provided for a single function than a general commandline option.
>
> If gcc would decide to ignore all hints that increase code size with -Os
> that would be perfectly fine behaviour.
No - see above.
>
> All the "optimized inlining" does is to allow gcc to no longer inline
> functions marked as "inline" if it prefers not to do so.
The "optimized inlining" allows gcc (if gcc > 4.0) to make an educated
guess if it is worhtwhile to inline a function or not. And when deciding
to do so or not gcc may include many different factors inlcuding
but not limited to -s.
And this is certainly optimized compared to the situation where
inline equals to always_inline.
Keep in mind that we often perfer to have _less_ inlining than we have
today for debugging ease. And this is what we get with optimized inlining
compared to farced inlining.
>
> And what exactly is your problem with my patch if you consider the
> general "optimized inlining" approach correct?
I've already listed two things:
-> It is no longer a simple kconfig change to try with or without.
-> It is independent on gcc version
And for fast path code like sched.c I would much assume a proper analysis
when it is acceptable to remove the inline hint is almost mandatory.
Your patch looks much more like a simple s/ inline//g.
Especially since removing the inline hint is not configurable and
thus it is not an easy task to ask some to try with or without this
patch in two weeks from now where a clean revert is not possible.
Sam
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists