From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: 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 519DCC7EE43 for ; Fri, 9 Jun 2023 13:23:17 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id B940D6B0074; Fri, 9 Jun 2023 09:23:16 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id B435E8E0002; Fri, 9 Jun 2023 09:23:16 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id A0A066B0078; Fri, 9 Jun 2023 09:23:16 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0013.hostedemail.com [216.40.44.13]) by kanga.kvack.org (Postfix) with ESMTP id 8D0616B0074 for ; Fri, 9 Jun 2023 09:23:16 -0400 (EDT) Received: from smtpin06.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay04.hostedemail.com (Postfix) with ESMTP id 5B1E91A0190 for ; Fri, 9 Jun 2023 13:23:16 +0000 (UTC) X-FDA: 80883275592.06.9F97B31 Received: from mga02.intel.com (mga02.intel.com [134.134.136.20]) by imf17.hostedemail.com (Postfix) with ESMTP id 195A64000F for ; Fri, 9 Jun 2023 13:23:11 +0000 (UTC) Authentication-Results: imf17.hostedemail.com; dkim=pass header.d=intel.com header.s=Intel header.b=l80hObno; spf=none (imf17.hostedemail.com: domain of kirill.shutemov@linux.intel.com has no SPF policy when checking 134.134.136.20) smtp.mailfrom=kirill.shutemov@linux.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=1686316992; 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-type:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=u6uaU8nRWTVv7GPaQ+VmQMisvWB0Ont2top7zyngUNg=; b=btCcIQ0MKKxxuz1uz8PBvyo0ZoJSb2NyJ8TzIJwk3anVRtVcPQHEyEB/WvZKHBxAXoWl2Q W4OPgxYyLC6CdGVkp5rDGCN1bTrYy8ViwZXnhBTKDledDVHE8EbP9/ynMUkxyq6F81wJOe VmRh51GYzGL4b64DmVeXRLXSXWghfFM= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1686316992; a=rsa-sha256; cv=none; b=1BMMHyj/QGq25jVKhLynoptx9YKpTHX3aLOHlDMfqZydrqowc0Q6OidkUpnvk0pSeiYamj V5JB5B+NjHaQqGLire5fPzOlSj/Gv9fFmLFvKdzVfC47BSvaaxUeQc0DSOPl6df37PM+r3 gXrOiQwf/nzaV+HxXiGS+i1o2RRG+AU= ARC-Authentication-Results: i=1; imf17.hostedemail.com; dkim=pass header.d=intel.com header.s=Intel header.b=l80hObno; spf=none (imf17.hostedemail.com: domain of kirill.shutemov@linux.intel.com has no SPF policy when checking 134.134.136.20) smtp.mailfrom=kirill.shutemov@linux.intel.com; dmarc=pass (policy=none) header.from=intel.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1686316992; x=1717852992; h=date:from:to:cc:subject:message-id:references: mime-version:in-reply-to; bh=qGd++aEZqtFd2tkmlsRxaFyNXm7hhQJWK4X3LLyYpVM=; b=l80hObnojCWnLnnxGMhm00BNYDfQpAGN5vKthu8emGBYQfBVo+/C/B2y QkdEigbuo5btmVLOmRUu6EBEKbs64i87AUefTjG0u0M476Pzy6QE4o+M8 imdOKQ5fysDnxB1kfgoNixS0KzqiBDulqdjm4+D9rJ0VF0xWPWaORCgNF Lwd5p0/0MrSf+XwGAYmNpJ0vERCqE6i8r+KMOGFqC4+Va5zbYj8PJY0s4 xER7ENFweQHgM6hJDly20fqmlswBc5PWbPs6zfiiS+PL3poMmj/SXTn36 9jvc3l8Bg3raAMT+Digta84nBl6m3gPWNXMqCfg+9CP0T6a4zzndJbY6l A==; X-IronPort-AV: E=McAfee;i="6600,9927,10736"; a="347242404" X-IronPort-AV: E=Sophos;i="6.00,229,1681196400"; d="scan'208";a="347242404" Received: from fmsmga001.fm.intel.com ([10.253.24.23]) by orsmga101.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 09 Jun 2023 06:23:09 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6600,9927,10736"; a="854738291" X-IronPort-AV: E=Sophos;i="6.00,229,1681196400"; d="scan'208";a="854738291" Received: from mbahx-mobl1.ger.corp.intel.com (HELO box.shutemov.name) ([10.249.43.216]) by fmsmga001-auth.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 09 Jun 2023 06:23:04 -0700 Received: by box.shutemov.name (Postfix, from userid 1000) id D0428109B7B; Fri, 9 Jun 2023 16:23:01 +0300 (+03) Date: Fri, 9 Jun 2023 16:23:01 +0300 From: kirill.shutemov@linux.intel.com To: Kai Huang Cc: linux-kernel@vger.kernel.org, kvm@vger.kernel.org, linux-mm@kvack.org, dave.hansen@intel.com, tony.luck@intel.com, peterz@infradead.org, tglx@linutronix.de, seanjc@google.com, pbonzini@redhat.com, david@redhat.com, dan.j.williams@intel.com, rafael.j.wysocki@intel.com, ying.huang@intel.com, reinette.chatre@intel.com, len.brown@intel.com, 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 Subject: Re: [PATCH v11 18/20] x86: Handle TDX erratum to reset TDX private memory during kexec() and reboot Message-ID: <20230609132301.uvvp27yr5kpenl6f@box.shutemov.name> References: <5aa7506d4fedbf625e3fe8ceeb88af3be1ce97ea.1685887183.git.kai.huang@intel.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <5aa7506d4fedbf625e3fe8ceeb88af3be1ce97ea.1685887183.git.kai.huang@intel.com> X-Rspamd-Queue-Id: 195A64000F X-Rspam-User: X-Stat-Signature: 8r63cibp5t4aswbimf4qfu6cissc3ogi X-Rspamd-Server: rspam03 X-HE-Tag: 1686316991-227639 X-HE-Meta: U2FsdGVkX19syqe9NAf0dcqtkI/ZvKZVIBeqGHqyM8AW8pQWRCuqkwJ9WULLx/E+u4C9SjevnfBpXHVLxj2YojHyUXZ4BV0geB7GUG5OwXyKjqVj1SoaqYO5vtV9E8QSz1F0B2gaeDzXI8erC6esgju63J3zrDlB7we1505cwWJCI+QEE4yvt2cv4LoFWPsR4+gfkFNKJ6eBWOb3c4WGuNxnRfTHYuIviBNREj6/S8NkcQEAYQ7nRypbJSoT7bSoRDWJoVuld7EFh5HPNe4BxJRL4iAAOQh3lvoC0Tsl3QOQalaaYzsILLUDxynPj7Ld/gkoxFowjkDNvksjXkEkgO+uVo0N5PaGEePs13Y5Jtt664BDZ7yJpfq4YnRWXyjsDsCwYaJkFGz2wXd00rZqB6cDNnGlVUpCaMYZ8B1o2peFp9A9ZBNe9sHNmunJ9QXNbKjpH8kdIhxjKzWrg/Xc66/ImHpGm6fSerJHhb6M1KtS8KDha4quXscKZ0xK3e21QZmaNXqSO9hyrfv7IueCzrfGL5jy2CttpjGzzlwqHYSRLMtgaOJwcFvdVemiebUOSg9qwBouasMhW3ncxVzFF7aWVfmyoF6ji77iYh0n/Z2jTGrzbAe67hELD7mGBcqDHb4HFSSQ94wDbfZKSM2CbxV90NQARZNH+lwFCyMRExxDrDvxGx/nQUY/dGCST7e40E1eKuxSjQvImLZ4yfE1WkAtmBKEu03eePQv4SkorZwFd5YX8ysV0i96RH9nJ2LunhAo6+ErFNs1UF2ucMlLuBoL5VwbzbIkDeC75Jifn9evINLQSIpldyelRGUWHrqXseKIuMzdtIf4ipm57G7qbcqXlzd2CHuNEyOllgvpYtiWdNW10IBrRuUTcQnekOc8yQKlJJru4aQpjpM7DBTJr8IaZh0K2hk3CpD64Ud/3/XcCzrYZRIM0D0OZJsWJmgIL/IS8sXoD5BKqYmKnb3 H1lnDc6M kLsctVLlGW8WXlMUHj5l9cAVEC9qc4yibTqUMs6hL7zbhqHM0ZuHigqYOfpwfvQI5SndYZi6L4CmTVhtC0n4mTQXu9CjlsPPaHU2ZEpNW8HXPf8A= 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: On Mon, Jun 05, 2023 at 02:27:31AM +1200, Kai Huang wrote: > diff --git a/arch/x86/virt/vmx/tdx/tdx.c b/arch/x86/virt/vmx/tdx/tdx.c > index 8ff07256a515..0aa413b712e8 100644 > --- a/arch/x86/virt/vmx/tdx/tdx.c > +++ b/arch/x86/virt/vmx/tdx/tdx.c > @@ -587,6 +587,14 @@ static int tdmr_set_up_pamt(struct tdmr_info *tdmr, > tdmr_pamt_base += pamt_size[pgsz]; > } > > + /* > + * tdx_memory_shutdown() also reads TDMR's PAMT during > + * kexec() or reboot, which could happen at anytime, even > + * during this particular code. Make sure pamt_4k_base > + * is firstly set otherwise tdx_memory_shutdown() may > + * get an invalid PAMT base when it sees a valid number > + * of PAMT pages. > + */ Hmm? What prevents compiler from messing this up. It can reorder as it wishes, no? Maybe add a proper locking? Anything that prevent preemption would do, right? > tdmr->pamt_4k_base = pamt_base[TDX_PS_4K]; > tdmr->pamt_4k_size = pamt_size[TDX_PS_4K]; > tdmr->pamt_2m_base = pamt_base[TDX_PS_2M]; -- Kiryl Shutsemau / Kirill A. Shutemov