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 4360EC369AB for ; Thu, 24 Apr 2025 04:27:44 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id B011B6B0006; Thu, 24 Apr 2025 00:27:42 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id AB07F6B0007; Thu, 24 Apr 2025 00:27:42 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 902756B0008; Thu, 24 Apr 2025 00:27:42 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0011.hostedemail.com [216.40.44.11]) by kanga.kvack.org (Postfix) with ESMTP id 6E17E6B0006 for ; Thu, 24 Apr 2025 00:27:42 -0400 (EDT) Received: from smtpin22.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay02.hostedemail.com (Postfix) with ESMTP id A0CB7121A92 for ; Thu, 24 Apr 2025 04:27:42 +0000 (UTC) X-FDA: 83367653964.22.ADAFC7C Received: from mgamail.intel.com (mgamail.intel.com [198.175.65.14]) by imf22.hostedemail.com (Postfix) with ESMTP id 7454FC0004 for ; Thu, 24 Apr 2025 04:27:38 +0000 (UTC) Authentication-Results: imf22.hostedemail.com; dkim=pass header.d=intel.com header.s=Intel header.b=iLPOzIYo; dmarc=pass (policy=none) header.from=intel.com; arc=reject ("signature check failed: fail, {[1] = sig:microsoft.com:reject}"); spf=pass (imf22.hostedemail.com: domain of yan.y.zhao@intel.com designates 198.175.65.14 as permitted sender) smtp.mailfrom=yan.y.zhao@intel.com ARC-Seal: i=2; s=arc-20220608; d=hostedemail.com; t=1745468859; a=rsa-sha256; cv=fail; b=nMu084UhvLp5kPEsJoPfnRTqdcTUVOV2H34xGJc89hcH4uGAwGUpTnkFhw3ked+sgHPww5 4E+t7Z2TJA58TctEbLBdvTOHiVTDTg+7tCqfFEwFLb1gyoYrGxNL54hFKEcEsUq3R1q1dO /6vtTJie/mzN6GsHm0MRqagAD+i0/FM= ARC-Authentication-Results: i=2; imf22.hostedemail.com; dkim=pass header.d=intel.com header.s=Intel header.b=iLPOzIYo; dmarc=pass (policy=none) header.from=intel.com; arc=reject ("signature check failed: fail, {[1] = sig:microsoft.com:reject}"); spf=pass (imf22.hostedemail.com: domain of yan.y.zhao@intel.com designates 198.175.65.14 as permitted sender) smtp.mailfrom=yan.y.zhao@intel.com ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1745468859; h=from:from:sender:reply-to:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:mime-version:mime-version: content-type:content-type:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=p0sOouCA2QQWK9JzpwLRNING53q6dzD23ZVjhdmntDk=; b=Fdx9hP3GbU0joj2Kb2KcArhSxw9pNURilXiGN0AP48WJmlHjLYIObxg8/+gmjOy26160nq 6DGocd2WnazuMnxiOi8ioLlMYS7R0ohanyNC86c8KTgEXxSuW3Sm0HxNbp1swP7gtwoRA2 0LndOvVyKzLykv+wb59p9jFom/WNpPk= DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1745468857; x=1777004857; h=date:from:to:subject:message-id:reply-to:references: in-reply-to:mime-version; bh=AxwkQnBnbXzr5v+OE2MvhZbRFyFdf3EIsmdvE/jpR+E=; b=iLPOzIYoxH3VFPby8c+eVKCjVTbW1GyPC3w7KGg2OcWxJhoeuw6CgHh9 N+FnEvI3c9chct4lY+OVSBNrGA6xT9aSb7iOXoKsBTqb8aiQm2rF2bXVs YdvkFoE/syntYz/TDYZyeFYGoUg0Mu/1X4h4woZ42GRn545dmUAo/6fwT We/EAgBooMoP9++eWyInC50a5BJuMp3DhNSfD8GfSTvRGyazsPyf1Nd04 7h4gZCK5CF279DHxV40pb4NR1aGSXModlAZYp5Ccmj7LBCM10jJebeHSz c7eLZ9fIW603g6b0UxlL4u9YjLggr/CR2vBVChraweOWF1UxC4rXoOCTN g==; X-CSE-ConnectionGUID: t9EpCh2YRQCstcLrsI0jOg== X-CSE-MsgGUID: cV+Adt/LRsSTF25sUzxaAw== X-IronPort-AV: E=McAfee;i="6700,10204,11412"; a="50884019" X-IronPort-AV: E=Sophos;i="6.15,233,1739865600"; d="scan'208";a="50884019" Received: from orviesa001.jf.intel.com ([10.64.159.141]) by orvoesa106.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 23 Apr 2025 21:27:35 -0700 X-CSE-ConnectionGUID: zXb7uM0CTwi3YRJ/4PLNbw== X-CSE-MsgGUID: nyX0EjMlS6e0XvFS0mY7ew== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="6.15,233,1739865600"; d="scan'208";a="169713839" Received: from orsmsx903.amr.corp.intel.com ([10.22.229.25]) by orviesa001.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 23 Apr 2025 21:27:37 -0700 Received: from ORSMSX902.amr.corp.intel.com (10.22.229.24) by ORSMSX903.amr.corp.intel.com (10.22.229.25) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.1544.14; Wed, 23 Apr 2025 21:27:36 -0700 Received: from ORSEDG601.ED.cps.intel.com (10.7.248.6) by ORSMSX902.amr.corp.intel.com (10.22.229.24) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.1544.14 via Frontend Transport; Wed, 23 Apr 2025 21:27:36 -0700 Received: from NAM11-CO1-obe.outbound.protection.outlook.com (104.47.56.171) by edgegateway.intel.com (134.134.137.102) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2507.44; Wed, 23 Apr 2025 21:27:36 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=fqP0LRRg4al//vpCtal0KUbFo5qdLs91Xp/4BRBX2teKQMkTVHtlLpWCwPgYTHka7RAI3cWUdc1pUG9poVUmS7FL7f3/edq72w5olXAoLKkpIf1LSGvhSylCEyokExwsm7KACy1QVEjDYSm27vWkXbguVKjvUA9Jd8+5d9b/ffDHTCDEOUVGv6mdlLraedqS9o53Kwv8i06A/I+UFmg/wufCW8AEnxWBQfWJndwyyqMhNAcBiar4KcRLFntjMkuIPfQOgwnlxasb1wojGdw3IpYXLBvDz6KbMAbnifUSln5+tRV6HIGdL5X1CVRn5STZA17/PJyvvRBQ09O4buDdtg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=p0sOouCA2QQWK9JzpwLRNING53q6dzD23ZVjhdmntDk=; b=sA7HDn1SauUQVXaRWNugef6bs79B/JxzTT0c1YrxAw7ByrJE1JE5YW4yZYuBWAGqd0mBLcpSjgAu1s694h8zF18CykO1dqjTkEHAgyv3QQjLowGnLfENDYJUA/vjrasoU2pbymvfHGwuuYsvFKtYl/Y3S7R1WdTMeN3VBM7IWmYNkkWsGI+GyqY1HMdxmG7J8G5KkzEGq7xMbF2uv4OgefkknujlRpFLAjDgjIlwjqieKAK3K0u1dKNLb9ilbWOxvWmqyTzQrebe29qqJHeXuXJhqs97s0tzq9Okf2NipQSuB3tSXXdVN1K3rp+AHCwxYlvWYsSdnS1eZjL/KjOpug== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=intel.com; dmarc=pass action=none header.from=intel.com; dkim=pass header.d=intel.com; arc=none Received: from DS7PR11MB5966.namprd11.prod.outlook.com (2603:10b6:8:71::6) by DS0PR11MB8070.namprd11.prod.outlook.com (2603:10b6:8:12d::7) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8655.35; Thu, 24 Apr 2025 04:27:28 +0000 Received: from DS7PR11MB5966.namprd11.prod.outlook.com ([fe80::e971:d8f4:66c4:12ca]) by DS7PR11MB5966.namprd11.prod.outlook.com ([fe80::e971:d8f4:66c4:12ca%6]) with mapi id 15.20.8678.021; Thu, 24 Apr 2025 04:27:28 +0000 Date: Thu, 24 Apr 2025 12:25:28 +0800 From: Yan Zhao To: Ackerley Tng , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , Subject: Re: [RFC PATCH 39/39] KVM: guest_memfd: Dynamically split/reconstruct HugeTLB page Message-ID: Reply-To: Yan Zhao References: <38723c5d5e9b530e52f28b9f9f4a6d862ed69bcd.1726009989.git.ackerleytng@google.com> Content-Type: text/plain; charset="us-ascii" Content-Disposition: inline In-Reply-To: X-ClientProxiedBy: SG2PR01CA0182.apcprd01.prod.exchangelabs.com (2603:1096:4:189::20) To DS7PR11MB5966.namprd11.prod.outlook.com (2603:10b6:8:71::6) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DS7PR11MB5966:EE_|DS0PR11MB8070:EE_ X-MS-Office365-Filtering-Correlation-Id: b2d98dbb-fafe-498b-061b-08dd82e85283 X-LD-Processed: 46c98d88-e344-4ed4-8496-4ed7712e255d,ExtAddr X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|7416014|366016|1800799024|376014|921020; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?J8WbDRG8buwhC3qhiei47lLE5d4rbxIRXUoVHbqp94zdAgpypar9FiBwidPR?= =?us-ascii?Q?nHDSDznIOX/CBeEaphrJj/N7ocsEHP7i5WUCND1n36aoaL0phSiyn07cWItm?= =?us-ascii?Q?tKghGdasi23aA6f8OeFG15XK1RIxRzI98bCBR2bsF9CC5EofWG+yDhpsJRXZ?= =?us-ascii?Q?kxqZVokoostxCuYWo6g0qj39Um+RtQkIWwsWfrvdxyU+h05mY8mDbO1rntVN?= =?us-ascii?Q?Gss+xeiZrEuCcwm9MzCRkm4WbH4r6RtZYrgI3zdOwkLwkeMcWnUVZHtqs8WL?= =?us-ascii?Q?3/lvtAMW8rxWBYKfzziOA5pEujsJTYjXGFRQ1s3ZgHjfKxLu4h/uUKaz6VSt?= =?us-ascii?Q?rfYud401mJXChD24s1o2igwb4pbm7GVAbITQIHMSCTIduTDMdL7W3uXhPToB?= =?us-ascii?Q?2LC51Bz34uDcZkZmtIAQezBR56JV8rGpMCeuZ05SK0VAaaVTz67IW88Shx4N?= =?us-ascii?Q?e3hcswxlMxdsJBD5A7IyjuTBsurD9MqpZGUh/+9l68/m+CZlOMYFRhPblamc?= =?us-ascii?Q?GiE0dct8CHxgbPIYbcppxCSBDpon3BICZ+/oKUEIjwWgbZUoirrLYIq3n8F6?= =?us-ascii?Q?oAWYf1KD0eZu0wK2Yms7JKvAYfgMJrKhNA0CQ+2uKJs2/bz3mo8rFN7Gyo9v?= =?us-ascii?Q?rVrE49l4V7U+waCm/JycyJi2v/jPCc+F7o+JgLy4HPo00aaS6L5Jd8GJZJG1?= =?us-ascii?Q?18IEoG4UiThob3OvYXqLYLYUmfZu1bIQXDgfHjcfNqqS+339emB9mLtlMqH8?= =?us-ascii?Q?082YO+w+YRnwrHj2qfwunu7VacFV7pQ931CgfYFV+JLFdJczUjzxSPX0Irp2?= =?us-ascii?Q?PLOUw7bKIpFq+LpmvV0ZMU7frbfVJgEIG6MbqjHgsM3SQ38veEw+sDcwAqsd?= =?us-ascii?Q?h2o7EtCTzAQlW/DC7SicH0ZEDsLFZgEAJZimuhj1WD3XBUH2c6TFMYDZWeB0?= =?us-ascii?Q?iGkLH+nptSobU6BwRk6T7LVTrL49EROSVCxleucYONGqJc46F6I7tARllF2K?= =?us-ascii?Q?VvgLxZnMWbrgpwQ5AUACXptbR6skctUFhx5dEZSkrBlMvDVRNO4I7XFAhuvk?= =?us-ascii?Q?LeFCMs4VkCgmjRfKDiCSKRgywS0qw/C4ZGbq7bpRGVttb/p9RjPOscATI8e9?= =?us-ascii?Q?i3LLVA/MVBn48MymURTVgXkAuiPHh9iJ7a4/785tgtusm8tfxmsUfX7pB+8R?= =?us-ascii?Q?kHD3KxF92BJ67xogenVW09JDjunFFJeGDEhcl6yGfPyVeXvRCuFSJzlmVGuv?= =?us-ascii?Q?gA17x6uKjEelNznBHbcIfBC6SvOVhy4L2+2/KjzaV0Nbqc7Qo54wo42cupGr?= =?us-ascii?Q?XyWCTZ7bTApMvgBt91q40JAAv3rRDRFX4DAr5AMmg/tW53DaPjNf+40PGwS3?= =?us-ascii?Q?6TCMxmlWx0euEjaHizet1d3RxxQNtjxsQojeopGDwcQR5HI/lJvi7UeKvmBR?= =?us-ascii?Q?yF1e9Q7hDkpQD7p7o6BR/SMNLU9KKC6kIM803xLdRAiA4afYyXUxyA=3D=3D?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DS7PR11MB5966.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(7416014)(366016)(1800799024)(376014)(921020);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?X0guJKnnUDNNrNg86JuOUeY7GQIk99rExSXwVthClr5wxsqBLFQkWQYA3RnR?= =?us-ascii?Q?vFtJh4FvFPjG+QEQFZLPvTRtU/7axQd4nwmQThjRjNNtN4Xnn+3gZxIPNsOh?= =?us-ascii?Q?xnqnjFqa9yBlDNMWefthfEjKoVvxJxGVMXhpZL47ihPgmB/4WPecDs5SQffY?= =?us-ascii?Q?F8fTDF38GDIJftXrfp75DcsDL7vKCng+V68VTo2v9xS5TeLUGMuUCjjP3a6k?= =?us-ascii?Q?W70v9zQB9qYqt/9BKvJy9JP3Iq5ZlbNisDi4yHIlficYBOEXrwa/Ruv4zCn7?= =?us-ascii?Q?MaYOaSuqTL8JplirwKU8MbgSu/uk0AWnqWjnXWrahbT2BKte7qpSsUVKx2VB?= =?us-ascii?Q?1NFS7OhGhe1FjDe8bXCGq1W6TPLlshXWmqEnOJNgjxaL2OgMm7IbASQjUHL2?= =?us-ascii?Q?+rlUbn9TUL4DD7UlGv4YXT/BVVhUiHrf6QAfWAF4YINzBFoYK70HG4I5dc//?= =?us-ascii?Q?Fxoqh2g7rEvrrGtZQpYPeERTK2nQ5UNRp06WWojHbYiPBM5jjbQsYYK9TebX?= =?us-ascii?Q?/MW1F7Zz/Yf7AN9tWEunF7M06CKvwBTAvu6k/LkRLyLULdupsqkDhWn2XEMh?= =?us-ascii?Q?W5g4yMmajSifJ2TjWRAAYMXsonOjtE9ZMts5wxeZNmNI9UDsKlhYtW/tXMlz?= =?us-ascii?Q?x18p/kuRVAsxbDe/BTgpIsjdJA1LwEcP+n4glipcp2LeWtaU0dzY0T15FVF7?= =?us-ascii?Q?YzZR1RxxgC0/xkRZWu7GqY++7v+98WOT6rLsVkBaFABaPreLwO6gGvqDx/bu?= =?us-ascii?Q?KkdOpoCfhvGRq7krDsheJ+XhgXs2umAWlO3JstAfjLCC+4e/iHJxVQ9XUOFW?= =?us-ascii?Q?EmomcnyfSxASe6OKZzYaMhPOaF0Dmer31W2S62rRnFJGV7cYLtUFDV9sSBAD?= =?us-ascii?Q?Wn+jawf2lD3wVDUXWP37syzGVjv1R0/C8kIlVGfBaJAUoC0vAasOTPmEkZj3?= =?us-ascii?Q?FNsOx3h3gs8jE3j9ZqROC8KvOQiSEdQ5mIWzvM0+GXq3CaKwXGHcMtrdjPTe?= =?us-ascii?Q?9uNMv/hkeDKc5coX7u0v1RKuRT6+vM+sEIXBIPewOh+YEQ560CqxhWD/Wk2p?= =?us-ascii?Q?mkKp7VGWZf4tkANHFcZHxcH9AMLUx3IfzVSwodTlk4LvjHiPva8y0LbIdqth?= =?us-ascii?Q?RRExxt8XZowgiCkV05WNBbmsOnde01duO0CmLYAAh/J0wthJJ5Ww7Rv9wwtm?= =?us-ascii?Q?IAhO9X9ZLM8mSg+xMzSZO1pv4bj3lmx4ZTwjL2XgygR8T+Z63USD/wFYWZYW?= =?us-ascii?Q?j6cwDcWJOgUezc5ZpsYs2FyceWqkFK2xIj0d2zx41R5VrnQbwwD74PXEY08J?= =?us-ascii?Q?2MTKV1jdV1Sa7Yps5mdg5hItM9pbQ9npzy35wHX/7DKhfI4r89kwEA+4cAsg?= =?us-ascii?Q?PI5HG9MBAz6jOKXDREORqwATjw972JA0koKp5SRFnNyd3Y9fVa9x3F4VxcNh?= =?us-ascii?Q?QrEMCEHaYk9pi3HZeMMkDIwef+QnhWP55sW4QYq2x811Xoim7Yr4HcHsEBoe?= =?us-ascii?Q?1w8kKE0vofQ81LZVsAmNs04tHqV87TpfYVW1XnpxKk5ZdLWo7+i4Objape8U?= =?us-ascii?Q?+O/W3KBSUo38e8TCvnMOiP27Scje/l+K8CHFt4T2?= X-MS-Exchange-CrossTenant-Network-Message-Id: b2d98dbb-fafe-498b-061b-08dd82e85283 X-MS-Exchange-CrossTenant-AuthSource: DS7PR11MB5966.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 24 Apr 2025 04:27:28.6238 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 46c98d88-e344-4ed4-8496-4ed7712e255d X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: iNa3g2ONnLudm9oxZOv5Mksa2DCIgbF5rC9+QiSMoRPb0WBG1pe88CuH+oUHVd6iO55NOubEfL6Bp+qqs9chTg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS0PR11MB8070 X-OriginatorOrg: intel.com X-Rspamd-Server: rspam03 X-Rspamd-Queue-Id: 7454FC0004 X-Stat-Signature: bu7e65qstgnip5fpkn7jppqdhhbfkhx9 X-Rspam-User: X-HE-Tag: 1745468858-214493 X-HE-Meta: U2FsdGVkX18wt1Uk7IrOps5pZwsMOkCaH8TJ4lZ6gp1A8mnPBcWPO1CsRTC2YT2M6PgtQv4oHlZhmnF6pm2YHJTJwmvr5A2at6M6/QOiZDQje6ozdf3mSb3i3ZEBIGzDkuy5TSiuUcRCmN4HC8Fd4hFckaK7o7XG8c4rnHN6r2r8WWOCSh4D7TA2y2gYEBvRYh/dP0ab9p2XBxk6GjHo6foo1VWrfe6uybsMCpSVZ4114QrAYE5g4HDqY3ARK4BLq7Y2X97JiIhLfbb/9by1OvjAqdtIRCkF1+Pz/ilbLZ4uZ0QgdoUbOz3o5sGotR5tpnnc3jyWuulOwqplKd1buYzUws11Z2QiEhuOrEsMO+OsoupZqgJNi7K7Ssj+Ecej4m3WV2cI0tP1qoVRKVdTKEtjK4RVHl/C+73J8OsuNy6vLW3oVM5qX5eMDhYZdH4CST5ItvNM7HzNERD5OUeKWC/yBNXmFh7o0ue5emo0TfWesddYK+4i8au/E0mRJVTxMoYiYPTelAKLW4EN5NUTzteDzEZO0WHErgbgLFt72aGFwSZJ9grXONAH/F5A78GI3mQsbVfBNMwXaoiNmVcf9UZqRJ4/j1Zb+wcX8jNwYZYO0hMNXzTAdCzkkqrMPvGVzNvPrMqhWyc+nz41iEydA66C983YlnSUykPmUX65NHekGfsxlIHaIVT9BITjH9nLCC7heoL0gfV0vxnWwevBe2twyDu4zA1vXaqJjkzBZKBw6ChZxpYxlRzMHSN7M8yELIAYyYck2AkmnA8GFbDAQpDbam8rn2D90+HZtLwo0t9q2Zh86VIc5e7yNrS0No8bfQaGG7nWW8M5S+u3Kotuee6W2FsQpQnXIMRXKbHxccW/V5QwIUZUx93GoqfoPW9No+veCxtBZNZyLxrBF55T8fB9EMY77o26QLX7NdalxQz9iE8QSw2eKxkTUNiJJA8sEJ6No+ulTdx/d/bpeGu sDA0ac/R iVMpjgoARnwq8gwv7wLYMWVsz3U6sRWrpmej7Jy2hgrl61ggv4fbwLcW1ejPttK091ioKGJjbEiiX7OFPj6PDpljX1r6CmFPpMYnaubFwNl4Kdzwov6Uq2PPyt6s8sSi6Tl1O1VTXY5xphPmSRchg65S4fY8gZb9ifLrWF9BR7h5mOF7IqYy3mUbl+hH4BzQ7yPbBMgrtvC2CsyC65id6WZ9jugC0KygCH9KQYAj76GpnordfGcsjdD8d1PA3GdCOg1apFlylyCcrQpjuPi+qtxXyGdosNqbIwJUWLr+i79mwN5vj2r3mwRmerLdHF9ZqfkoP7v2rMUBa+kyzbDwdcafEwTaxIhVopbve10HlaRmhVltZ4bK+OW9PC1Ml5YUb0+TLTJjZr7mazQ8s4CpxLP9cf4fpYuKS8zjZ5BdZCG6sm/u82pDto/MeXm9Nmy6AjGziaMdYXAKSvU57zoSROaEEQOWo2MXF223/Q6nMRo2SDJFwT0ITs8GZUCs1JhEA4yPWZg6b7BFAeZLKRFoOGCTs0mSbQ3ECL3YHVrB5TN3a0znzMKux2Fu6Hxhlz0THNhKivGkEHNy9DDyVfGcHHTWfBKFn6VolhM3sLpEzKI+2kGzZ1jyFJvJrDTTZBii5MauyL51aKjFruhPIxqZWqYu7GGlU4YuN6suUathJSSTHVC6xjZquIxXj6iUxynL9M1PK8OQJcmkN0mm1g4p1Cr3Enw== 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: List-Subscribe: List-Unsubscribe: On Thu, Apr 24, 2025 at 09:09:22AM +0800, Yan Zhao wrote: > On Wed, Apr 23, 2025 at 03:02:02PM -0700, Ackerley Tng wrote: > > Yan Zhao writes: > > > > > On Tue, Sep 10, 2024 at 11:44:10PM +0000, Ackerley Tng wrote: > > >> +/* > > >> + * Allocates and then caches a folio in the filemap. Returns a folio with > > >> + * refcount of 2: 1 after allocation, and 1 taken by the filemap. > > >> + */ > > >> +static struct folio *kvm_gmem_hugetlb_alloc_and_cache_folio(struct inode *inode, > > >> + pgoff_t index) > > >> +{ > > >> + struct kvm_gmem_hugetlb *hgmem; > > >> + pgoff_t aligned_index; > > >> + struct folio *folio; > > >> + int nr_pages; > > >> + int ret; > > >> + > > >> + hgmem = kvm_gmem_hgmem(inode); > > >> + folio = kvm_gmem_hugetlb_alloc_folio(hgmem->h, hgmem->spool); > > >> + if (IS_ERR(folio)) > > >> + return folio; > > >> + > > >> + nr_pages = 1UL << huge_page_order(hgmem->h); > > >> + aligned_index = round_down(index, nr_pages); > > > Maybe a gap here. > > > > > > When a guest_memfd is bound to a slot where slot->base_gfn is not aligned to > > > 2M/1G and slot->gmem.pgoff is 0, even if an index is 2M/1G aligned, the > > > corresponding GFN is not 2M/1G aligned. > > > > Thanks for looking into this. > > > > In 1G page support for guest_memfd, the offset and size are always > > hugepage aligned to the hugepage size requested at guest_memfd creation > > time, and it is true that when binding to a memslot, slot->base_gfn and > > slot->npages may not be hugepage aligned. > > > > > > > > However, TDX requires that private huge pages be 2M aligned in GFN. > > > > > > > IIUC other factors also contribute to determining the mapping level in > > the guest page tables, like lpage_info and .private_max_mapping_level() > > in kvm_x86_ops. > > > > If slot->base_gfn and slot->npages are not hugepage aligned, lpage_info > > will track that and not allow faulting into guest page tables at higher > > granularity. > > lpage_info only checks the alignments of slot->base_gfn and > slot->base_gfn + npages. e.g., > > if slot->base_gfn is 8K, npages is 8M, then for this slot, > lpage_info[2M][0].disallow_lpage = 1, which is for GFN [4K, 2M+8K); > lpage_info[2M][1].disallow_lpage = 0, which is for GFN [2M+8K, 4M+8K); > lpage_info[2M][2].disallow_lpage = 0, which is for GFN [4M+8K, 6M+8K); > lpage_info[2M][3].disallow_lpage = 1, which is for GFN [6M+8K, 8M+8K); > > --------------------------------------------------------- > | | | | | | | | | > 8K 2M 2M+8K 4M 4M+8K 6M 6M+8K 8M 8M+8K > > For GFN 6M and GFN 6M+4K, as they both belong to lpage_info[2M][2], huge > page is allowed. Also, they have the same aligned_index 2 in guest_memfd. > So, guest_memfd allocates the same huge folio of 2M order for them. Sorry, sent too fast this morning. The example is not right. The correct one is: For GFN 4M and GFN 4M+16K, lpage_info indicates that 2M is allowed. So, KVM will create a 2M mapping for them. However, in guest_memfd, GFN 4M and GFN 4M+16K do not correspond to the same 2M folio and physical addresses may not be contiguous. > However, for TDX, GFN 6M and GFN 6M+4K should not belong to the same folio. > It's also weird for a 2M mapping in KVM to stride across 2 huge folios. > > > Hence I think it is okay to leave it to KVM to fault pages into the > > guest correctly. For guest_memfd will just maintain the invariant that > > offset and size are hugepage aligned, but not require that > > slot->base_gfn and slot->npages are hugepage aligned. This behavior will > > be consistent with other backing memory for guests like regular shmem or > > HugeTLB. > > > > >> + ret = kvm_gmem_hugetlb_filemap_add_folio(inode->i_mapping, folio, > > >> + aligned_index, > > >> + htlb_alloc_mask(hgmem->h)); > > >> + WARN_ON(ret); > > >> + > > >> spin_lock(&inode->i_lock); > > >> inode->i_blocks += blocks_per_huge_page(hgmem->h); > > >> spin_unlock(&inode->i_lock); > > >> > > >> - return page_folio(requested_page); > > >> + return folio; > > >> +}