sched/deadline: do not try to push tasks if pinned task switches to dl
PATCH 1/1 sched/deadline: do not try to push tasks if pinned task switches to dl
As Kirill mentioned(https://lkml.org/lkml/2013/1/29/118):
| If rq has already had 2 or more pushable tasks and we try to add a | pinned task then call of push_rt_task will just waste a time.
Just switched pinned task is not able to be pushed. If the rq had had several dl tasks before they have already been considered as candidates to be pushed (or pulled). This patch does the same behavior as rt class which introduced by commit 104479 (sched/rt: Do not try to push tasks if pinned task switches to RT).
--- kernel/sched/deadline.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-)
kernel/sched/deadline.c +2 -1
@@ -1603,7 +1603,8 @@ static void switched_to_dl(struct rq *rq, struct task_struct *p)if (task_on_rq_queued (p) && rq->curr != p) {#ifdef CONFIG_SMP -if (rq->dl.overloaded &&push_dl_task (rq) && rq !=task_rq (p)) +if (p->nr_cpus_allowed >1 && rq->dl.overloaded + &&push_dl_task (rq) && rq !=task_rq (p))/* Only reschedule if pushing failed */ check_resched =0 ;#endif /* CONFIG_SMP */
Signature · 1 line
1.9.1
Peter Zijlstra
maintainerQuoted 9 lines · Wanpeng Li
As Kirill mentioned(https://lkml.org/lkml/2013/1/29/118):
| If rq has already had 2 or more pushable tasks and we try to add a | pinned task then call ofpush_rt_taskwill just waste a time.Just switched pinned task is not able to be pushed. If the rq had had several dl tasks before they have already been considered as candidates to be pushed (or pulled). This patch does the same behavior as rt class which introduced by commit 104479 (sched/rt: Do not try to push tasks if pinned task switches to RT).
Checkpatch rightly complains:
ERROR: Please use 12 or more chars for the git commit ID like: 'commit 10447917551e ("sched/rt: Do not try to push tasks if pinned task switches to RT")' #12:
which introduced by commit 104479 (sched/rt: Do not try to push tasks
Quoted 10 lines · Peter Zijlstra
Quoted 9 lines · Wanpeng Li
As Kirill mentioned(https://lkml.org/lkml/2013/1/29/118):
| If rq has already had 2 or more pushable tasks and we try to add a | pinned task then call ofpush_rt_taskwill just waste a time.Just switched pinned task is not able to be pushed. If the rq had had several dl tasks before they have already been considered as candidates to be pushed (or pulled). This patch does the same behavior as rt class which introduced by commit 104479 (sched/rt: Do not try to push tasks if pinned task switches to RT).
Quoted 5 lines
Checkpatch rightly complains:
ERROR: Please use 12 or more chars for the git commit ID like: 'commit
10447917551e("sched/rt: Do not try to push tasks if pinned task switches to RT")' #12:
which introduced by commit 104479 (sched/rt: Do not try to push tasks
I also got this warning before send out the patch, however, I check 6 chars is enough for this commit. Anyway, I will send a newer version later.
Regards,
Wanpeng Li
Quoted 7 lines
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Peter Zijlstra
maintainerQuoted 12 lines · Wanpeng Li
Quoted 10 lines · Peter Zijlstra
Quoted 9 lines · Wanpeng Li
As Kirill mentioned(https://lkml.org/lkml/2013/1/29/118):
| If rq has already had 2 or more pushable tasks and we try to add a | pinned task then call ofpush_rt_taskwill just waste a time.Just switched pinned task is not able to be pushed. If the rq had had several dl tasks before they have already been considered as candidates to be pushed (or pulled). This patch does the same behavior as rt class which introduced by commit 104479 (sched/rt: Do not try to push tasks if pinned task switches to RT).
Quoted 8 lines
Quoted 5 lines
Checkpatch rightly complains:
ERROR: Please use 12 or more chars for the git commit ID like: 'commit
10447917551e("sched/rt: Do not try to push tasks if pinned task switches to RT")' #12:
which introduced by commit 104479 (sched/rt: Do not try to push tasksI also got this warning before send out the patch, however, I check 6 chars is enough for this commit. Anyway, I will send a newer version later.
It is currently, it might not be in the future. I've already had hash collisions with 8 char hashes. And the fact thats it in the changelog means it can (and therefore) will be referenced at some point in the future. If by that point there is a collision...
Quoted 17 lines · Peter Zijlstra
Quoted 16 lines · Wanpeng Li
Quoted 15 lines · Peter Zijlstra
Quoted 9 lines · Wanpeng Li
As Kirill mentioned(https://lkml.org/lkml/2013/1/29/118):
| If rq has already had 2 or more pushable tasks and we try to add a | pinned task then call ofpush_rt_taskwill just waste a time.Just switched pinned task is not able to be pushed. If the rq had had several dl tasks before they have already been considered as candidates to be pushed (or pulled). This patch does the same behavior as rt class which introduced by commit 104479 (sched/rt: Do not try to push tasks if pinned task switches to RT).
Checkpatch rightly complains:
ERROR: Please use 12 or more chars for the git commit ID like: 'commit
10447917551e("sched/rt: Do not try to push tasks if pinned task switches to RT")' #12:
which introduced by commit 104479 (sched/rt: Do not try to push tasks
Quoted 6 lines
Quoted 2 lines
I also got this warning before send out the patch, however, I check 6 chars is enough for this commit. Anyway, I will send a newer version later.
It is currently, it might not be in the future. I've already had hash collisions with 8 char hashes. And the fact thats it in the changelog means it can (and therefore) will be referenced at some point in the future. If by that point there is a collision...
Got it, thanks for your pointing out.
Regards,
Wanpeng Li
From 247460238414744119265d6aa92f4bf006b060aa Mon Sep 17 00:00:00 2001
From: Wanpeng Li <[email protected]>
Date: Fri, 10 Oct 2014 10:09:37 +0800
Subject: [PATCH v2] sched/deadline: do not try to push tasks if pinned task switches to dl
As Kirill mentioned(https://lkml.org/lkml/2013/1/29/118):
| If rq has already had 2 or more pushable tasks and we try to add a | pinned task then call of push_rt_task will just waste a time.
Just switched pinned task is not able to be pushed. If the rq had had several dl tasks before they have already been considered as candidates to be pushed (or pulled). This patch done the same behavior as rt class which introduced by commit 10447917551e ("sched/rt: Do not try to push tasks if pinned task switches to RT").
---
v1 -> v2:
* use 12 or more chars for the git commit ID
kernel/sched/deadline.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-)
kernel/sched/deadline.c +2 -1
@@ -1603,7 +1603,8 @@ static void switched_to_dl(struct rq *rq, struct task_struct *p)if (task_on_rq_queued (p) && rq->curr != p) {#ifdef CONFIG_SMP -if (rq->dl.overloaded &&push_dl_task (rq) && rq !=task_rq (p)) +if (p->nr_cpus_allowed >1 && rq->dl.overloaded + &&push_dl_task (rq) && rq !=task_rq (p))/* Only reschedule if pushing failed */ check_resched =0 ;#endif /* CONFIG_SMP */
Signature · 1 line
1.9.1
Steven Rostedt
reviewerQuoted 6 lines · On Fri, 10 Oct 2014 18:26:42 +0800 Wanpeng Li <[email protected]> wrote:
Quoted 3 lines
ERROR: Please use 12 or more chars for the git commit ID like: 'commit
10447917551e("sched/rt: Do not try to push tasks if pinned task switches to RT")' #12:
which introduced by commit 104479 (sched/rt: Do not try to push tasksI also got this warning before send out the patch, however, I check 6 chars is enough for this commit. Anyway, I will send a newer version later.
6 chars may be enough today, but there's no guarantee that it will be enough tomorrow, when someone reads this changelog years from now.
-- Steve