Am 08.05.2012 11:02, schrieb Artem Bityutskiy: > On Tue, 2012-05-08 at 10:26 +0200, Richard Weinberger wrote: >> The comment above yield()'s definition says: >> * If you want to use yield() to wait for something, use wait_event(). >> * If you want to use yield() to be 'nice' for others, use cond_resched(). >> * If you still want to use yield(), do not! >> >> The yield() usage of UBI really looks like the "be nice for others" case, >> so use cond_resched(). >> >> Signed-off-by: Richard Weinberger >> CC: peterz@infradead.org > > I guess we would better sleep for a couple of hundreds of milliseconds > instead. So, you'd prefer a msleep_interruptible(500) instead of yield() in this case? > The purpose was different. If we have I/O error, we hope it is a > transient failure. E.g., the HW is temporary unavailable because of an > internal issue. And with yield() we hoped to schedule away for longer > time than usual and let other processes which may affect that HW go > forward and do something. Okay, yield() is clearly the wrong choice here. cond_resched() is better. Thanks, //richard