Received: by 2002:a05:7412:2a8c:b0:e2:908c:2ebd with SMTP id u12csp1627260rdh; Mon, 25 Sep 2023 20:44:13 -0700 (PDT) X-Google-Smtp-Source: AGHT+IGpvd+vDo6FmO304PrvDrDwsys5zUrMXS6iWYG5ZI64Pm6Q8pS4t9tSR1EFI06JoCWtSn6V X-Received: by 2002:a05:620a:2546:b0:76d:5d0a:bbae with SMTP id s6-20020a05620a254600b0076d5d0abbaemr9704625qko.56.1695699852693; Mon, 25 Sep 2023 20:44:12 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1695699852; cv=none; d=google.com; s=arc-20160816; b=UUzPdGf89kYyb8hnnc5l47t/aqQcwXB3DGRJFlQthoBAL5dljvsGv+zrh+sXMgvPdN QsVNEoGT1Oqy+kfXmm5I8M0SpeD5ZZ5qv41E22Z4Cau0mE+S8ImBKpBdkTDalQMt4s0R p6MO2YmJyghSRP/FkO0cXWkgGrNlSP+KJGrslA37QmlOlI2tw6FsYrCRLNsNL4a6PrPy 1M8JtGeRIooGFu+IVJycb4xPotNoE5CnrR3J3nc2Eod2Ew0edY6LlBIoDd3YCe2RHp/z TnVVKfB7cmnP5wt6ytxsqRRPoMzWrwpNsdm64tkM/+0gryrH2AyQU/GAN3E1aenpzx8Y ofdw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:cc:to:from:subject:message-id:references :mime-version:in-reply-to:date:reply-to:dkim-signature; bh=/SyWpsTveCt8sOgUzwdLFOIMv03DArAYAXRCSsRfzC8=; fh=K+J2qYD/91bJS7zqTA6goMUf/yDX26DDWcmH+Ph084I=; b=PLNBbpKb7pEwf54fFd16kxcYcV2FNWJ1oD2kUlpML9GQeRt4IZ/Jwi27udAa5YAhpz gqo9BZCA8ENGgeyQT7kXk58dxjYbMbbydSIDOvapNygYPSj1so4zwNMmx6WJMAwW5eY0 spnC9arpai0F5qsH6AtvANeODEncFuE2pMEo0mzFnXAagrVZgBnfRr4nYkVp1lUOv0mA n9QEsF8T3jIgXEQR8xu/a8RIzr5ZnrsfpvgZPEWvPqEkN7ZD8BlG2dHNZJvwkq7mTHfL KIa+qYTJl8Rc4OPpbfeTPwUJ8x8rmSMDkwuXqTgVuDpppYuaBq4VdlmY3qaUZ7tQuskC JzUQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@google.com header.s=20230601 header.b=fclNOGWq; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.34 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=google.com Return-Path: Received: from howler.vger.email (howler.vger.email. [23.128.96.34]) by mx.google.com with ESMTPS id 144-20020a630096000000b005780b4905f1si11709023pga.460.2023.09.25.20.44.12 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 25 Sep 2023 20:44:12 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.34 as permitted sender) client-ip=23.128.96.34; Authentication-Results: mx.google.com; dkim=pass header.i=@google.com header.s=20230601 header.b=fclNOGWq; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.34 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=google.com Received: from out1.vger.email (depot.vger.email [IPv6:2620:137:e000::3:0]) by howler.vger.email (Postfix) with ESMTP id D738D8334895; Mon, 25 Sep 2023 10:35:14 -0700 (PDT) X-Virus-Status: Clean X-Virus-Scanned: clamav-milter 0.103.10 at howler.vger.email Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S233097AbjIYRfK (ORCPT + 99 others); Mon, 25 Sep 2023 13:35:10 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:60782 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S233098AbjIYRfG (ORCPT ); Mon, 25 Sep 2023 13:35:06 -0400 Received: from mail-pl1-x64a.google.com (mail-pl1-x64a.google.com [IPv6:2607:f8b0:4864:20::64a]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 718B910E for ; Mon, 25 Sep 2023 10:34:59 -0700 (PDT) Received: by mail-pl1-x64a.google.com with SMTP id d9443c01a7336-1c44a2cbea0so82802545ad.0 for ; Mon, 25 Sep 2023 10:34:59 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1695663299; x=1696268099; darn=vger.kernel.org; h=cc:to:from:subject:message-id:references:mime-version:in-reply-to :date:reply-to:from:to:cc:subject:date:message-id:reply-to; bh=/SyWpsTveCt8sOgUzwdLFOIMv03DArAYAXRCSsRfzC8=; b=fclNOGWqTOH/DVBvx0pK874VLTc62EHr9aEgkwpmpf+gwX+k1Ue8BnCnpnDAzdf519 7wBCIk5gD/QgQbfdsMyHQG16DvEGagsQjLlIhamu/YelP8dmrUnVDDjn1nQ52poL0uj9 mxSun8vztCj2KHvlK9+er8EmMqIDmMHlsJEK0p1KpLhi/NUjDqxFPLFIdFVUSDGEXkS2 yyFuPNtNT+/8Co1juZKqHz3cPNbtm5kgaj5uaKQuh8J5PLjKiAiUorIhsj/Cn5EFf8pG tDY6HGInO2Gok+nrILJJFA9mPlGST54/Yr/7Bqb5d/SnwV4A5QbO4I7YarMr4akmob0q PAsQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1695663299; x=1696268099; h=cc:to:from:subject:message-id:references:mime-version:in-reply-to :date:reply-to:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=/SyWpsTveCt8sOgUzwdLFOIMv03DArAYAXRCSsRfzC8=; b=o+lguolUAxHcYyp3vkGATR/l8U6jW2cAajsYvbEp62hoRSSKh5UiBn6AUQdHeZN9Ls LZ51v5vN8R+9jMR+j4ZMk06dljd+GAE0RvIwmIve4LgGhUKt/ZPmYyq1ZWzYB+UB90Bu 8OgEO5/UaSjSGxSPLzRiJDG1F8C4G/NT65h4WW62XsXxUlp2+0cA00BDC6t4zpeoSQ9H w9TIQ3X1XOyTE0si+ZsID71MgFh+2cCs157rvyGvBu+CC6laECubapdOZVxG2F0RlIyc Fx/qXWih/gFFVRvPgOAbtmCPlkjHSpBsVz/JSCDvWdceqT6X0gY1Z3zt84jMZXxBjpPx jWMA== X-Gm-Message-State: AOJu0Yy0Qm1V7BDO+JWCJAdKDQUS3syqfJa/qfeRZR60ypzgsqYd+u2O CaOq5nXmXpHaMMz3ZjIlYs168nuovERI X-Received: from mizhang-super.c.googlers.com ([34.105.13.176]) (user=mizhang job=sendgmr) by 2002:a17:902:cf52:b0:1c4:5e07:6d87 with SMTP id e18-20020a170902cf5200b001c45e076d87mr3367plg.4.1695663298881; Mon, 25 Sep 2023 10:34:58 -0700 (PDT) Reply-To: Mingwei Zhang Date: Mon, 25 Sep 2023 17:34:47 +0000 In-Reply-To: <20230925173448.3518223-1-mizhang@google.com> Mime-Version: 1.0 References: <20230925173448.3518223-1-mizhang@google.com> X-Mailer: git-send-email 2.42.0.515.g380fc7ccd1-goog Message-ID: <20230925173448.3518223-3-mizhang@google.com> Subject: [PATCH 2/2] KVM: x86: Mask LVTPC when handling a PMI From: Mingwei Zhang To: Sean Christopherson , Paolo Bonzini Cc: "H. Peter Anvin" , kvm@vger.kernel.org, linux-kernel@vger.kernel.org, Jim Mattson , Mingwei Zhang , Dapeng Mi , Like Xu , Roman Kagan , Kan Liang , Dapeng1 Mi Content-Type: text/plain; charset="UTF-8" X-Spam-Status: No, score=-9.6 required=5.0 tests=BAYES_00,DKIMWL_WL_MED, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_NONE, SPF_HELO_NONE,SPF_PASS,USER_IN_DEF_DKIM_WL autolearn=ham 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 X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.6.4 (howler.vger.email [0.0.0.0]); Mon, 25 Sep 2023 10:35:15 -0700 (PDT) From: Jim Mattson Per the SDM, "When the local APIC handles a performance-monitoring counters interrupt, it automatically sets the mask flag in the LVT performance counter register." Add this behavior to KVM's local APIC emulation, to reduce the incidence of "dazed and confused" spurious NMI warnings in Linux guests (at least, those that use a PMI handler with "late_ack"). Fixes: 23930f9521c9 ("KVM: x86: Enable NMI Watchdog via in-kernel PIT source") Signed-off-by: Jim Mattson Tested-by: Mingwei Zhang --- arch/x86/kvm/lapic.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/arch/x86/kvm/lapic.c b/arch/x86/kvm/lapic.c index 113ca9661ab2..1f3d56a1f45f 100644 --- a/arch/x86/kvm/lapic.c +++ b/arch/x86/kvm/lapic.c @@ -2729,13 +2729,17 @@ int kvm_apic_local_deliver(struct kvm_lapic *apic, int lvt_type) { u32 reg = kvm_lapic_get_reg(apic, lvt_type); int vector, mode, trig_mode; + int r; if (kvm_apic_hw_enabled(apic) && !(reg & APIC_LVT_MASKED)) { vector = reg & APIC_VECTOR_MASK; mode = reg & APIC_MODE_MASK; trig_mode = reg & APIC_LVT_LEVEL_TRIGGER; - return __apic_accept_irq(apic, mode, vector, 1, trig_mode, - NULL); + + r = __apic_accept_irq(apic, mode, vector, 1, trig_mode, NULL); + if (r && lvt_type == APIC_LVTPC) + kvm_lapic_set_reg(apic, lvt_type, reg | APIC_LVT_MASKED); + return r; } return 0; } -- 2.42.0.515.g380fc7ccd1-goog