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 7A097EB64DC for ; Tue, 27 Jun 2023 09:51:47 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 1B1908D0002; Tue, 27 Jun 2023 05:51:47 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 1619F8D0001; Tue, 27 Jun 2023 05:51:47 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 029D88D0002; Tue, 27 Jun 2023 05:51:46 -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 E3ED28D0001 for ; Tue, 27 Jun 2023 05:51:46 -0400 (EDT) Received: from smtpin24.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay07.hostedemail.com (Postfix) with ESMTP id B925E16012D for ; Tue, 27 Jun 2023 09:51:46 +0000 (UTC) X-FDA: 80948061012.24.AD8DB2F Received: from mga07.intel.com (mga07.intel.com [134.134.136.100]) by imf11.hostedemail.com (Postfix) with ESMTP id 817E24000E for ; Tue, 27 Jun 2023 09:51:44 +0000 (UTC) Authentication-Results: imf11.hostedemail.com; dkim=pass header.d=intel.com header.s=Intel header.b=IgUIRZat; spf=none (imf11.hostedemail.com: domain of kirill.shutemov@linux.intel.com has no SPF policy when checking 134.134.136.100) 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=1687859504; 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=D6SK+owre2dKCa3QUB+joO/wubvXgRYVMrsY3OmdZSU=; b=LTJwNQKXP5U5RUcMXXkCAtWtGTDZ0dc4oytGVu8Vn1aksH+u496h5OyB4cx3wTs1EC7RH7 +A4fBCdHjPf5qx5L2zGedEqxfi7w4AV8AQLA9J6r8TYch/iIF14DF4XGbIk5taQEL4Q2fy 1grBzo9dAsfK5bXo4X3Gp71TOuBN7WI= ARC-Authentication-Results: i=1; imf11.hostedemail.com; dkim=pass header.d=intel.com header.s=Intel header.b=IgUIRZat; spf=none (imf11.hostedemail.com: domain of kirill.shutemov@linux.intel.com has no SPF policy when checking 134.134.136.100) smtp.mailfrom=kirill.shutemov@linux.intel.com; dmarc=pass (policy=none) header.from=intel.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1687859504; a=rsa-sha256; cv=none; b=FfXS0TB7ydtklEAgVNFWAUSrB57IFjyV7sjJMKkYbqUy/ir4OMVxCrR3KvR7NM6FrDLoza JbWVhWzhBWSkWlCjzxCDz1HCOIfwP47THsLQkOY7LV9FFunXn+MRX5O00gVWtixFqSitDB pMvW/f8JLGOWApDs7efgb8ZZm/Yi9y8= DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1687859504; x=1719395504; h=date:from:to:cc:subject:message-id:references: mime-version:in-reply-to; bh=eMQjSnWISAaYo3C4cvXdou1DofAukXurvqYsZXMKRUs=; b=IgUIRZatf+Kgw7fZk+Q01g068hrjBGW1R5dyP+UIb2sve3W6y+aimCKT Z/PmVpHtXcdTFzFuupg5ukRZTOBqN58zUOMkwTTyJfnI7VPHRflA9/1fZ JJSnt0oI63uKEE67AXjnqlcroOaKfP6Q1moq92q16z/b1P759+IcrVDcB LdJGEqVikMrMCHcv0Q2TiLTOPqrtuB06Mm+lOkKpq0wq29tT4WSc9H9sX q+G5A7TboOSJ4KYi8JuwHgwthcBaeYZCfX1CYkEOvC9iA4lFlExjlmhY+ Xi1+Xf3fp3MrqPwE1opsu3ayPLy3hUEsE5PC3fw3jV6xM5cftwgkLtwhU Q==; X-IronPort-AV: E=McAfee;i="6600,9927,10753"; a="427528586" X-IronPort-AV: E=Sophos;i="6.01,162,1684825200"; d="scan'208";a="427528586" Received: from fmsmga008.fm.intel.com ([10.253.24.58]) by orsmga105.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 27 Jun 2023 02:51:35 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6600,9927,10753"; a="781794199" X-IronPort-AV: E=Sophos;i="6.01,162,1684825200"; d="scan'208";a="781794199" Received: from rbhaumik-mobl2.ger.corp.intel.com (HELO box.shutemov.name) ([10.251.217.121]) by fmsmga008-auth.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 27 Jun 2023 02:51:27 -0700 Received: by box.shutemov.name (Postfix, from userid 1000) id D2229103732; Tue, 27 Jun 2023 12:51:24 +0300 (+03) Date: Tue, 27 Jun 2023 12:51:24 +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 08/22] x86/virt/tdx: Get information about TDX module and TDX-capable memory Message-ID: <20230627095124.nhiypr6ivi4kdfrw@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: 817E24000E X-Rspam-User: X-Stat-Signature: 8tra9d8yu68jzfmi3q5c84o7x8dmmery X-Rspamd-Server: rspam01 X-HE-Tag: 1687859504-966147 X-HE-Meta: U2FsdGVkX1+RoS2naaP6G/7gpHP4ON9wa3qXfsFdYoFnPZkFDfi7l11+GEYov2nbX3Y00XZ2VExMrOikxEsr6Ca+V1omL2C935Ah9lWskb9RIfkGGAH6zaPs0UDISWnMgzHggooeKvnBkg5/OHUbH9/fRFFu6cfLNGizkikXAG8j5xwHpeX8EEO1mzDlQHcSJL7YpDqUG5XzBKuAR4RlYh96kbOcsBB40LBZ3FDKbbwVS+v/zdCyS3YqTQuz7peTivEWQh67KVagCsmnaIcsW9o1nYfSmX/or0T29EYMZSDOU+wZ5OcfH3il+ihL01TnJeEpx3L/jNZvVxeAMXzVfXCS3L5rIjOcFEUffhv7+tC7e2ype3kb9qPJbUm/EFrmSe2AsAv3+UkshToPreH9B/FYwiWRGRaOn3LujB+oes1PxnOIh5odejXAZ6MlcEJJsUaPsebjm8j+aGwL14liZ3C7amnNcE2txPgS8drFhhV8+e9nNENgLgbN4FAtq7tLQ6avNFB3u38nkpQ4l67I58+GqjLe+masyXo4YmRZbq2W6vefLhMPGH+9Ix9s5BRyCh86gUlwQxFjb4zUAoOeJh0Ti92MYo09HCOZbqfoDavApLQ1W6DLuuyOrLX4EjifNbPr8LjbzWadXzRKrXSQ8W+PJt2mncMDIwCeMWrAQ5fCnw13BsFOPmxDDljNr3wUS67lAEP84aD6+M9S2+4xUNxnww0ULt/3IEp2rfb0bD/nJbG5lar/X4HSXoxN+dEcHW9tHFoamHAiGlV30iOFno9LFM3FV1OV5hseE1sOA2vQBCWf/90C11QrAIT/aelhOOZ1/ycltAWHct3/dQ0HQETIOAS+OEljKioQkx38VZe7UH5DpYGsFBRMloVyot930xANfjeFlh5TaFHqUoR4JfA5oE3o1N6WDv0ZGxqr3UnT6jX+7cIhkUn6ieK/JQXpPij+zWVGAgKVAtdDc7S oFCo/OAJ 2N1i0uK2FcXnvK8F1RJKlyc5tZu5rd7y8wf+cHuIJxqHRsXH9pxJzd1Wpjo/zC1t7v48fy4bpZNE5KWbL1WGpugPViQRkW73fjXUcG0ngFR7hrf8= 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:38AM +1200, Kai Huang wrote: > static int init_tdx_module(void) > { > + struct tdsysinfo_struct *sysinfo; > + struct cmr_info *cmr_array; > + int ret; > + > + /* > + * Get the TDSYSINFO_STRUCT and CMRs from the TDX module. > + * > + * The buffers of the TDSYSINFO_STRUCT and the CMR array passed > + * to the TDX module must be 1024-bytes and 512-bytes aligned > + * respectively. Allocate one page to accommodate them both and > + * also meet those alignment requirements. > + */ > + sysinfo = (struct tdsysinfo_struct *)__get_free_page(GFP_KERNEL); > + if (!sysinfo) > + return -ENOMEM; > + cmr_array = (struct cmr_info *)((unsigned long)sysinfo + PAGE_SIZE / 2); > + > + BUILD_BUG_ON(PAGE_SIZE / 2 < TDSYSINFO_STRUCT_SIZE); > + BUILD_BUG_ON(PAGE_SIZE / 2 < sizeof(struct cmr_info) * MAX_CMRS); This works, but why not just use slab for this? kmalloc has 512 and 1024 pools already and you won't waste memory for rounding up. Something like this: sysinfo = kmalloc(TDSYSINFO_STRUCT_SIZE, GFP_KERNEL); if (!sysinfo) return -ENOMEM; cmr_array_size = sizeof(struct cmr_info) * MAX_CMRS; /* CMR array has to be 512-aligned */ cmr_array_size = round_up(cmr_array_size, 512); cmr_array = kmalloc(cmr_array_size, GFP_KERNEL); if (!cmr_array) { kfree(sysinfo); return -ENOMEM; } ? -- Kiryl Shutsemau / Kirill A. Shutemov