Re: [PATCH] BUG(): sched.c: Line 944

Robert Love
2002-09-17T18:42:31Z

On Tue, 2002-09-17 at 12:26, Ingo Molnar wrote:

> On Tue, 17 Sep 2002, Linus Torvalds wrote:
>
> > On the other hand, we do have other ways to test the preempt count
> > inside the scheduler. In particular, we might just move the
> > "in_atomic()" check a few lines downwards, at which point we've released
> > the kernel lock and explicitly disabled preemption, so at that point the
> > test should be even simpler with fewer conditionals..
>
> indeed ...

OK so do we want to do (a):

(moved down to after the preempt_disable() and release_kernel_lock())

if (likely(current->state != TASK_ZOMBIE)
if (unlikely((preempt_count() & ~PREEMPT_ACTIVE) != 1))
...

or go with (b) where we split schedule() into schedule(),
exit_schedule(), and do_schedule().

Robert Love