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 85997C636CC for ; Mon, 13 Feb 2023 17:48:40 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 0FEF76B0074; Mon, 13 Feb 2023 12:48:40 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 0AE876B0075; Mon, 13 Feb 2023 12:48:40 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id EDFA56B0078; Mon, 13 Feb 2023 12:48:39 -0500 (EST) 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 DE1AC6B0074 for ; Mon, 13 Feb 2023 12:48:39 -0500 (EST) Received: from smtpin22.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay10.hostedemail.com (Postfix) with ESMTP id A61D0C0AE2 for ; Mon, 13 Feb 2023 17:48:39 +0000 (UTC) X-FDA: 80463003558.22.B755772 Received: from mga02.intel.com (mga02.intel.com [134.134.136.20]) by imf19.hostedemail.com (Postfix) with ESMTP id 166701A001F for ; Mon, 13 Feb 2023 17:48:36 +0000 (UTC) Authentication-Results: imf19.hostedemail.com; dkim=pass header.d=intel.com header.s=Intel header.b=UxLGzBQq; dmarc=pass (policy=none) header.from=intel.com; spf=pass (imf19.hostedemail.com: domain of dave.hansen@intel.com designates 134.134.136.20 as permitted sender) smtp.mailfrom=dave.hansen@intel.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1676310517; 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:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=gVvAq+sS49zAlyFvmnLvzdKaJ3MSwbPfc/coCEPIfcY=; b=vYy+Om9Zvt7vK1CbVzkaki9BIwV4MVqGMw5xBSGurwGv8b3GqlJtFq6LGC+zxG63596Xmz uc7sxQRnRXZcqI/Pvj8ByXInhUmk+cJPumuf4P5qRzHagbAjvVJ9pIn+1uYZOPHIJwMJSj UT4Dp3ADH8XPm36Q1FtJUsigfsTas3Y= ARC-Authentication-Results: i=1; imf19.hostedemail.com; dkim=pass header.d=intel.com header.s=Intel header.b=UxLGzBQq; dmarc=pass (policy=none) header.from=intel.com; spf=pass (imf19.hostedemail.com: domain of dave.hansen@intel.com designates 134.134.136.20 as permitted sender) smtp.mailfrom=dave.hansen@intel.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1676310517; a=rsa-sha256; cv=none; b=xjaqwZLijT7Jp4YWQPQXutZvP0pXi0rGx129+h0l1MFc3DVmEEODIGpMUpOuqq5bvPAQi9 4x2f5JC5vHFHSWCWLM9ikInjIkd1dvykChS/3s2482JQkocxy6NlsOpmdUSORy2trISqq0 ERAnwyfoJXDHzBEJ13MSqEPAMO25UH4= DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1676310517; x=1707846517; h=message-id:date:mime-version:subject:to:cc:references: from:in-reply-to:content-transfer-encoding; bh=j1DwugrJL9mSpbjhMZ7GStuq8wsxps0u+ATugfsOC24=; b=UxLGzBQq4Wd+tSoNhYqb6GStAhGkBWYmfSiDGEKnG80X4ND5WkQsgOcH W5mTLs6IJIepAiH/jrgWEXkVwuu5NXvfhY/TnscVK3KjhqtKLEZPbPT+v 98hXwXlF0bD1M2U0EqNl+15FfRXMbHPyIG1VwK81qN6+EqjcGeu0eFYNv GE+4ip7pqeurz9xxchY/ZFmMt2G11RZimNK9MbqJJunYkwoifcL+lLhPq llNTZwPsCk/Bv7igYkqSsHn2nqyt5/IjofimmqdR8zappcBuFkS5NO3mp 95HW2lHEf7MmXHFVl3IrYHHf1aJJPD8tEppQWJG7abzrY6tMv35sERpvR w==; X-IronPort-AV: E=McAfee;i="6500,9779,10620"; a="318972712" X-IronPort-AV: E=Sophos;i="5.97,294,1669104000"; d="scan'208";a="318972712" Received: from fmsmga003.fm.intel.com ([10.253.24.29]) by orsmga101.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 13 Feb 2023 09:48:35 -0800 X-IronPort-AV: E=McAfee;i="6500,9779,10620"; a="757673923" X-IronPort-AV: E=Sophos;i="5.97,294,1669104000"; d="scan'208";a="757673923" Received: from mlswanso-mobl.amr.corp.intel.com (HELO [10.251.26.232]) ([10.251.26.232]) by fmsmga003-auth.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 13 Feb 2023 09:48:33 -0800 Message-ID: <13348209-40da-226e-7852-9dcd16758ed6@intel.com> Date: Mon, 13 Feb 2023 09:48:33 -0800 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.6.1 Subject: Re: [PATCH v9 05/18] x86/virt/tdx: Add SEAMCALL infrastructure Content-Language: en-US To: Kai Huang , linux-kernel@vger.kernel.org, kvm@vger.kernel.org Cc: linux-mm@kvack.org, peterz@infradead.org, tglx@linutronix.de, seanjc@google.com, pbonzini@redhat.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, ak@linux.intel.com, isaku.yamahata@intel.com, chao.gao@intel.com, sathyanarayanan.kuppuswamy@linux.intel.com, david@redhat.com, bagasdotme@gmail.com, sagis@google.com, imammedo@redhat.com References: From: Dave Hansen In-Reply-To: Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit X-Rspamd-Queue-Id: 166701A001F X-Rspamd-Server: rspam09 X-Rspam-User: X-Stat-Signature: r58ozijn97xpwouozu5jbihupazjahnp X-HE-Tag: 1676310516-394181 X-HE-Meta: U2FsdGVkX1+qcIcRvhhWKHaj1fFq8RD0UGpIDlP6oN8qWqbutHq7psOz2Y5hTfxMdB/J2Kf3l9PxGRTFhqouFtd+eXMJGCRxiQud6sPKvnl7MuOSE4dIplNQ/RjV5Ju8VPd/NiVThbxCFbT93R9rYdeGunc7SHd368GHY+l+uc1664MT0mC3HpiZPqwnigqsZIMDw7WgcId81mBvR5lApniJ7wnO8zJKb+hpnf+7JqseUQy97uv4pK/TW2SY3TlgDt5nSHVuXM2y5jB9Mos41RRwPDRpJdEq3KGAwx/ff3+PHA4c2b9eBHhK8nlmZztjgHmM4ook2VuKmcaQLBHOn87H2Jzzdb/OLuqZNTXDZoTb4fgHtf3xwL7M9Pb3X/T3egVlQfz4GYJUAR6Om43dMuiSCkx4hKfLLQkOd7NhDKJOJE0KWL1bE+PbhJy36NneAYSJmKzR3DlLYVL/yluQXc3jfQ9pS6yzF3vk5EqdSC7y2YN59aiA0dC9HSHIYM+H78+c+LN0SLHwmGQHmoGPnsH8SQeT5NhEtP4FoeUpqWyU7u/rimBo8MOZ8UpquvxCo4u4YAwkJrlBLoQtq7KtoPndeFsqpLsL3RQ6Q+XT2dGhEQ1//ENeJ3MOiSl8LQf8JSDzHGeDyxV+7MzSiVXXYnMETR1v413T7trBKLhTxed3Jw9V5Q4F5BY0H+7JtfJCH6FId5evzMr21rPrhuX9uChtuJ7kASdv++ZK2F1/4B+vbgKlYbbhTe/jKMyu5+RXamenPs9cR0hcig1A1bO4hSjtfMeFaI5h60f0ibK0Nuz6639qYtR+SKMUCYApqsCW99rj98ED6ozYAvW9n2AQ62gO8atDprkAAdxCW6pvyaViU46jYDyPef/ebQPeULvWIxbUghFN3UHPqRNAIi3cIDguIcMWdFqX7hBuB56kBJOmJC1pfo1x6SOTZ16v5nT0rh5/zGSeiOQYMFx7Ygq VJjuvM0e rsffoHMjR2Z7/3dFECL8SkEfkqoh45xtpQpbEzSvK0spI1BUW3ykoOBtf+GEK/dPwx0Gz5XgQBpps/R4t/48NjydHtUu63mt+IVbej9wLMOXEPq2Clq01rbl/67CuMEVZ6izc35C2P0xqji6ighNe1G2HlPjhJz2RMNoL X-Bogosity: Ham, tests=bogofilter, spamicity=0.007726, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: On 2/13/23 03:59, Kai Huang wrote: > diff --git a/arch/x86/include/asm/tdx.h b/arch/x86/include/asm/tdx.h > index 4a3ee64c1ca7..5c5ecfddb15b 100644 > --- a/arch/x86/include/asm/tdx.h > +++ b/arch/x86/include/asm/tdx.h > @@ -8,6 +8,10 @@ > #include > #include > > +#ifdef CONFIG_INTEL_TDX_HOST ... > +#define TDX_SEAMCALL_GP (TDX_SW_ERROR | X86_TRAP_GP) > +#define TDX_SEAMCALL_UD (TDX_SW_ERROR | X86_TRAP_UD) > + > +#endif All these kinds of header #ifdefs do it make it harder to write code in .c files without matching #ifdefs. Think of code like this completely made up example: if (!tdx_enable()) { // Success! Make a seamcall: int something = tdx_seamcall(); if (something == TDX_SEAMCALL_UD) // oh no! } tdx_enable() can never return 0 if CONFIG_INTEL_TDX_HOST=n, so the entire if() block is optimized away by the compiler. *BUT*, if you've #ifdef'd away TDX_SEAMCALL_UD, you'll get a compile error. People usually fix the compile error like this: if (!tdx_enable()) { #ifdef CONFIG_INTEL_TDX_HOST // Success! Make a seamcall: int something = tdx_seamcall(); if (something == TDX_SEAMCALL_UD) // oh no! #endif } Which isn't great. Defining things unconditionally in header files is *FINE*, as long as the #ifdefs are there somewhere to make the code go away at compile time. Please post an updated (and tested) patch as a reply to this.