Received: by 2002:a5b:505:0:0:0:0:0 with SMTP id o5csp3388926ybp; Sun, 6 Oct 2019 10:51:17 -0700 (PDT) X-Google-Smtp-Source: APXvYqw6xQpR0LuHTHuVqNS+5Ar/gd2KHhRF2hFH1ti1jwEJezCESuHALTJlFyjq1rhAQrMB8/Z5 X-Received: by 2002:a17:906:1152:: with SMTP id i18mr20774039eja.113.1570384277190; Sun, 06 Oct 2019 10:51:17 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1570384277; cv=none; d=google.com; s=arc-20160816; b=yJiM3x1SGuH2gNBQquKq9HwbXBebc17okVhiMO4ZZfSZ6DsHSMQf6xX9V9IC4Py3yL scQi+Xk6UjQPc4GAJy6JW8yUkxfCPFR2/iRYyVtgjMxdNwbXCVgVbftnVp76lEhlsltm VTz14FgJ12mMTlNoFa2HP7QnxxEDmb6kFxnnZZknIk5wHEF8eZln/2XhWwqc1hX/Hg7B Yc0TVUQFxfUzh/cNoPuMKwwbu+0LibSy+G+aqo3HXMIQnjyaX8pX6dFGK0d5Jk+uFl8l Hrde0OigJSPHYLWbP9u+9olg3BckkVOjjcPbG0o5qDpCJUo9c5MoLArmJ8nXn68mi5iH Jrbw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :user-agent:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=JjsCzVmr9gy8tUw/KMvwgBnzEg7lFP4eX2rBwT7PtuI=; b=Njf3gjAmeYBXF6ytRu7q8CnbXjW/Nsheko4xDwlRK1TTtxQRN2jvLzXCw/zuLKpcWx qwvI5CxQjOIViGtIY3PxC7lX0GGgUEXRZ8N0ijf0MlUYxeRbQ8EdNr/oUrqxIs6Bz5oT sQcPfRFfC61xLJKYnSyfuESmAg9rKGtu4hWgB0UTxHDS/gWOYiojm+lWCy8iwwg9rsOf 07U07FTXY13ndfSIcFFkFu4XaG54HFCvwXn/lk2pNGmjC+v4Yu6O03WrJyXxe17OjNhq kfg3GircknGgWNCurrQ/GpMiHtKA6kPzuvAHKQGzJhCRxIrijQQM2OVp0lD7wgqfqx6I uGYQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=YBBaOzbV; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id j23si684135ejb.115.2019.10.06.10.50.53; Sun, 06 Oct 2019 10:51:17 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=YBBaOzbV; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728632AbfJFRth (ORCPT + 99 others); Sun, 6 Oct 2019 13:49:37 -0400 Received: from mail.kernel.org ([198.145.29.99]:41548 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1730202AbfJFRlw (ORCPT ); Sun, 6 Oct 2019 13:41:52 -0400 Received: from localhost (83-86-89-107.cable.dynamic.v4.ziggo.nl [83.86.89.107]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id EF0C92053B; Sun, 6 Oct 2019 17:41:50 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1570383711; bh=RdsNbSOkE3LWk5h3UxRp2TIjnw+1N5nQg2cMQy0ytRU=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=YBBaOzbVFFcdELe6rq/LAhcZp3w9MPqFegAV+93WjE1l3167gPVz++PNnA262HWPh fZ51FUNcR6McP6RTcTlz6fGQ0RZnn7ANlBNoSVBXDElY4ANJN+OoGk5QA3QdzY5bx6 9Cqd16hRylbf4pjN89wJSjLrBFbKhySQXVikru3Q= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Nathan Lynch , Michael Ellerman , Sasha Levin Subject: [PATCH 5.3 066/166] powerpc/pseries: correctly track irq state in default idle Date: Sun, 6 Oct 2019 19:20:32 +0200 Message-Id: <20191006171218.869799399@linuxfoundation.org> X-Mailer: git-send-email 2.23.0 In-Reply-To: <20191006171212.850660298@linuxfoundation.org> References: <20191006171212.850660298@linuxfoundation.org> User-Agent: quilt/0.66 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Nathan Lynch [ Upstream commit 92c94dfb69e350471473fd3075c74bc68150879e ] prep_irq_for_idle() is intended to be called before entering H_CEDE (and it is used by the pseries cpuidle driver). However the default pseries idle routine does not call it, leading to mismanaged lazy irq state when the cpuidle driver isn't in use. Manifestations of this include: * Dropped IPIs in the time immediately after a cpu comes online (before it has installed the cpuidle handler), making the online operation block indefinitely waiting for the new cpu to respond. * Hitting this WARN_ON in arch_local_irq_restore(): /* * We should already be hard disabled here. We had bugs * where that wasn't the case so let's dbl check it and * warn if we are wrong. Only do that when IRQ tracing * is enabled as mfmsr() can be costly. */ if (WARN_ON_ONCE(mfmsr() & MSR_EE)) __hard_irq_disable(); Call prep_irq_for_idle() from pseries_lpar_idle() and honor its result. Fixes: 363edbe2614a ("powerpc: Default arch idle could cede processor on pseries") Signed-off-by: Nathan Lynch Signed-off-by: Michael Ellerman Link: https://lore.kernel.org/r/20190910225244.25056-1-nathanl@linux.ibm.com Signed-off-by: Sasha Levin --- arch/powerpc/platforms/pseries/setup.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/arch/powerpc/platforms/pseries/setup.c b/arch/powerpc/platforms/pseries/setup.c index f5940cc71c372..63462e96cf0ee 100644 --- a/arch/powerpc/platforms/pseries/setup.c +++ b/arch/powerpc/platforms/pseries/setup.c @@ -316,6 +316,9 @@ static void pseries_lpar_idle(void) * low power mode by ceding processor to hypervisor */ + if (!prep_irq_for_idle()) + return; + /* Indicate to hypervisor that we are idle. */ get_lppaca()->idle = 1; -- 2.20.1