Andrea Arcangeli <andrea(a)suse.de> wrote:
And it's currently OK to add a might_sleep()
to (say) an inline path which
is expended a zillion times because we know it'll go away for production
builds. If those things become cond_resched() calls instead, the code
increase will be permanent.
this is exactly why I'm making this change: so you can still add
might_sleep in a inline path expected to run a zillion times. With
Ingo's change you would be doing cond_sched internally to might_sleep, I
do the other way around so might_sleep remains a debugging statement.
OK.
cond_resched() is usually a waste of space with CONFIG_PREEMPT. It might
make sense to define a cond_resched_if_not_preempt thingy, which only does
things if !CONFIG_PREEMPT. We'd still need to use cond_resched() inside
lock_kernel().
I've yet to go through Arjan's patch - I
suspect a lot of it is not needed.
Arjan's or Ingo's? I've seen Ingo's patch but maybe I missed Arjan's
one.
I think Ingo's patch includes Arjan's one. Ingo's patch apparently breaks
ext3. I have a bunch of ext3 and other fixes here, but there's still an occasional
problem on SMP.