On Tue, Jul 13, 2004 at 02:54:24PM -0700, Andrew Morton wrote:
Confused. Where do we call cond_resched() with local
interrupts disabled?
there are a lot of cond_resched, we might be calling it with irq
disabled, nobody ever did a might_sleep in the fast path of
cond_resched. And even if nobody does, if entry.S and sched_yield can
optimize, then everybody else can optimize too. It's not like that
entry.S is a piece of scheduler internal that will be obviously modified
if we modify the scheduler. so if you intend to leave those two there's
no point to forbid others to optimize, and there's no might_sleep in
current cond_resched anyways so you're already allowing people to
optimize and I want to allow it still after I add might_sleep there.
Sleeping with local interrupts disabled is usually a
bug, so we should
prefer to keep that check in might_sleep().
either it's _always_ a bug including for entry.S or sched_yield, or it's
_never_ a bug. I don't understand the "usually".