From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753735Ab3A1UXz (ORCPT ); Mon, 28 Jan 2013 15:23:55 -0500 Received: from forward14.mail.yandex.net ([95.108.130.92]:50679 "EHLO forward14.mail.yandex.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751872Ab3A1UXx (ORCPT ); Mon, 28 Jan 2013 15:23:53 -0500 From: Kirill Tkhai To: "linux-kernel@vger.kernel.org" Cc: Steven Rostedt , Ingo Molnar , Peter Zijlstra , linux-rt-users Subject: [PATCH]sched/rt: Do not try to push tasks if pinned task switches to RT MIME-Version: 1.0 Message-Id: <3019251359404630@web18f.yandex.ru> X-Mailer: Yamail [ http://yandex.ru ] 5.0 Date: Tue, 29 Jan 2013 00:23:50 +0400 Content-Transfer-Encoding: 7bit Content-Type: text/plain Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Just switched pinned task is not able to be pushed. If the rq had had several RT tasks before they have already been considered as candidates to be pushed (or pulled). Signed-off-by: Kirill V Tkhai CC: Steven Rostedt CC: Ingo Molnar CC: Peter Zijlstra CC: linux-rt-users --- kernel/sched/rt.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/kernel/sched/rt.c b/kernel/sched/rt.c index 4e8f0f4..5f7d92b 100644 --- a/kernel/sched/rt.c +++ b/kernel/sched/rt.c @@ -1925,9 +1925,9 @@ static void switched_to_rt(struct rq *rq, struct task_struct *p) */ if (p->on_rq && rq->curr != p) { #ifdef CONFIG_SMP - if (rq->rt.overloaded && push_rt_task(rq) && + if (rq->rt.overloaded && p->nr_cpus_allowed > 1 && /* Don't resched if we changed runqueues */ - rq != task_rq(p)) + push_rt_task(rq) && rq != task_rq(p)) check_resched = 0; #endif /* CONFIG_SMP */ if (check_resched && p->prio < rq->curr->prio)