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 2F069C7EE2F for ; Mon, 12 Jun 2023 14:35:34 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 65D1D6B0072; Mon, 12 Jun 2023 10:35:34 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 60CF66B0074; Mon, 12 Jun 2023 10:35:34 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 4D4586B0075; Mon, 12 Jun 2023 10:35:34 -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 3B7196B0072 for ; Mon, 12 Jun 2023 10:35:34 -0400 (EDT) Received: from smtpin08.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay08.hostedemail.com (Postfix) with ESMTP id BB54014026D for ; Mon, 12 Jun 2023 14:35:33 +0000 (UTC) X-FDA: 80894344146.08.45200EA Received: from mga17.intel.com (mga17.intel.com [192.55.52.151]) by imf14.hostedemail.com (Postfix) with ESMTP id C46B7100004 for ; Mon, 12 Jun 2023 14:35:30 +0000 (UTC) Authentication-Results: imf14.hostedemail.com; dkim=pass header.d=intel.com header.s=Intel header.b=A2okuUcr; spf=none (imf14.hostedemail.com: domain of kirill.shutemov@linux.intel.com has no SPF policy when checking 192.55.52.151) 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=1686580531; 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=OepVOVESBsHnklaeVzadff+wqnBaRR0RW98FlIFm8kc=; b=4AzFI1aGX7YQ+EcIYs5VE0FELJ02yFAcCEu2jS8tFeuVZetAWKkx5ERTp6FbB83lqF25iI K/IZgv/RMxuKoYoa5WXNusNljzNoT16JvvQ/7YtRD5RHaq5yjrcqQWlhMb3HtzfK9a8WBo DNE6ZIVLlGp5J/q4iXxzITvKKLp3wzw= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1686580531; a=rsa-sha256; cv=none; b=iiKpQGTbiL9HiZHemjR2uBJsYcOVTaxQAikmn9q53L9tks/F9+AT4f9mR3u6b0uEFm6quq ckxLMfPNrN3NZwABZsgjaKVoqHkV9ajpAzw2LBpNVjaFLfF72prumdh8zZEWT4RkDWvwIe jaizAEl34wPfqJyrB+eUt/5w0n6Z+o8= ARC-Authentication-Results: i=1; imf14.hostedemail.com; dkim=pass header.d=intel.com header.s=Intel header.b=A2okuUcr; spf=none (imf14.hostedemail.com: domain of kirill.shutemov@linux.intel.com has no SPF policy when checking 192.55.52.151) 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=1686580530; x=1718116530; h=date:from:to:cc:subject:message-id:references: mime-version:in-reply-to; bh=UV/2h6fqgbTSA+6nmz5EI6zXiJFLRye4hW68DS9EZqo=; b=A2okuUcr2LJlcxlxPrFHsJ8maumS7zoK/IG8ePoZ+htBRZ5uKVCRXrCh o5vrvbZvAIhhosn7Pu31QGnWIF3wfPhwn0cNF4ar767Vaj7vHLPqt7TU9 fSgW3y7zd+OwZHlZruXjSSdub7ToKp8xURZe2k7Pq8I/TJ4PYmPNpJqGw ED4BLXWSRRGhfR94kqC8uX2pzNZl2F0rLrk5rQZBSBRh+iG4KjXFXWMGx dBAM1j6lGi1AA9uSa/fH7z8Ka5iZ9t6tfynSKQ/RtRGMXfPk+X79ATWj0 akx1eksT6JDbyyfRCAdpMst9xzU240APf9RzNvH2NOTeAWYcHbpYQizMN Q==; X-IronPort-AV: E=McAfee;i="6600,9927,10739"; a="338419470" X-IronPort-AV: E=Sophos;i="6.00,236,1681196400"; d="scan'208";a="338419470" Received: from orsmga002.jf.intel.com ([10.7.209.21]) by fmsmga107.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 12 Jun 2023 07:34:08 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6600,9927,10739"; a="711224041" X-IronPort-AV: E=Sophos;i="6.00,236,1681196400"; d="scan'208";a="711224041" Received: from smizr3x-mobl3.ger.corp.intel.com (HELO box.shutemov.name) ([10.249.43.127]) by orsmga002-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 12 Jun 2023 07:33:58 -0700 Received: by box.shutemov.name (Postfix, from userid 1000) id 3E33710CE1A; Mon, 12 Jun 2023 17:33:55 +0300 (+03) Date: Mon, 12 Jun 2023 17:33:55 +0300 From: "kirill.shutemov@linux.intel.com" To: "Huang, Kai" Cc: "kvm@vger.kernel.org" , "Hansen, Dave" , "linux-kernel@vger.kernel.org" , "Luck, Tony" , "david@redhat.com" , "bagasdotme@gmail.com" , "ak@linux.intel.com" , "Wysocki, Rafael J" , "Chatre, Reinette" , "Christopherson,, Sean" , "pbonzini@redhat.com" , "tglx@linutronix.de" , "Yamahata, Isaku" , "linux-mm@kvack.org" , "Shahar, Sagi" , "peterz@infradead.org" , "imammedo@redhat.com" , "Gao, Chao" , "Brown, Len" , "sathyanarayanan.kuppuswamy@linux.intel.com" , "Huang, Ying" , "Williams, Dan J" Subject: Re: [PATCH v11 11/20] x86/virt/tdx: Fill out TDMRs to cover all TDX memory regions Message-ID: <20230612143355.sur7zc7byu7omxal@box.shutemov.name> References: <927ec9871721d2a50f1aba7d1cf7c3be50e4f49b.1685887183.git.kai.huang@intel.com> <0600959d-9e10-fb1f-b3a9-862a51b9d8e1@intel.com> <201af662-f700-9145-c113-563e378074ad@intel.com> <89c99e7360dc2acfe5fb56c2bbb40e074e1f94d5.camel@intel.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <89c99e7360dc2acfe5fb56c2bbb40e074e1f94d5.camel@intel.com> X-Rspamd-Queue-Id: C46B7100004 X-Rspam-User: X-Rspamd-Server: rspam11 X-Stat-Signature: p4er46akc5zbgfmfkeuqqbw61gmuaz3u X-HE-Tag: 1686580530-240345 X-HE-Meta: U2FsdGVkX1+1wW31L4dBuk0rL11HVY9dRvMlI0tpDOBdUJTBbSmoALyMbDL1JMxItqTJHTN6Lysl58xJgrpwMc4kbpHeJc2tCcRF2d8qk183gGWebJylLV1XckIa3bI5mD5VB309gvcD3QgCDeJnq36gRWYgf+du/RqeFxCiZo5LKwQtqd3V3F+S6en9dqFcGE0fC1ynYg0HfqB9ONqnA7uDA819uGagVq9gBecbCSKJsUIggGaUKLzpO/Ca1HpvVrK/0c6BG+e6Ykyuy0H0BA5ffeWlaHwh6JdlTMxwJbOV6+Uy1ej208/iRtllLkZ0piAlwXNlFWfUnLyS9nufzKzbUsK+7Ye38tGScTWcttGGm3DVsdQjDTuxVOYdpO8tOGf4woyXXDIC0jHiFgm+OH5U7RTH0JwmHRCO9FUlDXSEj/Jql2wCJk1n934iISMiZP3ayoWR+dsgAjMgyk7NdLO842OObPCsjbbBEPV4j15CtGnGkhdRiMzsilkpmCf8fxMCRJlI4Cpa+LAX0SSyyGxWyRQ+ui0iSxuhO9Wfi5itEFmCeYz6tCyWgkppj7qY+6jFyfbtoY8K3AYYorm6g3h/PpjsjhAAHiQp+Xzvb5VDZ7ItG+GGbrNBNQPBihVsW6BNKgwMsdTZ5+LhV+sWkJgo/kGXqTrCW6QWQ/XmPtcWJ1h27B+GTzz2hgcFYkWFiLRx5Am0qGFXeZsVjsUM++PnynyAkwfUD1iUsPqXBPm/vxybji2BuVSyiLlcesgoDPyabgWRB5p8ekSLRahW6fI1ZfyuQVoRoq1dGgQsbqub3uNgnOCk6OHPNxO1eQZl8HEtV42C24QBduMRF70gCsAmmiHL0MnIaGq9AaqGWL7lrMbZ6o/DEQlJ98v+7Tooa6JOwcQm5l1STmzd8cU2WkcAwWWE0oytCXnq92dF5ZcVe8F8GgQvsT5SPm8jFl+6RizTxtzdEPI0ikBPhrC ip38k/pV svN051DBep3KjSayJvFKVGEQPT+4cNR2wXkGoRPwOOYVC6bYsk+tv1KC4eu6kzCrmhwWmeBmGLj8EsjrLlrHYsb4mrlcsObNn69uWB8PWP8ySDZpjU9TgdvXNuYeLkB2DST29abSHPcL7KGq+QCvss/Mez/8igf4PJ8eQ X-Bogosity: Ham, tests=bogofilter, spamicity=0.000004, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: On Mon, Jun 12, 2023 at 02:33:58AM +0000, Huang, Kai wrote: > > > > > Maybe not even a pr_warn(), but something that's a bit ominous and has a > > chance of getting users to act. > > Sorry I am not sure how to do. Could you give some suggestion? Maybe something like this would do? I'm struggle with the warning message. Any suggestion is welcome. diff --git a/arch/x86/virt/vmx/tdx/tdx.c b/arch/x86/virt/vmx/tdx/tdx.c index 9cd4f6b58d4a..cc141025b249 100644 --- a/arch/x86/virt/vmx/tdx/tdx.c +++ b/arch/x86/virt/vmx/tdx/tdx.c @@ -627,6 +627,15 @@ static int fill_out_tdmrs(struct list_head *tmb_list, /* @tdmr_idx is always the index of last valid TDMR. */ tdmr_list->nr_consumed_tdmrs = tdmr_idx + 1; + /* + * Warn early that kernel is about to run out of TDMRs. + * + * This is indication that TDMR allocation has to be reworked to be + * smarter to not run into an issue. + */ + if (tdmr_list->max_tdmrs - tdmr_list->nr_consumed_tdmrs < TDMR_NR_WARN) + pr_warn("Low number of spare TDMRs\n"); + return 0; } diff --git a/arch/x86/virt/vmx/tdx/tdx.h b/arch/x86/virt/vmx/tdx/tdx.h index 323ce744b853..17efe33847ae 100644 --- a/arch/x86/virt/vmx/tdx/tdx.h +++ b/arch/x86/virt/vmx/tdx/tdx.h @@ -98,6 +98,9 @@ struct tdx_memblock { int nid; }; +/* Warn if kernel has less than TDMR_NR_WARN TDMRs after allocation */ +#define TDMR_NR_WARN 4 + struct tdmr_info_list { void *tdmrs; /* Flexible array to hold 'tdmr_info's */ int nr_consumed_tdmrs; /* How many 'tdmr_info's are in use */ -- Kiryl Shutsemau / Kirill A. Shutemov