Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753049AbaBXSWX (ORCPT ); Mon, 24 Feb 2014 13:22:23 -0500 Received: from userp1040.oracle.com ([156.151.31.81]:39696 "EHLO userp1040.oracle.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751867AbaBXSWW (ORCPT ); Mon, 24 Feb 2014 13:22:22 -0500 Message-ID: <530B8DBC.6020105@oracle.com> Date: Mon, 24 Feb 2014 13:21:48 -0500 From: Sasha Levin User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:24.0) Gecko/20100101 Thunderbird/24.2.0 MIME-Version: 1.0 To: Peter Zijlstra , Michael wang CC: Ingo Molnar , LKML Subject: Re: sched: hang in migrate_swap References: <5304F32A.4040907@oracle.com> <5305856F.3000109@linux.vnet.ibm.com> <53078241.3060201@oracle.com> <53080122.609@linux.vnet.ibm.com> <530ABB44.5000601@oracle.com> <530AD653.3000808@linux.vnet.ibm.com> <20140224071028.GW9987@twins.programming.kicks-ass.net> <530B1B80.4000307@linux.vnet.ibm.com> <20140224121218.GR15586@twins.programming.kicks-ass.net> In-Reply-To: <20140224121218.GR15586@twins.programming.kicks-ass.net> Content-Type: multipart/mixed; boundary="------------040905030907040508000803" X-Source-IP: acsinet21.oracle.com [141.146.126.237] Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org This is a multi-part message in MIME format. --------------040905030907040508000803 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit On 02/24/2014 07:12 AM, Peter Zijlstra wrote: > Anyway, the below seems to work; it avoids playing tricks with the idle > thread and instead uses a magic constant. > > The comparison should be faster too; seeing how we avoid dereferencing > p->sched_class. > > --- > Subject: sched: Guarantee task priority in pick_next_task() > From: Peter Zijlstra > Date: Fri Feb 14 12:25:08 CET 2014 > > Michael spotted that the idle_balance() push down created a task > priority problem. > > Previously, when we called idle_balance() before pick_next_task() it > wasn't a problem when -- because of the rq->lock droppage -- an rt/dl > task slipped in. > > Similarly for pre_schedule(), rt pre-schedule could have a dl task > slip in. > > But by pulling it into the pick_next_task() loop, we'll not try a > higher task priority again. > > Cure this by creating a re-start condition in pick_next_task(); and > triggering this from pick_next_task_{rt,fair}(). > > Fixes: 38033c37faab ("sched: Push down pre_schedule() and idle_balance()") > Cc: Juri Lelli > Cc: Ingo Molnar > Cc: Steven Rostedt > Reported-by: Michael Wang > Signed-off-by: Peter Zijlstra Sign me up to the fan club of this patch, I love it. After running it for a bit I see that all the hangs I've seen before are gone, even those that I didn't assume were sched related. Thanks, Sasha --------------040905030907040508000803 Content-Type: application/gzip; name="0.txt.gz" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="0.txt.gz" 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 d8a6RaIP9c42t0j0od6Z4haJPtQ7y9si0Yd6Z2hbJPpQ7+xqi0Qf6p0ZbZHoQ72zmi0Sfah3 RrJBdr6g0zub2CLRh3pnAlsk+lDvLF6LRB/qnYFrkehDvbNnLRJ9qHfmq0WiD/XOWrVI9KHe GacWiT7UO1vUItGHemd6GqSNPtQ7S9Mi0Yd6Z1haZGcM7JsdaZHoQ70zGy0Sfah3VqJFog/1 zii0SPSh3tmAFok+1Hsl3yLRh3qvwlsk+lDvFXSDdNCHeq9+WyT6UO+Va4tEH+q96myR6EO9 V4wtEn2o92qvRaIP9V6ptUj0od6rrBaJPtR3hXT17nRKruL1Bqbq7+J8fU9zVn/ZN49owMid MfRMclOWm+nbt0VdLGpLDbP8WrJq418TXlZJGV/kWcAK/n3Lqw0L4igOmi9k3ZlD8Rvky4vP 86PzxZR8WizJ6Un9zczjiy+SpdWuJPCHVVDWpY2hSbbXfsT84vSY0BKKP7xbLOq7QmHU+ieD HPBjBKrNADQR92t1Spqqm5bqpq26KZqpc3Okuil+RbRzc6y66aluTpRGUBrTVNrIVBrJVFpJ ch5B967STqbSUKbSUqbSVKbSVpbSVpban5S2spS2spS2spS2spS2spS2spS2spS2spW2spW2 stXBp7SVrbSVrbSVrbSVrbSVrbSVrbSVo7SVo7SVo7SVo+6plLZylLZylLZylLZylLZylLYa KW01UtpqpLTVSGmrkbpbV9pqpLTVSGmrkdJWI6WtXKWtXKWtXKWtXKWtXKWtXPUYqLSVK9rq 9BOfIPxmfJ0SfoDNKg6JOzncHZ1jjg8JDUN+ABGfX7WrmEPy/uqUGANVv1tMiSsav1hveA4Y piVJkt3zBLPr8ZMcikNikJus3CTVdf1eJF5OySW7jguYpbEQ5n4FvWNt5rSbEp20WXZjezrJ i5nq1XDDxP4cU+ekk0iepu3NhLXbM7ftxRQ2pdVp8Ccno8gQhN7ROKkT3jzLfXF8StpTfgSu 7dFUG5rT7hEdzTFVBDxNdipJ/RhktWF5sKmm5OPlCjzjauqZE4uk+Qo+XNPiduXHZTEFN2o+ Ag/evuPrg/qtrMdcXALZlCzWPgv5UTuOZ4B216x4yx9e/I1XkK+aRk6zGCGFObFdw3JIXssP LdNzHVJZxmRsSnrGWzBbwugtTOqbKrY5fv5ZexYLP5SlOfdFPKqhx7OUTR6vKT8KBO7LH6mA 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 --------------040905030907040508000803-- -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/