From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751410AbdBWQhp (ORCPT ); Thu, 23 Feb 2017 11:37:45 -0500 Received: from merlin.infradead.org ([205.233.59.134]:47602 "EHLO merlin.infradead.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751156AbdBWQhn (ORCPT ); Thu, 23 Feb 2017 11:37:43 -0500 Date: Thu, 23 Feb 2017 17:37:37 +0100 From: Peter Zijlstra To: Pavan Kondeti Cc: Steven Rostedt , LKML , Ingo Molnar , Andrew Morton Subject: Re: [PATCH] sched: Optimize pick_next_task for idle_sched_class too Message-ID: <20170223163737.GW6536@twins.programming.kicks-ass.net> References: <20170119101703.2abeaeb6@gandalf.local.home> <20170119174408.GN6485@twins.programming.kicks-ass.net> <20170223135458.GC6515@twins.programming.kicks-ass.net> <20170223152533.GG6515@twins.programming.kicks-ass.net> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20170223152533.GG6515@twins.programming.kicks-ass.net> User-Agent: Mutt/1.5.23.1 (2014-03-12) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Thu, Feb 23, 2017 at 04:25:33PM +0100, Peter Zijlstra wrote: > > Ah, I read your question wrong. Yes I think you're right, we now loose > the pull when the last RT task goes away. > > Hmm.. how to fix that nicely.. Something like so perhaps? This would make a pull happen when the last RT task on this CPU goes away. Steve? --- diff --git a/kernel/sched/rt.c b/kernel/sched/rt.c index 9f3e40226dec..283d591078b0 100644 --- a/kernel/sched/rt.c +++ b/kernel/sched/rt.c @@ -1336,6 +1336,9 @@ static void dequeue_task_rt(struct rq *rq, struct task_struct *p, int flags) dequeue_rt_entity(rt_se, flags); dequeue_pushable_task(rq, p); + + if (!rq->rt.rt_nr_running) + queue_pull_task(rq); } /*