On Tue, Jul 13, 2004 at 03:25:32PM -0700, Andrew Morton wrote: > local_irq_disable(); > <fiddle with per-cpu stuff> > function_which_calls_cond_resched(); > <fiddle with per-cpu stuff> > local_irq_enable(); > > then we want might_sleep() to warn about the bug.
might_sleep currently _doesn't_ warn about any bug in the above case I quoted. the kmalloc example is trapped instead. >From my part I don't like anybody to call schedule with irq disabled (and I would definitely put a debug check in schedule() for that, guess how I found about the missing sti in entry.S btw). But if you are ok with people calling schedule with irq disabled then I cannot put a check in there. sti doesn't cost that much, and the work-to-do and sched_yield paths are _never_ fast paths, so they don't worth an hack like that.