Re: [PATCH 1/2 v2] rmap: Make page_referenced_file andpage_referenced_anon inline

From: KAMEZAWA Hiroyuki
Date: Sun Feb 19 2012 - 22:05:52 EST


On Fri, 17 Feb 2012 10:26:38 -0500
Kautuk Consul <consul.kautuk@xxxxxxxxx> wrote:

> Inline the page_referenced_anon and page_referenced_file
> functions.
> These functions are called only from page_referenced.
>
> Signed-off-by: Kautuk Consul <consul.kautuk@xxxxxxxxx>

Hmm ? In my environ,

before patch.

[kamezawa@bluextal linux]$ size mm/rmap.o
text data bss dec hex filename
11474 0 24 11498 2cea mm/rmap.o
(8833) (optimize-for-size=y)
After patch.

[kamezawa@bluextal linux]$ size mm/rmap.o
text data bss dec hex filename
11422 0 24 11446 2cb6 mm/rmap.o
(8775) (optimize-for-size=y)

text size is 50bytes decreased. But I wonder page_referenced_anon/file
is enough large function which is not inlined by hand in usual...

>From Documentation/CodingStyle Chapter15: The inline disease
==
A reasonable rule of thumb is to not put inline at functions that have more
than 3 lines of code in them. An exception to this rule are the cases where
a parameter is known to be a compiletime constant, and as a result of this
constantness you *know* the compiler will be able to optimize most of your
function away at compile time. For a good example of this later case, see
the kmalloc() inline function.

Often people argue that adding inline to functions that are static and used
only once is always a win since there is no space tradeoff. While this is
technically correct, gcc is capable of inlining these automatically without
help, and the maintenance issue of removing the inline when a second user
appears outweighs the potential value of the hint that tells gcc to do
something it would have done anyway.
==

I'm sorry but I don't Ack this.

Thanks,
-Kame

--
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/