From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751305AbdKUPOc (ORCPT ); Tue, 21 Nov 2017 10:14:32 -0500 Received: from mx1.redhat.com ([209.132.183.28]:48148 "EHLO mx1.redhat.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1750794AbdKUPOa (ORCPT ); Tue, 21 Nov 2017 10:14:30 -0500 Date: Tue, 21 Nov 2017 09:14:25 -0600 From: Clark Williams To: Sebastian Andrzej Siewior Cc: Steven Rostedt , LKML , Peter Zijlstra , Thomas Gleixner , Ingo Molnar , Daniel Bristot de Oliveira , John Kacur , Scott Wood , Mike Galbraith Subject: [PATCH RT] fix IPI balancing for 4.14-rt Message-ID: <20171121091425.7577dc02@tagon> In-Reply-To: <20171006140504.48dc32c1@gandalf.local.home> References: <20171006140504.48dc32c1@gandalf.local.home> Organization: Red Hat, Inc MIME-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha512; boundary="Sig_/IEqgoZ_=FzGcLi9oBtCOfZf"; protocol="application/pgp-signature" X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.31]); Tue, 21 Nov 2017 15:14:30 +0000 (UTC) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org --Sig_/IEqgoZ_=FzGcLi9oBtCOfZf Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: quoted-printable =46rom 8ea8311b75a40bdea03e7f8228a0578b6367e9d1 Mon Sep 17 00:00:00 2001 From: Clark Williams Date: Mon, 20 Nov 2017 14:26:12 -0600 Subject: [PATCH] [rt] sched/rt: fix panic in double_lock_balance with simplified IPI RT balancing I was testing 4.14-rt1 on a large system (cores =3D=3D 96) and saw that we were getting into an rt balancing storm, so I tried applying Steven's patch (not upstream yet): sched/rt: Simplify the IPI rt balancing logic Booting the resulting kernel yielded a panic in double_lock_balance() due to irqs not being disabled. This patch changes the calls to raw_spin_{lock,unlock} in the function rto_push_irq_work_function, to be raw_spin_{lock,unlock}_irq. Not sure if that's too heavy a hammer, but the resulting kernel boots and runs and survives 12h runs of rteval. Once Steven's patch goes in=20 upstream, we'll need something like this in RT. Signed-off-by: Clark Williams --- 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 57fb251dd8ce..a5cd0cea2f0f 100644 --- a/kernel/sched/rt.c +++ b/kernel/sched/rt.c @@ -2008,9 +2008,9 @@ void rto_push_irq_work_func(struct irq_work *work) * When it gets updated, a check is made if a push is possible. */ if (has_pushable_tasks(rq)) { - raw_spin_lock(&rq->lock); + raw_spin_lock_irq(&rq->lock); push_rt_tasks(rq); - raw_spin_unlock(&rq->lock); + raw_spin_unlock_irq(&rq->lock); } =20 raw_spin_lock(&rq->rd->rto_lock); --=20 2.14.3 --=20 The United States Coast Guard Ruining Natural Selection since 1790 --Sig_/IEqgoZ_=FzGcLi9oBtCOfZf Content-Type: application/pgp-signature Content-Description: OpenPGP digital signature -----BEGIN PGP SIGNATURE----- iQIzBAEBCgAdFiEE1WU+o5yGddpL1ZccE7Vd0HxTuFEFAloUQtEACgkQE7Vd0HxT uFHMbg/9HadHLD97KqfEjKQkZyn/rcr6f9z6cpagn6Vm44gF73MTSZMBTjVS1Lc9 v8bVkAhAmzKDYQXusoGTmH7ou3umyihj1g1Cov2UEBZvI8Wk8eeV9BI+I7Qre+2B n+8ISsi3Hytvp9zqG+DMk1PXQv8BoBr4uBEZHOiM5UXc4dFUHcmyb4Z6QmPUOrr0 PWVPwjesPQbcSjCU8Ni9n+d6Wp++yFLnlai+X33N/GH4IZcAy+PqhIWgh0IiAOpk aYaJ6u8TD/qSZs/Vh5+hSc1EMU8NOF/AGiZ7kJex0T+9UwsryghWks0HX/IRMmTi SuKDhH/lz9hNbXTHiBcqkwEuAdWk3alluna0nBGXF0lLMn9uR5tt77aI/LKPPjrk WztToIh5ZYsPo2STTelRg5Vo3V51NrYl60TR2imLgoXphqbeQLPS0Po85BH2Rhc4 QudvopUnZAzfh6qLnhX2bN4uxoWWaF2LIPip++amTm8HLbVL8u0m9MxgRp0rxJCG jskW58eCvagUsn/Us5ij97lBGQRR5ZPa6dtl7GeR4p19mfZF8NSF5BKoGzbMwNL+ bL1reR3Ri/9w3wLZ2YzUMQjBO2gQs7fmWib4eBy7EBDgAEdg9z3WYgBj3rl7PJs/ IdGYJU6b7XAXUitPPBEIqk5O5KVDJjQzzby7c9lklGmi54t47cQ= =SvVM -----END PGP SIGNATURE----- --Sig_/IEqgoZ_=FzGcLi9oBtCOfZf--