Re: problem with 114 sched.* changes (not the gcc one)

Ion Badulescu (ionut@moisil.cs.columbia.edu)
Sat, 22 Aug 1998 04:14:50 -0400 (EDT)


On Sat, 22 Aug 1998, Alan Cox wrote:

> > My humble oppinion is that, with the scheduling change in 2.1.114, rpciod
> > will start running _before_ rpciod_up calls sleep_on() and therefore the
> > wake_up() call at the beginning of rpciod becomes ineffective because
> > nothing is sleeping on rpciod_idle yet. This is pure speculation, but it
> > kind of makes sense. I'm not sure what the right fix is though...
>
> That looks right. In which case the fix is to swap the
>
> sleep_on(&rpciod_idle)
>
> for (yes this is the sledgehammer approach for the moment)
>
> save_flags(flags);
> cli();
> while(rpciod_pid==0)
> sleep_on(&rpciod_idle);
> restore_flags(flags);
>
>
> Can you let me know if that change (or a similar flavour) fixes it

The patch from Linus fixes the problem, and it makes tons of sense too --
a semaphore is the right thing to use if you don't want to depend on
scheduling details.

Thanks,
Ion

-- 
  It is better to keep your mouth shut and be thought a fool,
            than to open it and remove all doubt.

- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.rutgers.edu Please read the FAQ at http://www.altern.org/andrebalsa/doc/lkml-faq.html