Re: Introduce down_killable() - Kernel

This is a discussion on Re: Introduce down_killable() - Kernel ; On Fri, 18 Apr 2008 17:05:06 GMT Linux Kernel Mailing List 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 ...

+ Reply to Thread
Results 1 to 2 of 2

Thread: Re: Introduce down_killable()

  1. Re: Introduce down_killable()

    On Fri, 18 Apr 2008 17:05:06 GMT
    Linux Kernel Mailing List 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?

    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?


    (did you actually "test" the wchan stuff, btw?)
    --
    To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
    the body of a message to majordomo@vger.kernel.org
    More majordomo info at http://vger.kernel.org/majordomo-info.html
    Please read the FAQ at http://www.tux.org/lkml/

  2. Re: Introduce down_killable()

    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 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@vger.kernel.org
    More majordomo info at http://vger.kernel.org/majordomo-info.html
    Please read the FAQ at http://www.tux.org/lkml/

+ Reply to Thread