Re: Question about sched_yield()

Rusty Russell (rusty@rustcorp.com.au)
Wed, 19 Jun 2002 06:19:40 +1000


In message <20020618191233.AAA27954@shell.webmaster.com@whenever> you write:
>
> On Wed, 19 Jun 2002 04:56:06 +1000, Rusty Russell wrote:
>
> >On Mon, 17 Jun 2002 17:46:29 -0700
> >David Schwartz <davids@webmaster.com> wrote:
>
> >>"The sched_yield() function shall force the running thread to relinquish
> >>the processor until it again becomes the head of its thread list.
> >> It takes no arguments."
>
> >Notice how incredibly useless this definition is. It's even defined in
> >terms of UP.
>
> =09Huh?! This definition is beautiful in that it makes no such=
> assumptions. How would you say this is invalid on an SMP machine? By
> "the= processor", they mean "the process on which the thread is
> running" (the only one= it could relinquish, after all).

Read again: they use "relinquish ... until", not "relinquish". Subtle
difference.

I have 32 processors and 32 threads. One does a yield(). What
happens? What should happen?

Given that yield is "sleep for some time but I won't tell you what I'm
doing", I have no sympathy for yield users 8)

Rusty.

--
  Anyone who quotes me in their sig is an idiot. -- Rusty Russell.
-
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/