All of lore.kernel.org
 help / color / mirror / Atom feed
From: Wanpeng Li <kernellwp@gmail.com>
To: Peter Zijlstra <peterz@infradead.org>
Cc: Wanpeng Li <wanpeng.li@linux.intel.com>,
	Ingo Molnar <mingo@redhat.com>, Juri Lelli <juri.lelli@arm.com>,
	Kirill V Tkhai <tkhai@yandex.ru>,
	Steven Rostedt <rostedt@goodmis.org>,
	linux-kernel@vger.kernel.org
Subject: Re: [PATCH] sched/deadline: do not try to push tasks if pinned task switches to dl
Date: Fri, 10 Oct 2014 19:00:55 +0800	[thread overview]
Message-ID: <5437BC67.2010700@gmail.com> (raw)
In-Reply-To: <20141010105614.GA3343@worktop.programming.kicks-ass.net>

[-- Attachment #1: Type: text/plain, Size: 1532 bytes --]


于 10/10/14, 6:56 PM, Peter Zijlstra 写道:
> On Fri, Oct 10, 2014 at 06:26:42PM +0800, Wanpeng Li wrote:
>> 于 10/10/14, 6:10 PM, Peter Zijlstra 写道:
>>> On Fri, Oct 10, 2014 at 10:43:17AM +0800, Wanpeng Li wrote:
>>>> 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).
>>> 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.
> 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


[-- Attachment #2: 0001-sched-deadline-do-not-try-to-push-tasks-if-pinned-ta.patch --]
[-- Type: text/plain, Size: 1540 bytes --]

From 247460238414744119265d6aa92f4bf006b060aa Mon Sep 17 00:00:00 2001
From: Wanpeng Li <wanpeng.li@linux.intel.com>
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"). 

Signed-off-by: Wanpeng Li <wanpeng.li@linux.intel.com>
---
v1 -> v2:
 * use 12 or more chars for the git commit ID

 kernel/sched/deadline.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/kernel/sched/deadline.c b/kernel/sched/deadline.c
index abfaf3d..cf7c9b6 100644
--- a/kernel/sched/deadline.c
+++ b/kernel/sched/deadline.c
@@ -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 */
-- 
1.9.1


  reply	other threads:[~2014-10-10 11:01 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-10-10  2:43 [PATCH] sched/deadline: do not try to push tasks if pinned task switches to dl Wanpeng Li
2014-10-10 10:10 ` Peter Zijlstra
2014-10-10 10:26   ` Wanpeng Li
2014-10-10 10:56     ` Peter Zijlstra
2014-10-10 11:00       ` Wanpeng Li [this message]
2014-10-20 15:42     ` Steven Rostedt

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=5437BC67.2010700@gmail.com \
    --to=kernellwp@gmail.com \
    --cc=juri.lelli@arm.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mingo@redhat.com \
    --cc=peterz@infradead.org \
    --cc=rostedt@goodmis.org \
    --cc=tkhai@yandex.ru \
    --cc=wanpeng.li@linux.intel.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.