From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752478AbbD3RF3 (ORCPT ); Thu, 30 Apr 2015 13:05:29 -0400 Received: from m50-112.126.com ([123.125.50.112]:48006 "EHLO m50-112.126.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751252AbbD3RF0 (ORCPT ); Thu, 30 Apr 2015 13:05:26 -0400 X-Greylist: delayed 1866 seconds by postgrey-1.27 at vger.kernel.org; Thu, 30 Apr 2015 13:05:26 EDT From: Xunlei Pang To: linux-kernel@vger.kernel.org Cc: Peter Zijlstra , Steven Rostedt , Juri Lelli , Ingo Molnar , Xunlei Pang Subject: [PATCH 2/2] sched/rt: Optimizate task_woken_rt() Date: Fri, 1 May 2015 00:33:18 +0800 Message-Id: <1430411598-4904-2-git-send-email-xlpang@126.com> X-Mailer: git-send-email 2.0.4 In-Reply-To: <1430411598-4904-1-git-send-email-xlpang@126.com> References: <1430411598-4904-1-git-send-email-xlpang@126.com> X-CM-TRANSID: j9KowAA3KO1PWUJVW+IHBQ--.69S4 X-Coremail-Antispam: 1Uf129KBjvdXoWrtF48AF1kGFyDWF4kCw4xCrg_yoWDZwbE9w n2gr18Cw4jvryDt345Ga13KrykK39FqryrAa1qgrykArW0yrZxA395uFWUJrZ5ZFWfCFn3 Can2gF48Crn5WjkaLaAFLSUrUUUUUb8apTn2vfkv8UJUUUU8Yxn0WfASr-VFAUDa7-sFnT 9fnUUvcSsGvfC2KfnxnUUI43ZEXa7IU8KsjUUUUUU== X-Originating-IP: [118.114.222.231] X-CM-SenderInfo: p0ost0bj6rjloofrz/1tbi7xvrv1UwxaIwXwAAsN Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Xunlei Pang - Remove "has_pushable_tasks(rq)" condition, because for queued p, "!task_running(rq, p)" and "p->nr_cpus_allowed > 1" implies true "has_pushable_tasks(rq)". - Remove "!test_tsk_need_resched(rq->curr)" condition, because the flag might be set right before the waking up, but we still need to push equal or lower priority tasks, it should be removed. Without this condition, we actually get the right logic. Signed-off-by: Xunlei Pang --- kernel/sched/rt.c | 2 -- 1 file changed, 2 deletions(-) diff --git a/kernel/sched/rt.c b/kernel/sched/rt.c index a9d33a3..9d735da 100644 --- a/kernel/sched/rt.c +++ b/kernel/sched/rt.c @@ -2233,8 +2233,6 @@ out: static void task_woken_rt(struct rq *rq, struct task_struct *p) { if (!task_running(rq, p) && - !test_tsk_need_resched(rq->curr) && - has_pushable_tasks(rq) && p->nr_cpus_allowed > 1 && (dl_task(rq->curr) || rt_task(rq->curr)) && (rq->curr->nr_cpus_allowed < 2 || -- 1.9.1