Re: Patch: linux-2.5.8-pre1/kernel/exit.c change caused BUG() atboot

Andrew Morton (akpm@zip.com.au)
Thu, 04 Apr 2002 15:10:21 -0800


Robert Love wrote:
>
> ...
> This allows us to preempt tasks in any state, without problems or
> special cases. It also wasn't too much overhead - compared to now,
> basically just:
>
> if (unlikely(current->preempt_count() & PREEMPT_ACTIVE))
> goto pick_next_task;
>
> at the top of schedule().
>

That's changing schedule(). Seems that I'd ruled out that
option prematurely. As current->preempt_count() and PREEMPT_ACTIVE
can both evaluate to constant zero if CONFIG_PREEMPT=n, it can
be done ifdeflessly.

Everything happens inside rq->lock. Looks solid to me.

-
-
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/