Message ID | 20231003062458.23552-27-xin3.li@intel.com |
---|---|
State | New |
Headers |
Return-Path: <linux-kernel-owner@vger.kernel.org> Delivered-To: ouuuleilei@gmail.com Received: by 2002:a05:612c:2a8e:b0:403:3b70:6f57 with SMTP id in14csp1899218vqb; Mon, 2 Oct 2023 23:56:55 -0700 (PDT) X-Google-Smtp-Source: AGHT+IHNBnT2KOzlxyIWQLBKKv60K5ZEXT6JCqXvONWDaqZYPWDVo4qVbQLkB6Imsvp5Ps+skiNf X-Received: by 2002:a17:90a:e48:b0:274:a241:a7a8 with SMTP id p8-20020a17090a0e4800b00274a241a7a8mr2919452pja.0.1696316215234; Mon, 02 Oct 2023 23:56:55 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1696316215; cv=none; d=google.com; s=arc-20160816; b=PThdDLTuIQwq0thhNgz3f3le13PO1QFBkZ4gS+bv/z0M5pa9NKUOow4pI3WWnuwaBN Y2sKXTXsoE/15iQ94tkp1bpv33YLja5PfFoF5+KYP/LxpnddLS/gQkxIddEZOgEQbdbl lfTlCCTPUy7FL/HwigJcSo1SlP4U3m2p8sA78mqLRhxg+NDgUJOoX9xX8xsE8TXp1T8k kve/nIxgf8p8wcam9tTZtrT4gabkAZ46/JYBsrVtPo7yer/OYVHGemmXNmPdtV61hTcY btuEMRtWmg3zR/C305k9zprYXgvUxqGN4111cI4Zbcz89Em7mC5ScoR2ZyVHaChFmQdz qP9g== 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 :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=r+yFV6fJFMjNXXwXe0MNwfnCD/5sVZQF9hrAHJEKg50=; fh=Tb1p8S3iOxe/kX/WSNC3xEJzSVgGJ5DaxSrKb+pzH+4=; b=Vo8llybgH8DlUaSDgSc45wvna4Cn2OGWCB5QGHqoL3VcE0l3OvQpEaZBV04Dtui5nG tR7wdboHfXq1ib46LrqlDMEJCYqO9oxitXSpofZy0SwaDexKZDSCbm5J+xG4whBcbiqS RzLqRifeOudU72Vg/dH2TPiNpksQRzb3DNmlkY2rb3tbPuKRGHNDxtVgGATR5D29tR3p 6yG4LA46HBEZPjpCIL/nj5Fa8u1D8h+N7lMaYzZpro5HUHQSqyPvsR5iQwwvqMir61Dv k0PTm4UtrRkVBxTpnyixTUXUN7ueTENil3diUoEGEyCe4itFPS1jtKd8KEYHV4kyC/bs kHYw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@intel.com header.s=Intel header.b=YabQmiE2; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:7 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=intel.com Received: from snail.vger.email (snail.vger.email. [2620:137:e000::3:7]) by mx.google.com with ESMTPS id i3-20020a17090acf8300b002773af24826si9554046pju.123.2023.10.02.23.56.54 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 02 Oct 2023 23:56:55 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:7 as permitted sender) client-ip=2620:137:e000::3:7; Authentication-Results: mx.google.com; dkim=pass header.i=@intel.com header.s=Intel header.b=YabQmiE2; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:7 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=intel.com Received: from out1.vger.email (depot.vger.email [IPv6:2620:137:e000::3:0]) by snail.vger.email (Postfix) with ESMTP id 986128040EFA; Mon, 2 Oct 2023 23:56:54 -0700 (PDT) X-Virus-Status: Clean X-Virus-Scanned: clamav-milter 0.103.10 at snail.vger.email Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S239481AbjJCG4k (ORCPT <rfc822;pusanteemu@gmail.com> + 18 others); Tue, 3 Oct 2023 02:56:40 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:57034 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S239464AbjJCG40 (ORCPT <rfc822;linux-kernel@vger.kernel.org>); Tue, 3 Oct 2023 02:56:26 -0400 Received: from mgamail.intel.com (mgamail.intel.com [134.134.136.126]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 9DCF21B2; Mon, 2 Oct 2023 23:55:28 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1696316129; x=1727852129; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=FcZc1QeKj2isPTwOBVaGNTy+si5WeOaciLFU4yv7EQo=; b=YabQmiE2rUx4dErSR37M2EqgFHIHXiG0Ka0awdSpRllK5SHyst4X/ti6 H5w7T0rGchpemXK3ghfDnpqkC364Jcb/62rEpV0c8Qn7O2I2+InHUarSe JwcT3UJpFWUf9BPTip1QdrjfRDE7dcTi4V3W5WBDeP8SylO/k6Dm0Pwyi ldBIyZdbNfIWDhLZq3Z/8QaS6bN+2gfUdiMJbxlHSZmGhV+I1e0FeyzHM Uenc3iNyS/5EZ/QB8xVlaPWrYIWb5wdO09lyY73WvBWo0fwn+UMnXkU4m rsNBGqzpI3MRSIXskDnvlpnIBGV8NwJ1tDhk2Uo7hgUW3wdHTmMVIW1LS A==; X-IronPort-AV: E=McAfee;i="6600,9927,10851"; a="367858229" X-IronPort-AV: E=Sophos;i="6.03,196,1694761200"; d="scan'208";a="367858229" Received: from fmsmga005.fm.intel.com ([10.253.24.32]) by orsmga106.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 02 Oct 2023 23:54:48 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6600,9927,10851"; a="1081900982" X-IronPort-AV: E=Sophos;i="6.03,196,1694761200"; d="scan'208";a="1081900982" Received: from unknown (HELO fred..) ([172.25.112.68]) by fmsmga005.fm.intel.com with ESMTP; 02 Oct 2023 23:54:47 -0700 From: Xin Li <xin3.li@intel.com> To: linux-doc@vger.kernel.org, linux-kernel@vger.kernel.org, linux-edac@vger.kernel.org, linux-hyperv@vger.kernel.org, kvm@vger.kernel.org, xen-devel@lists.xenproject.org Cc: tglx@linutronix.de, mingo@redhat.com, bp@alien8.de, dave.hansen@linux.intel.com, x86@kernel.org, hpa@zytor.com, luto@kernel.org, pbonzini@redhat.com, seanjc@google.com, peterz@infradead.org, jgross@suse.com, ravi.v.shankar@intel.com, mhiramat@kernel.org, andrew.cooper3@citrix.com, jiangshanlai@gmail.com, nik.borisov@suse.com Subject: [PATCH v12 26/37] x86/fred: Add a NMI entry stub for FRED Date: Mon, 2 Oct 2023 23:24:47 -0700 Message-Id: <20231003062458.23552-27-xin3.li@intel.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20231003062458.23552-1-xin3.li@intel.com> References: <20231003062458.23552-1-xin3.li@intel.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Spam-Status: No, score=-2.1 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF, RCVD_IN_DNSWL_BLOCKED,SPF_HELO_NONE,SPF_NONE 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: <linux-kernel.vger.kernel.org> X-Mailing-List: linux-kernel@vger.kernel.org X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.6.4 (snail.vger.email [0.0.0.0]); Mon, 02 Oct 2023 23:56:54 -0700 (PDT) X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-THRID: 1778716471695323553 X-GMAIL-MSGID: 1778716471695323553 |
Series |
x86: enable FRED for x86-64
|
|
Commit Message
Li, Xin3
Oct. 3, 2023, 6:24 a.m. UTC
From: "H. Peter Anvin (Intel)" <hpa@zytor.com> On a FRED system, NMIs nest both with themselves and faults, transient information is saved into the stack frame, and NMI unblocking only happens when the stack frame indicates that so should happen. Thus, the NMI entry stub for FRED is really quite small... Signed-off-by: H. Peter Anvin (Intel) <hpa@zytor.com> Tested-by: Shan Kang <shan.kang@intel.com> Signed-off-by: Xin Li <xin3.li@intel.com> --- arch/x86/kernel/nmi.c | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+)
diff --git a/arch/x86/kernel/nmi.c b/arch/x86/kernel/nmi.c index a0c551846b35..58843fdf5cd0 100644 --- a/arch/x86/kernel/nmi.c +++ b/arch/x86/kernel/nmi.c @@ -34,6 +34,7 @@ #include <asm/cache.h> #include <asm/nospec-branch.h> #include <asm/sev.h> +#include <asm/fred.h> #define CREATE_TRACE_POINTS #include <trace/events/nmi.h> @@ -643,6 +644,33 @@ void nmi_backtrace_stall_check(const struct cpumask *btp) #endif +#ifdef CONFIG_X86_FRED +/* + * With FRED, CR2/DR6 is pushed to #PF/#DB stack frame during FRED + * event delivery, i.e., there is no problem of transient states. + * And NMI unblocking only happens when the stack frame indicates + * that so should happen. + * + * Thus, the NMI entry stub for FRED is really straightforward and + * as simple as most exception handlers. As such, #DB is allowed + * during NMI handling. + */ +DEFINE_FREDENTRY_NMI(exc_nmi) +{ + irqentry_state_t irq_state; + + if (IS_ENABLED(CONFIG_SMP) && arch_cpu_is_offline(smp_processor_id())) + return; + + irq_state = irqentry_nmi_enter(regs); + + inc_irq_stat(__nmi_count); + default_do_nmi(regs); + + irqentry_nmi_exit(regs, irq_state); +} +#endif + void stop_nmi(void) { ignore_nmis++;