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 60E47EB64D7 for ; Wed, 28 Jun 2023 12:30:13 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 044A58D0003; Wed, 28 Jun 2023 08:30:13 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id F37B78D0001; Wed, 28 Jun 2023 08:30:12 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id DFF2C8D0003; Wed, 28 Jun 2023 08:30:12 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0012.hostedemail.com [216.40.44.12]) by kanga.kvack.org (Postfix) with ESMTP id CE35E8D0001 for ; Wed, 28 Jun 2023 08:30:12 -0400 (EDT) Received: from smtpin05.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay01.hostedemail.com (Postfix) with ESMTP id 23D601C7C4F for ; Wed, 28 Jun 2023 12:30:12 +0000 (UTC) X-FDA: 80952089064.05.2A80DE3 Received: from mga09.intel.com (mga09.intel.com [134.134.136.24]) by imf15.hostedemail.com (Postfix) with ESMTP id 7F63AA001A for ; Wed, 28 Jun 2023 12:30:09 +0000 (UTC) Authentication-Results: imf15.hostedemail.com; dkim=pass header.d=intel.com header.s=Intel header.b=m9iYqiG7; dmarc=pass (policy=none) header.from=intel.com; spf=none (imf15.hostedemail.com: domain of kirill.shutemov@linux.intel.com has no SPF policy when checking 134.134.136.24) smtp.mailfrom=kirill.shutemov@linux.intel.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1687955409; 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=T68PK/B00rfTRMrkC72ab7DQ6gdYUqTPcN3zzhtG7eg=; b=0RGnz8foYluADhdjhMMnvr2uAeBfXzNV0YJCpm1Sp21vlspu89OG1aVE3wnC3CHCzCbYw8 DypUJ6SeWaX6zv5AAE7xZMnGkRxxrhNF6DFnBkfuza5pszOSwDOChNcd2yGPs61oEPpzSI AYBO4WP40hqScRsYvk2JRpZOs+5uJdo= ARC-Authentication-Results: i=1; imf15.hostedemail.com; dkim=pass header.d=intel.com header.s=Intel header.b=m9iYqiG7; dmarc=pass (policy=none) header.from=intel.com; spf=none (imf15.hostedemail.com: domain of kirill.shutemov@linux.intel.com has no SPF policy when checking 134.134.136.24) smtp.mailfrom=kirill.shutemov@linux.intel.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1687955409; a=rsa-sha256; cv=none; b=v8VXQfiFr5v1TDj+Tgwp3LUZ2HbBH1IJRWPjpOdb9QdKdAWGbnRXLB7to0/PREG7cXda+q H4N9uWidqcA1gD19WYWc61ORppVCB9/6NiHz9ehGB1WcnlFxi3X0a2GWrvTYEYiMTf9ndB OBKx4P3t5sFY8SeeMPgRs59iKabm0tE= DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1687955409; x=1719491409; h=date:from:to:cc:subject:message-id:references: mime-version:in-reply-to; bh=SAzJtHLtNMNNef0gGslBTtW/PqahrrYxc8mh0SENA4Y=; b=m9iYqiG7lmPYSF7C8lFp0jDRA16r11mwAc67pPS9X969WAdwqvB8U3Fp an/iM5Bu1EeLcFqtZ2SjdfVdJxLqNwvbO5jwUe5q4valpnWLzYg6n6tgk ObjEmSd5qPJP6iHEzBnZIB0WA7esVxehnnWN7/1gEH3+GRCpzPN1SyVsc CvhuczbjFKzc2ikcRLzw+Olz/CUPLiAZRy+JepU9UHiVGs9CxtpsBRxf3 qIfEDfoUcrE3ADnZXWBbNLvZvtz8+l+xeUc/YNcSS9al+LMEe5IHXL4+L Rb1ZBJzAWsH9ex8PiO68eDG36pfq5ygS6hnxLyaD3ApFe9mPUsoZGaUrL g==; X-IronPort-AV: E=McAfee;i="6600,9927,10754"; a="364380457" X-IronPort-AV: E=Sophos;i="6.01,165,1684825200"; d="scan'208";a="364380457" Received: from fmsmga007.fm.intel.com ([10.253.24.52]) by orsmga102.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 28 Jun 2023 05:30:07 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6600,9927,10754"; a="720229784" X-IronPort-AV: E=Sophos;i="6.01,165,1684825200"; d="scan'208";a="720229784" Received: from rajritu-mobl2.ger.corp.intel.com (HELO box.shutemov.name) ([10.249.47.187]) by fmsmga007-auth.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 28 Jun 2023 05:30:00 -0700 Received: by box.shutemov.name (Postfix, from userid 1000) id E19531095C8; Wed, 28 Jun 2023 15:29:57 +0300 (+03) Date: Wed, 28 Jun 2023 15:29:57 +0300 From: kirill.shutemov@linux.intel.com To: Kai Huang Cc: linux-kernel@vger.kernel.org, kvm@vger.kernel.org, linux-mm@kvack.org, x86@kernel.org, dave.hansen@intel.com, tony.luck@intel.com, peterz@infradead.org, tglx@linutronix.de, bp@alien8.de, mingo@redhat.com, hpa@zytor.com, seanjc@google.com, pbonzini@redhat.com, david@redhat.com, dan.j.williams@intel.com, rafael.j.wysocki@intel.com, ashok.raj@intel.com, reinette.chatre@intel.com, len.brown@intel.com, ak@linux.intel.com, isaku.yamahata@intel.com, ying.huang@intel.com, chao.gao@intel.com, sathyanarayanan.kuppuswamy@linux.intel.com, nik.borisov@suse.com, bagasdotme@gmail.com, sagis@google.com, imammedo@redhat.com Subject: Re: [PATCH v12 19/22] x86/kexec(): Reset TDX private memory on platforms with TDX erratum Message-ID: <20230628122957.sl7wzenjby3o2xsw@box.shutemov.name> References: <28aece770321e307d58df77eddee2d3fa851d15a.1687784645.git.kai.huang@intel.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <28aece770321e307d58df77eddee2d3fa851d15a.1687784645.git.kai.huang@intel.com> X-Rspamd-Server: rspam09 X-Rspamd-Queue-Id: 7F63AA001A X-Stat-Signature: kauz9mf8dy6gq5khcuskt7jfz5foo97t X-Rspam-User: X-HE-Tag: 1687955409-694739 X-HE-Meta: U2FsdGVkX1/HMwrisZwqDfIHynh0O6jU0YoexPsAm06wW9GQ8ESM6BbbD6QpYhdbYp/BrSjJtY5sbOMrF+EKSuGwuNziceJwxX94zyaRpc81I0ShRRBql4x6GjmyePRnOTEFZQHhVh+KLV5nXmUIKhE2KfP2cqfLr9eWOBQFeWjrN59L4/K0EYMt82CqelUxZNYApzenFG4uqRrHgWjmD6mKC7SJJJQr7Fe/ymPzTciB5MAtN0sN90vOVOnjJineevTHwbiVDoZEdR+8NUZ+dz2/8gNqi9yyASqIEUfmFXM9BRMt/s2riHSY9W2HuWtA9zPhoHWPemel/K3ZLoHiuFMVxGSVX5XGOq7vqogVUpl7bFzYegaZ6MVn71/S74WzJIPA9ncCwmP4iawkj3DlZaEqMvfwe16AV4mWHxg+Hs4aS7OTolhzbZsbUli4eqHUZtbZD84xmAsBS+IOkUjVnNB+WvtN4wp+O8BFsSIdsoJBwIMEUUAE313i8JOBkZ9ntbVtEcRRDBkoFW6cgyUw90p1ap7BtWs076Tqhkw+8ImPQJ8N4NlNvThVDdPdpuzge5HivTciPICKAqTTTd8lWwcW3tpTlYVDk1GS8w67nUQg6FSh7hK/UQPzqhbijM96nM2foZphFEr9akLHAUFsD2CIKuXIkkhkuXoOjVs/YcmXiEgyqEUek/UA9119Nnuv9Bc2ZMwWfFzy/vG56j+Cu0ABaeQrfnKGPd/lhKZPmYJC+P3RQubEQ6U3T7NF6g9CHoHKe5LZu2G+fN5xwr/lciie56rHbpOnffoc6lFfzKmBUD41FbyCy8INM7mQGlx6cUwumYn4vt1f0vnOPUicpJVY2XifW6YWzkPXamWK0IQRX+MJeirCCiiaGaP+ZgzPtVQcBY9REZClBAvBVyIngdvgl4iVHzonZz/V9wnbCK7KB6TOJIOJshHaBNLArHPyQ7yrw67hgTo/xWxX6Fj T6Oi7qu6 0BCBRObL07AdtKGl4QkA+HJoJApIhIpvU8NqFSPRDgMtcfYNa1QMqhpjExjsFNYb0yZc1Do4XER12A7lXrzNHojlSOMZ39uXOAzHvu0UBKpwxV9vB+TVuZ2OZmVNt7BX/m0BU/hn4dfJI9Y0= X-Bogosity: Ham, tests=bogofilter, spamicity=0.000001, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: On Tue, Jun 27, 2023 at 02:12:49AM +1200, Kai Huang wrote: > @@ -1113,6 +1115,17 @@ static int init_tdx_module(void) > */ > wbinvd_on_all_cpus(); > > + /* > + * Starting from this point the system may have TDX private > + * memory. Make it globally visible so tdx_reset_memory() only > + * reads TDMRs/PAMTs when they are stable. > + * > + * Note using atomic_inc_return() to provide the explicit memory > + * ordering isn't mandatory here as the WBINVD above already > + * does that. Compiler barrier isn't needed here either. > + */ > + atomic_inc_return(&tdx_may_has_private_mem); Why do we need atomics at all here? Writers seems serialized with tdx_module_lock and reader accesses the variable when all CPUs, but one is down and cannot race. Hm? -- Kiryl Shutsemau / Kirill A. Shutemov