Messages in this thread | | | Date | Wed, 27 Dec 2006 12:16:19 +0100 | From | Ingo Molnar <> | Subject | Re: [patch] sched: remove __resched_legal() and fix cond_resched_softirq() |
| |
* OGAWA Hirofumi <hirofumi@mail.parknet.co.jp> wrote:
> > i found another bug and realized that the whole __resched_legal() > > approach is fundamentally wrong! The patch below fixes this. > > Hmm.. but the path seems, > > -> cond_resched() > -> if (__resched_legal()) /* preempt_count == 0 */ > -> __cond_resched() /* preempt_count == 0x10000000 */ > -> schedule() > [...] > -> cond_resched() > -> if (__resched_legal()) /* preempt_count == 0x10000000 */ > -> __cond_resched() /* preempt_count == 0x20000000 */ > -> schedule() /* warning */ > > Where is it prevented? Or warning is just wrong?
this should be handled by the second version of the patch i sent out yesterday. When we have PREEMPT_ACTIVE set, no schedule() call is legal.
Ingo - 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/
| |