I don't think either splhi fixes the problem ... it only hides it for the 99.999999999% cases.

Phil;

erik quanstrom wrote:
schedinit only runs once and sleep runs all the time. That's the part
I don't get.

gotolabel in sleep sends you back to the
setlabel at the top of schedinit.

But you might have found something, I sure wish I understood it all better :-)

i'm not entirely convinced that the problem isn't the fact that splhi()
doesn't do anything.

here's what i wonder:
- does richard miller's alternate implementation of wakeup
solve this problem.
- does changing spl* to manipulation of a per-cpu lock solve the problem?
sometimes preventing anything else from running on your mach is
exactly what you want.

in any event, given the long history with sleep/wakeup, changes should
be justified with a promula model.  the current model omits the spl*
and the second lock.  (http://swtch.com/spin/sleep_wakeup.txt).

- erik




Reply via email to