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 F200EEB64D7 for ; Wed, 28 Jun 2023 12:32:45 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 7BE728D0003; Wed, 28 Jun 2023 08:32:45 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 76E808D0001; Wed, 28 Jun 2023 08:32:45 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 65CC08D0003; Wed, 28 Jun 2023 08:32:45 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0017.hostedemail.com [216.40.44.17]) by kanga.kvack.org (Postfix) with ESMTP id 57A818D0001 for ; Wed, 28 Jun 2023 08:32:45 -0400 (EDT) Received: from smtpin07.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay01.hostedemail.com (Postfix) with ESMTP id 307AD1C7F23 for ; Wed, 28 Jun 2023 12:32:45 +0000 (UTC) X-FDA: 80952095490.07.2F8E194 Received: from mga06.intel.com (mga06b.intel.com [134.134.136.31]) by imf13.hostedemail.com (Postfix) with ESMTP id 9AFD82001E for ; Wed, 28 Jun 2023 12:32:41 +0000 (UTC) Authentication-Results: imf13.hostedemail.com; dkim=pass header.d=intel.com header.s=Intel header.b=JJUJixRT; dmarc=pass (policy=none) header.from=intel.com; spf=none (imf13.hostedemail.com: domain of kirill.shutemov@linux.intel.com has no SPF policy when checking 134.134.136.31) 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=1687955562; 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=QYv/byF6BU2tNHuU6GqY+lYVuYMEqu4h5iv7qXyMYjo=; b=jKfSgcQWHcZt3CmKNtr03l/Y43sa6213VwRhdDevvS6+U1XAMQSQXCTMw+902wdyxegBqt y9FKzgd5CVyDvr50B3jYvJ5HflM7RjqbF8N/igHKx3eVGIoMsCPFYkyXGYkYMWOKTO+tiH rBNSgZpNRM8QUsN3NbxQGnl+qCbrGUY= ARC-Authentication-Results: i=1; imf13.hostedemail.com; dkim=pass header.d=intel.com header.s=Intel header.b=JJUJixRT; dmarc=pass (policy=none) header.from=intel.com; spf=none (imf13.hostedemail.com: domain of kirill.shutemov@linux.intel.com has no SPF policy when checking 134.134.136.31) smtp.mailfrom=kirill.shutemov@linux.intel.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1687955562; a=rsa-sha256; cv=none; b=OagMQsdEvTNNzd6sNaHAsfLuvOJGVN8OUp7XL8SvrOVPX+vjpIUUMeGSONViDx7X+vjiyI OEhwc5vOmLInY0c+kHr9O4PS564Haiuvbjt4iPijxLyrBBDNEcSuGc9PrWUcxpQQpwSQm9 oUN5YD9muyOk5TS6MV1UfgbKIVArUHE= DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1687955562; x=1719491562; h=date:from:to:cc:subject:message-id:references: mime-version:in-reply-to; bh=LwuLIpTDFUZ3/oZliTaoWA+Y3rIbrn82/cfQFTII+Yk=; b=JJUJixRTwwqYmIazexw9AFfRI1rdJZTgGwimSMyPdSf14ZXf/O34oxSw e+R2EiryD/rY0ENhqJlGewPr5WWYAUJ1mz+73SrOs+qphwhmjTXFXs7q7 XJDCT6VKzVpa91Qg7buXBZuBXwu0f4euLg8glam7fIjreFre8rl2v721d wi4ZH2ojag2MH7OiROUK4CqycNpoqEk4SJihQW/Kgf3bEe3dtmIJ1MwfH cA0vll7Uz5F7/uYC6GxvmlaNSGCS3I581wQW9Ae+pBve0YD3fhwh/YQrD 5Ya8PlELk2FsRKAUIe6uny/GScpkxVn3AjmsbZKv48D7f29Sb4XoMxk8b g==; X-IronPort-AV: E=McAfee;i="6600,9927,10754"; a="425502903" X-IronPort-AV: E=Sophos;i="6.01,165,1684825200"; d="scan'208";a="425502903" Received: from fmsmga003.fm.intel.com ([10.253.24.29]) by orsmga104.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 28 Jun 2023 05:32:39 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6600,9927,10754"; a="806875831" X-IronPort-AV: E=Sophos;i="6.01,165,1684825200"; d="scan'208";a="806875831" Received: from rajritu-mobl2.ger.corp.intel.com (HELO box.shutemov.name) ([10.249.47.187]) by fmsmga003-auth.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 28 Jun 2023 05:32:32 -0700 Received: by box.shutemov.name (Postfix, from userid 1000) id 2F9271095C8; Wed, 28 Jun 2023 15:32:29 +0300 (+03) Date: Wed, 28 Jun 2023 15:32:29 +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 20/22] x86/virt/tdx: Allow SEAMCALL to handle #UD and #GP Message-ID: <20230628123229.byp3bl7husxt6eso@box.shutemov.name> References: MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: X-Rspamd-Queue-Id: 9AFD82001E X-Rspam-User: X-Rspamd-Server: rspam02 X-Stat-Signature: jphkcr9dz4ho4yhgo8irhckyehk3nqy1 X-HE-Tag: 1687955561-931237 X-HE-Meta: U2FsdGVkX1/9I8cVhlIxfKAS3WlqpceB4ayS58I1E8L6CXPuwl1qpHezi8Lj5jmW/UVEmH6v6mEvxLTy56O9pYGvRg9D+xkBn1iIK8If/rvPJKkRfY2+QMQhC54BQ+s5U3qXjgppPkh7ZDJ9eIqg8C5avL3jo47oCE+26Gd6zwzvEAd2+N83IKthco0BTq8DjSIiyzB0g802WUwcV7oK5nl7aPrt0rShVnXMdFrznxRDa+iFJQR6pCk+qAeCCAQsHcRttREG1k5eosT4A4lgWETB1iOzTTTSDODZ8nUZZ/9SgxWcMYcj/wPN3oAwNI0MDT4WbCawSqqI1pjg8m0wXLZGHTNEF1hZez6ltc8sayqPcN3tRGoSG6f+TOf/awEE60qWC26JMNiRONCQg0tKswSeIRT2lz4sZawaWLaAY6RThTuLHjPQMqFbJSL30IwC5Xcvp9bAcr1FWrigkR/PIKjEvoOiYMIPUw81lJNlC4mzEJB7M75fREmRDqaiVs+Ml4Gg8jJBm87tIXB6pSbNZ4PhTCIKugd7xX8zuzT4zQM1INEYZ42QgjZiQlZTPkk7v220NXupNCEMXvTJcv2//n0erSii1lPRFuB6NWmdRBvszWbjMbLGVK2wnvyZPIjSF1/d8O8VeR6gGs3vH/3dIMkRjw2atfSkRHx2PO8+p2b7qatHZAop3IOQqnX2ghzqYLbMK0jzvz33OHOklNzj68VhmAM8Y0fV5UDo9kpI9WiImvrtTX6F39Uo62nM3uZjOtRisFGZay7nLiuOLfgyCXPwfYBX6sGfuWasNgFvZJVrVVY7y7L9pcUars2IjHR+DeR251chrZrSyvsdVjN2+vm3fWOOqDlfM6/WEFfFP7vkTLRUwj3zqckrnNE6HCiFQcfbnHl3qqt7Fsuy1f9RysGeDfG2k0yRfn65HcWPLk95j3N+tFODIe1yFzexaZvnkhIlTgkE3gkjlpTNBjf lOX5MMt7 mKrMNMnfdWtFb38+Fvxx/7nLIDxAfgXmXTNGqvIlxGeRXteS16Ig7syHes1ozrAuCAvUwa116DOXVXZUOYTNAYQ2RpdlHLWj9IOWmaZY+B163OHA6H4+2UTxTzY8i55Spw1cE 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 Tue, Jun 27, 2023 at 02:12:50AM +1200, Kai Huang wrote: > On the platform with the "partial write machine check" erratum, a kernel > partial write to TDX private memory may cause unexpected machine check. > It would be nice if the #MC handler could print additional information > to show the #MC was TDX private memory error due to possible kernel bug. > > To do that, the machine check handler needs to use SEAMCALL to query > page type of the error memory from the TDX module, because there's no > existing infrastructure to track TDX private pages. > > SEAMCALL instruction causes #UD if CPU isn't in VMX operation. In #MC > handler, it is legal that CPU isn't in VMX operation when making this > SEAMCALL. Extend the TDX_MODULE_CALL macro to handle #UD so the > SEAMCALL can return error code instead of Oops in the #MC handler. > Opportunistically handles #GP too since they share the same code. > > A bonus is when kernel mistakenly calls SEAMCALL when CPU isn't in VMX > operation, or when TDX isn't enabled by the BIOS, or when the BIOS is > buggy, the kernel can get a nicer error message rather than a less > understandable Oops. > > Signed-off-by: Kai Huang Reviewed-by: Kirill A. Shutemov -- Kiryl Shutsemau / Kirill A. Shutemov