Message ID | a8a097dfa03704b95f0169b8e84f385a8dd3dc30.1668988357.git.kai.huang@intel.com (mailing list archive) |
---|---|
State | New |
Headers | show
Return-Path: <owner-linux-mm@kvack.org> X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by smtp.lore.kernel.org (Postfix) with ESMTP id 7AD79C433FE for <linux-mm@archiver.kernel.org>; Mon, 21 Nov 2022 00:28:19 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 16D708E0003; Sun, 20 Nov 2022 19:28:19 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 11E0C8E0001; Sun, 20 Nov 2022 19:28:19 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id F27038E0003; Sun, 20 Nov 2022 19:28:18 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0015.hostedemail.com [216.40.44.15]) by kanga.kvack.org (Postfix) with ESMTP id E37198E0001 for <linux-mm@kvack.org>; Sun, 20 Nov 2022 19:28:18 -0500 (EST) Received: from smtpin02.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay10.hostedemail.com (Postfix) with ESMTP id BB7ACC06EA for <linux-mm@kvack.org>; Mon, 21 Nov 2022 00:28:18 +0000 (UTC) X-FDA: 80155562676.02.853BE0E Received: from mga18.intel.com (mga18.intel.com [134.134.136.126]) by imf22.hostedemail.com (Postfix) with ESMTP id 26114C0008 for <linux-mm@kvack.org>; Mon, 21 Nov 2022 00:28:17 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1668990498; x=1700526498; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=B4X5vcXsxt6uAK36/XCY9Qp+zNxFIBT0eQmTkgHAVxg=; b=WCzjLYoTxFwDyTk6Yd/9PolPqZgzMfIo2sI83f4uWxqHPMX6Wo8ks36p QromQ+ZT/rghN8/OoLRfH6fRigxCZ09V2NWWCl4j5j+htPK7LD1n3ijxh 1VOeYDBWd9vUcRRFMIQW1fpeiwxGT0rfoRZirW0wrAVA2l8L48nhA8lCt 9jYqtXrYM547StPsy5WBjX3Bbp7HiFzWeU3GR6swCbBTHpGIVG4LfnY7g sg/pP+gWoTLjTvqQdtoa7AAcey3SptLA/kVUgxU2ZXn1zOEAl4PbDUqlH BAurcnJPaqd5vg5s6uuOhU1txVJVBT0rVoznap1sxQh1IIjYccbnQSJFY w==; X-IronPort-AV: E=McAfee;i="6500,9779,10537"; a="296803752" X-IronPort-AV: E=Sophos;i="5.96,180,1665471600"; d="scan'208";a="296803752" Received: from fmsmga003.fm.intel.com ([10.253.24.29]) by orsmga106.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 20 Nov 2022 16:28:17 -0800 X-IronPort-AV: E=McAfee;i="6500,9779,10537"; a="729825557" X-IronPort-AV: E=Sophos;i="5.96,180,1665471600"; d="scan'208";a="729825557" Received: from tomnavar-mobl.amr.corp.intel.com (HELO khuang2-desk.gar.corp.intel.com) ([10.209.176.15]) by fmsmga003-auth.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 20 Nov 2022 16:28:13 -0800 From: Kai Huang <kai.huang@intel.com> To: linux-kernel@vger.kernel.org, kvm@vger.kernel.org Cc: linux-mm@kvack.org, seanjc@google.com, pbonzini@redhat.com, dave.hansen@intel.com, dan.j.williams@intel.com, rafael.j.wysocki@intel.com, kirill.shutemov@linux.intel.com, ying.huang@intel.com, reinette.chatre@intel.com, len.brown@intel.com, tony.luck@intel.com, peterz@infradead.org, ak@linux.intel.com, isaku.yamahata@intel.com, chao.gao@intel.com, sathyanarayanan.kuppuswamy@linux.intel.com, bagasdotme@gmail.com, sagis@google.com, imammedo@redhat.com, kai.huang@intel.com Subject: [PATCH v7 19/20] x86/virt/tdx: Flush cache in kexec() when TDX is enabled Date: Mon, 21 Nov 2022 13:26:41 +1300 Message-Id: <a8a097dfa03704b95f0169b8e84f385a8dd3dc30.1668988357.git.kai.huang@intel.com> X-Mailer: git-send-email 2.38.1 In-Reply-To: <cover.1668988357.git.kai.huang@intel.com> References: <cover.1668988357.git.kai.huang@intel.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1668990498; a=rsa-sha256; cv=none; b=DIIrOrpD4td70SU2AmVRdiblcqMEB/OEAO/I3icyqM89u6UQmZdPmcatSxtYnlYlQ1Gjon 8uyxP18QLzBwQ+h/9zGQcOhqsbeG1KI8Ox+mNGybXI30Cv/7yRWG6rNalRdZp81GClSm9B mJkMM+bq6p9UqY+dYSLQeKy3fk32SnA= ARC-Authentication-Results: i=1; imf22.hostedemail.com; dkim=none ("invalid DKIM record") header.d=intel.com header.s=Intel header.b=WCzjLYoT; spf=pass (imf22.hostedemail.com: domain of kai.huang@intel.com designates 134.134.136.126 as permitted sender) smtp.mailfrom=kai.huang@intel.com; dmarc=pass (policy=none) header.from=intel.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1668990498; h=from:from:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=0HsaI+F+Q6SMDl5C9timeO1Ls7uwIsud4GJwh7yr45s=; b=sH9LsAGwxieWTUhRadk8sPXRHBXSUOCoLV5Oesdk6tTEBy8R5zfPyU3tKoE6KpuKnlBTCB yJbnd7Vkr1PRBhwV/kqGrFmC63jhW0Jq2Smhr2wEAUYeSkb613pYcbNrADxgqBNVy8aJHJ 8K7ySXi1yy4w6LHrkgODM8AdoANmstY= X-Rspam-User: X-Stat-Signature: dohy4aozdh78inzrz5jaodsjsfiy4s7r X-Rspamd-Queue-Id: 26114C0008 Authentication-Results: imf22.hostedemail.com; dkim=none ("invalid DKIM record") header.d=intel.com header.s=Intel header.b=WCzjLYoT; spf=pass (imf22.hostedemail.com: domain of kai.huang@intel.com designates 134.134.136.126 as permitted sender) smtp.mailfrom=kai.huang@intel.com; dmarc=pass (policy=none) header.from=intel.com X-Rspamd-Server: rspam07 X-HE-Tag: 1668990497-174395 X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: <linux-mm.kvack.org> |
Series |
TDX host kernel support
|
expand
|
diff --git a/arch/x86/kernel/process.c b/arch/x86/kernel/process.c index c21b7347a26d..0cc84977dc62 100644 --- a/arch/x86/kernel/process.c +++ b/arch/x86/kernel/process.c @@ -765,8 +765,14 @@ void __noreturn stop_this_cpu(void *dummy) * * Test the CPUID bit directly because the machine might've cleared * X86_FEATURE_SME due to cmdline options. + * + * Similar to SME, if the TDX module is ever initialized, the + * cachelines associated with any TDX private KeyID must be flushed + * before transiting to the new kernel. The TDX module is initialized + * on demand, and it takes the mutex to read its status. Just check + * whether TDX is enabled by BIOS instead to flush cache. */ - if (cpuid_eax(0x8000001f) & BIT(0)) + if (cpuid_eax(0x8000001f) & BIT(0) || platform_tdx_enabled()) native_wbinvd(); for (;;) { /*