On 11/18/2013 01:56 PM, Naoya Horiguchi wrote: >> > Why bother trying to "optimize" it? > I thought that if we call cond_resched() too often, the copying thread can > take too long in a heavy load system, because the copying thread always > yields the CPU in every loop. I think you're confusing cond_resched() and yield(). The way I look at it: yield() means: "Hey scheduler, go right now and run something else I'm done running" cond_resched() means: "Schedule me off if the scheduler has already decided something else _should_ be running" I'm sure I'm missing some of the subtleties, but as I see it, yield() actively goes off and finds something else to run. cond_resched() only schedules you off if you've *already* run too long. -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@xxxxxxxxx. For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: <a href=mailto:"dont@xxxxxxxxx"> email@xxxxxxxxx </a>