Comment 3 for bug 1461620

Revision history for this message
Rafael David Tinoco (rafaeldtinoco) wrote :

It happens that the fix relies on checking if the stop worker needs task selection re-start:

+ if (need_pull_dl_task(rq, prev)) {
   pull_dl_task(rq);
+ /*
+ * pull_rt_task() can drop (and re-acquire) rq->lock; this
+ * means a stop task can slip in, in which case we need to
+ * re-start task selection.
+ */
+ if (rq->stop && rq->stop->on_rq)
+ return RETRY_TASK;

And this is done by returning RETRY_TASK. This logic was not available in 3.13 AND I don't want to jeopardise our 3.13 scheduler.