Re: schedule_delayed_work with a 0 jiffy delay

From: Tejun Heo
Date: Sun Sep 28 2014 - 10:27:22 EST


Hello, Joe.

On Fri, Sep 26, 2014 at 10:52:27AM -0400, Joe Lawrence wrote:
...
> I was wondering if such behavior was expected on !PREEMPT kernels,
> especially after b22ce2785d97 "workqueue: cond_resched() after
> processing each work item". In the ftraces I've observed from the RCU
> stall, cond_resched() never seems to schedule. Under what conditions
> would it be expected to do so?

Hmmm... it should yield if there's a higher priority task scheduled.
Maybe the workqueue in question is a highpri one?

> Changing the worker function to reschedule with at least 1 jiffy avoids
> this problem -- I was just curious if a fix at that end was appropriate.

The fact that 0 delay means immediate execution is depended upon in
multiple places and changing it will break other things. The
workqueue user itself sounds buggy to me. Can't that be fixed?

Thanks.

--
tejun
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/