Re: spinlocks -- why are releases inlined and acquires are not?

From: Ingo Molnar
Date: Tue Apr 01 2008 - 04:34:21 EST



* Jiri Kosina <jkosina@xxxxxxx> wrote:

> > What is the reason for this asymetry? Shouldn't the acquiring
> > functions be implemented in the very same way? Or at least,
> > shouldn't all the __lockfunc functions be inlined?
>
> i.e. is there any particular reason why we don't have something like
> the patch below (implemented for all the lock variants of course, this
> is just to demonstrate what I mean)?

IIRC the main reason we decided to uninline them was image size. So i'd
suggest for you to check how this change impacts vmlinux size (on both
64-bit and 32-bit), a typical distro config (or allyesconfig with lock
debugging disabled).

If you do the test on x86.git/latest you'll also have the
CONFIG_OPTIMIZE_INLINING=y and CONFIG_CC_OPTIMIZE_FOR_SIZE=y combination
as well, which generates the most compact x86 kernel image ever.

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/