projects
/
openwrt
/
staging
/
blogic.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
| inline |
side by side
(parent:
6b0a563
)
sched/deadline: Reschedule from switched_from_dl() after a successful pull
author
Wanpeng Li
<
[email protected]
>
Thu, 30 Oct 2014 22:39:35 +0000
(06:39 +0800)
committer
Ingo Molnar
<
[email protected]
>
Tue, 4 Nov 2014 06:17:55 +0000
(07:17 +0100)
In switched_from_dl() we have to issue a resched if we successfully
pulled some task from other cpus. This patch also aligns the behavior
with -rt.
Suggested-by: Juri Lelli <
[email protected]
>
Signed-off-by: Wanpeng Li <
[email protected]
>
Signed-off-by: Peter Zijlstra (Intel) <
[email protected]
>
Cc: Kirill Tkhai <
[email protected]
>
Cc: Linus Torvalds <
[email protected]
>
Link:
http://lkml.kernel.org/r/
[email protected]
Signed-off-by: Ingo Molnar <
[email protected]
>
kernel/sched/deadline.c
patch
|
blob
|
history
diff --git
a/kernel/sched/deadline.c
b/kernel/sched/deadline.c
index e7779b3feec4c1fec1e5cb763b8606bccb000a6a..362ab1f886b079df1975225a74837ac843239239 100644
(file)
--- a/
kernel/sched/deadline.c
+++ b/
kernel/sched/deadline.c
@@
-1643,8
+1643,11
@@
static void switched_from_dl(struct rq *rq, struct task_struct *p)
* this is the right place to try to pull some other one
* from an overloaded cpu, if any.
*/
- if (!rq->dl.dl_nr_running)
- pull_dl_task(rq);
+ if (!task_on_rq_queued(p) || rq->dl.dl_nr_running)
+ return;
+
+ if (pull_dl_task(rq))
+ resched_curr(rq);
#endif
}