Received: by 2002:a5d:9c59:0:0:0:0:0 with SMTP id 25csp2151742iof; Tue, 7 Jun 2022 21:29:24 -0700 (PDT) X-Google-Smtp-Source: ABdhPJwR8KELAjK32WX36iPZal8W9AVnOB77JJk+cqrwUjkO10Z4C+VFz4WT1b8zCyCfTee9qTms X-Received: by 2002:a17:90b:4b82:b0:1e6:7853:c004 with SMTP id lr2-20020a17090b4b8200b001e67853c004mr36513835pjb.136.1654662564487; Tue, 07 Jun 2022 21:29:24 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1654662564; cv=none; d=google.com; s=arc-20160816; b=qwlNo+qKt+hsz2D20v0tOea1e20KfhqdDeSML1lcKk0nAPS4x7Stl340Jn6b5s4rJf x2FtRTzRvthWlRqK51yaHHlyiCDyNRrZIb/AEHtbWeg1p9aFCxwXoFVUAhT0KvjiRr0k 29HQKgO1tXSoRTLVTQ7bEXGXYSuHiXBxHGQq5AGeEMxl9IBRkQ06Vd45xuLN8u4cuHRS 404oXEZBKemmvswNceC8jc48s5sHoj6GwsHedmXQFT35hu1tm8fOeuL59ehjWbG4huFE 3szlvtySs43zVoe6biqTVvcjfwZXpFSrmU+Y/YsoH4iRP8jl7UuDP6RRkM7CVyN0Jb5R lnaQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :user-agent:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=N+oTU4rMs1OnsVlVQBf+2cOARycsS4kui40OlI5z0II=; b=VabCWXuLTqQmuK1sE/6f5hsq6ziZdJVZvLoayWNVrCg9jaf4oJRGklUQRTrMxCvSnt 4NBaDXaI2ACzBfXXOK1TrfMKLbup5vdVLV1igEnFoFET3QvB/tLHvWELAdcKqfRjvKMv 5Qgqbqzp19t026Z9sX95LOGIzwz2uK43HYXf/7P19apbsdn+d+XtVDAhB7w3cuRMEIph G0uMBoRKwy6z9mGDMFiGOd5l572EutWDMTacJyiLY2Xpl7oLBPhhG54PkYpXbSEvJ5Am NTf5b/F3FQlNPYpx0NwKup9HPbL06E9OxDLLdRteWhkFNj3LL01038r6BwJ4498lK6T3 rLZg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linuxfoundation.org header.s=korg header.b=OIpDnjHh; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linuxfoundation.org Return-Path: Received: from lindbergh.monkeyblade.net (lindbergh.monkeyblade.net. [2620:137:e000::1:18]) by mx.google.com with ESMTPS id z28-20020aa79e5c000000b004fa3a8e007fsi24640623pfq.310.2022.06.07.21.29.24 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 07 Jun 2022 21:29:24 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:18 as permitted sender) client-ip=2620:137:e000::1:18; Authentication-Results: mx.google.com; dkim=pass header.i=@linuxfoundation.org header.s=korg header.b=OIpDnjHh; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linuxfoundation.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by lindbergh.monkeyblade.net (Postfix) with ESMTP id 60D3439A3EE; Tue, 7 Jun 2022 20:58:17 -0700 (PDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1378513AbiFGUwN (ORCPT + 99 others); Tue, 7 Jun 2022 16:52:13 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:50090 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1358581AbiFGTwo (ORCPT ); Tue, 7 Jun 2022 15:52:44 -0400 Received: from dfw.source.kernel.org (dfw.source.kernel.org [IPv6:2604:1380:4641:c500::1]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 00FA6643B; Tue, 7 Jun 2022 11:21:14 -0700 (PDT) Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by dfw.source.kernel.org (Postfix) with ESMTPS id 9273D60C1C; Tue, 7 Jun 2022 18:21:14 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 9F211C385A2; Tue, 7 Jun 2022 18:21:13 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=linuxfoundation.org; s=korg; t=1654626074; bh=a4qFuWEqZC0lHRCkY7Blx87Le22rwe0ztnrHoEFNJ4o=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=OIpDnjHhSrTrPTm5HQWbvdk5Bdhv2anTcWaEtGIN5IJ213UF+sRlnQOYEN7zWYw+J YyoNieIn/recqTvGrp5+i+mbAiL3PpgnHcTLH3JCzL9XFhgEy+B1CQJWBNTRpVopeg 5uOslRblivTHUtkUMtewuGJ+GTujj6VPjjiB8IpU= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Nicholas Piggin , Fabiano Rosas , Michael Ellerman , Sasha Levin Subject: [PATCH 5.17 211/772] KVM: PPC: Book3S HV Nested: L2 LPCR should inherit L1 LPES setting Date: Tue, 7 Jun 2022 18:56:43 +0200 Message-Id: <20220607164955.250649005@linuxfoundation.org> X-Mailer: git-send-email 2.36.1 In-Reply-To: <20220607164948.980838585@linuxfoundation.org> References: <20220607164948.980838585@linuxfoundation.org> User-Agent: quilt/0.66 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Spam-Status: No, score=-3.1 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS, MAILING_LIST_MULTI,RDNS_NONE,SPF_HELO_NONE,T_SCC_BODY_TEXT_LINE autolearn=unavailable autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Nicholas Piggin [ Upstream commit 2852ebfa10afdcefff35ec72c8da97141df9845c ] The L1 should not be able to adjust LPES mode for the L2. Setting LPES if the L0 needs it clear would cause external interrupts to be sent to L2 and missed by the L0. Clearing LPES when it may be set, as typically happens with XIVE enabled could cause a performance issue despite having no native XIVE support in the guest, because it will cause mediated interrupts for the L2 to be taken in HV mode, which then have to be injected. Signed-off-by: Nicholas Piggin Reviewed-by: Fabiano Rosas Signed-off-by: Michael Ellerman Link: https://lore.kernel.org/r/20220303053315.1056880-7-npiggin@gmail.com Signed-off-by: Sasha Levin --- arch/powerpc/kvm/book3s_hv.c | 4 ++++ arch/powerpc/kvm/book3s_hv_nested.c | 3 +-- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/arch/powerpc/kvm/book3s_hv.c b/arch/powerpc/kvm/book3s_hv.c index 316f61a4cb59..0da8c0df768d 100644 --- a/arch/powerpc/kvm/book3s_hv.c +++ b/arch/powerpc/kvm/book3s_hv.c @@ -5289,6 +5289,10 @@ static int kvmppc_core_init_vm_hv(struct kvm *kvm) kvm->arch.host_lpcr = lpcr = mfspr(SPRN_LPCR); lpcr &= LPCR_PECE | LPCR_LPES; } else { + /* + * The L2 LPES mode will be set by the L0 according to whether + * or not it needs to take external interrupts in HV mode. + */ lpcr = 0; } lpcr |= (4UL << LPCR_DPFD_SH) | LPCR_HDICE | diff --git a/arch/powerpc/kvm/book3s_hv_nested.c b/arch/powerpc/kvm/book3s_hv_nested.c index 9d373f8963ee..58e05a9122ac 100644 --- a/arch/powerpc/kvm/book3s_hv_nested.c +++ b/arch/powerpc/kvm/book3s_hv_nested.c @@ -261,8 +261,7 @@ static void load_l2_hv_regs(struct kvm_vcpu *vcpu, /* * Don't let L1 change LPCR bits for the L2 except these: */ - mask = LPCR_DPFD | LPCR_ILE | LPCR_TC | LPCR_AIL | LPCR_LD | - LPCR_LPES | LPCR_MER; + mask = LPCR_DPFD | LPCR_ILE | LPCR_TC | LPCR_AIL | LPCR_LD | LPCR_MER; /* * Additional filtering is required depending on hardware -- 2.35.1