Re: [PATCH v6 19/29] memcg: infrastructure to match an allocation to the right cache

Andrew Morton
2012-11-06T00:28:41Z

On Thu, 1 Nov 2012 16:07:35 +0400
Glauber Costa <glommer@parallels.com> wrote:

> +static __always_inline struct kmem_cache *
> +memcg_kmem_get_cache(struct kmem_cache *cachep, gfp_t gfp)

I still don't understand why this code uses __always_inline so much.

I don't recall seeing the compiler producing out-of-line versions of
"static inline" functions (and perhaps it has special treatment for
functions which were defined in a header file?).

And if the compiler *does* decide to uninline the function, perhaps it
knows best, and the function shouldn't have been declared inline in the
first place.

If it is indeed better to use __always_inline in this code then we have
a heck of a lot of other "static inline" definitions whcih we need to
convert! So, what's going on here?