Re: Introduce down_killable()

From: Matthew Wilcox
Date: Fri Apr 18 2008 - 18:55:35 EST


On Fri, Apr 18, 2008 at 03:34:55PM -0700, Andrew Morton wrote:
> On Fri, 18 Apr 2008 17:05:06 GMT
> Linux Kernel Mailing List <linux-kernel@xxxxxxxxxxxxxxx> wrote:
>
> > --- a/kernel/semaphore.c
> > +++ b/kernel/semaphore.c
> > @@ -34,6 +34,7 @@
> >
> > static noinline void __down(struct semaphore *sem);
> > static noinline int __down_interruptible(struct semaphore *sem);
> > +static noinline int __down_killable(struct semaphore *sem);
> > static noinline void __up(struct semaphore *sem);
>
> What is the reason for all the noinlines in this file?

Copied from kernel/mutex.c ;-)

The reason is to make sure that __down_interruptible (et al) are
out-of-line from down_interruptible, and that __down_common is inlined
into __down_interruptible().

> Something to do with getting proper wchan output? I guess it doesn't hurt
> from a documentation POV, but did you find that it was actually necessary?
>
> IOW: is gcc now capable of secretly inlining functions which are defined
> further ahead in the compilation unit?

With -funit-at-a-time, I believe it is capable of that.

> (did you actually "test" the wchan stuff, btw?)

I tested that wchan still produces the right output, yes.

--
Intel are signing my paycheques ... these opinions are still mine
"Bill, look, we understand that you're interested in selling us this
operating system, but compare it to ours. We can't possibly take such
a retrograde step."
--
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/