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 49DADC369AB for ; Thu, 24 Apr 2025 05:57:00 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id DDB776B0006; Thu, 24 Apr 2025 01:56:58 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id D8B856B0007; Thu, 24 Apr 2025 01:56:58 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id BB7066B0008; Thu, 24 Apr 2025 01:56:58 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0016.hostedemail.com [216.40.44.16]) by kanga.kvack.org (Postfix) with ESMTP id 945A16B0006 for ; Thu, 24 Apr 2025 01:56:58 -0400 (EDT) Received: from smtpin03.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay08.hostedemail.com (Postfix) with ESMTP id 29969140356 for ; Thu, 24 Apr 2025 05:56:59 +0000 (UTC) X-FDA: 83367878958.03.DACD427 Received: from mgamail.intel.com (mgamail.intel.com [192.198.163.10]) by imf13.hostedemail.com (Postfix) with ESMTP id E1A6320003 for ; Thu, 24 Apr 2025 05:56:54 +0000 (UTC) Authentication-Results: imf13.hostedemail.com; dkim=pass header.d=intel.com header.s=Intel header.b=bDNGbB+u; dmarc=pass (policy=none) header.from=intel.com; spf=pass (imf13.hostedemail.com: domain of chenyi.qiang@intel.com designates 192.198.163.10 as permitted sender) smtp.mailfrom=chenyi.qiang@intel.com; arc=reject ("signature check failed: fail, {[1] = sig:microsoft.com:reject}") ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1745474215; h=from:from:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to: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=YWp/2vDwP9xnRBM2uZTNXTg8K+Y9kKyteYtHcazub/Q=; b=rmXQlEkoTJmilY0s8C5CE1AaSkAsfcPidpLAmMOUV8cPQCB782BUf/Cd1fWawwCSjQoBXV TCuXjww+/4Y0bJMYiFdaYM3p4H0gb3kbMv3PrfSfHPYMEtoxpbr4gLJ1V/Gwpon4RC3pUl 1T7z/z0rNTnqzI98nITLq1N/bq4t8bg= ARC-Seal: i=2; s=arc-20220608; d=hostedemail.com; t=1745474215; a=rsa-sha256; cv=fail; b=OQUOqsf0jToTSDz2iIVQeCjpq64NuMakEe5PoSdW/fZBNVytDA5bZXjR5pnlRpVgiR1aFk ro5wVU+JrDPWWAsuj55+CfqicvBwJTXvpnbG7U9RjrJ9rmU3XiOLBxhfFspEtqq90Djwal g1ET1GSaqF5rGyQ0ejp5mP8j+2NN2Qk= ARC-Authentication-Results: i=2; imf13.hostedemail.com; dkim=pass header.d=intel.com header.s=Intel header.b=bDNGbB+u; dmarc=pass (policy=none) header.from=intel.com; spf=pass (imf13.hostedemail.com: domain of chenyi.qiang@intel.com designates 192.198.163.10 as permitted sender) smtp.mailfrom=chenyi.qiang@intel.com; arc=reject ("signature check failed: fail, {[1] = sig:microsoft.com:reject}") DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1745474215; x=1777010215; h=message-id:date:subject:to:references:from:in-reply-to: content-transfer-encoding:mime-version; bh=mALJrE/BtP/1fdvPNdWQEozH6ELk+IM1NAqqclaAdW0=; b=bDNGbB+ujSWiPiArf1LngSRE0yEyuhAMcNFlQjNXe+4J4I+KoQYW9qCF 6DnwxSkpYf3LyQ8RcUx+yqD/6lOaTZqy67jomo0nHFkjUnA8KLBh2qneJ 9UfOq9BcLo9Itjsl1plnOWinDMC9MvaF0B/K3KS1BCL4pPcefJuB8Xdpk JTpXznjwi8mU0LcAQU1CkHjBH1SVfqEbyqiKfuP+aWDqGHfuPD/4oswlC R2zGIJZYJN/VSCtwTDY274RMbLn2e9BtF7GNA9Y+jHp96WQdnYkgne+8k s/fCfziJDMPYPrUv3Bw5zI/Bb+A+X7UDkmjFT5fVuB71bMarWByXC4mFD A==; X-CSE-ConnectionGUID: pivR63ENS3KKapy3mKmdJg== X-CSE-MsgGUID: qytMi1Q+QriWM3WK4w7aUQ== X-IronPort-AV: E=McAfee;i="6700,10204,11412"; a="58463941" X-IronPort-AV: E=Sophos;i="6.15,235,1739865600"; d="scan'208";a="58463941" Received: from orviesa001.jf.intel.com ([10.64.159.141]) by fmvoesa104.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 23 Apr 2025 22:56:53 -0700 X-CSE-ConnectionGUID: rFOsZyB+TLeqREByfNTEbA== X-CSE-MsgGUID: AHuBRHkNSxyw2Kh6sa/KJg== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="6.15,235,1739865600"; d="scan'208";a="169730230" Received: from orsmsx902.amr.corp.intel.com ([10.22.229.24]) by orviesa001.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 23 Apr 2025 22:56:54 -0700 Received: from ORSMSX901.amr.corp.intel.com (10.22.229.23) 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; Wed, 23 Apr 2025 22:56:48 -0700 Received: from orsedg603.ED.cps.intel.com (10.7.248.4) by ORSMSX901.amr.corp.intel.com (10.22.229.23) 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 22:56:48 -0700 Received: from NAM04-BN8-obe.outbound.protection.outlook.com (104.47.74.40) by edgegateway.intel.com (134.134.137.100) 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 22:56:46 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=uij7DNLlCCEPM2DnTo9Sf7mHOQhSPwd12et4y4sj9ksZzPD1pQXJbU00iopv9CN1m11yp4YF4TpLiv1sXA2wD72LKVBelyaOd9pZHhcUh9Aqb/x3PP3EzcIEB9ceOpIGjkASJyK5Opba+lweykW2awEaA41t6aRcy2VqWa9NBuOG0VGwDSyw3xQmr23Ip9jgGPiR6EqHBM6k8jKzM727vPJtd14Aa8b/lJy8t40s9Kygbdy4HlsZJ8S5beYPdNzTOxILZ7eW+tSBxLlPMmMkoTUTVa9vM6u7Cx0agMmRFh4il83bmkBaZ8uv2MbT41rUgr9RD5LX0n9N/TzS8rQxNw== 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=YWp/2vDwP9xnRBM2uZTNXTg8K+Y9kKyteYtHcazub/Q=; b=nC75xVwhE3wmZDUUTZu0qDGyXfwxJU+NyuFvKYtwP1HQ99SyJlcxOV/tWHEi1pPSlllGfkdCt2BQ9cRqphmM8weWwVn6mNF8wMwL96tIXNx0lFdzyonrSnj4qOmg8/Qxa2XggXqDugw+poHFHua6vw647hpZcVCrsaaQKIC/LwB6CZe7F0fF5v3LrRWAkswcbJ/EgkeQPiZ09lHBYs5q7ghIs92xxkptTE0tRu0NET8/e6MJU1PSqgySBMvbkv3NPvDPQLQr8pZ+Sy3hYKdawCKEWEqDgDEfmxOBPCg6RLBHxp2X2MqvPDBHZdL3ZTQs+t5jrf5PfS0gsTz5a3IVhA== 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 DM3PR11MB8735.namprd11.prod.outlook.com (2603:10b6:0:4b::20) by PH0PR11MB7445.namprd11.prod.outlook.com (2603:10b6:510:26e::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8678.22; Thu, 24 Apr 2025 05:56:08 +0000 Received: from DM3PR11MB8735.namprd11.prod.outlook.com ([fe80::3225:d39b:ca64:ab95]) by DM3PR11MB8735.namprd11.prod.outlook.com ([fe80::3225:d39b:ca64:ab95%4]) with mapi id 15.20.8678.021; Thu, 24 Apr 2025 05:56:08 +0000 Message-ID: Date: Thu, 24 Apr 2025 13:55:51 +0800 User-Agent: Mozilla Thunderbird Subject: Re: [RFC PATCH 39/39] KVM: guest_memfd: Dynamically split/reconstruct HugeTLB page To: Yan Zhao , Ackerley Tng , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , References: <38723c5d5e9b530e52f28b9f9f4a6d862ed69bcd.1726009989.git.ackerleytng@google.com> Content-Language: en-US From: Chenyi Qiang In-Reply-To: Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: 7bit X-ClientProxiedBy: SG2PR04CA0209.apcprd04.prod.outlook.com (2603:1096:4:187::12) To DM3PR11MB8735.namprd11.prod.outlook.com (2603:10b6:0:4b::20) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DM3PR11MB8735:EE_|PH0PR11MB7445:EE_ X-MS-Office365-Filtering-Correlation-Id: abe839a5-64d4-4cca-3ce7-08dd82f4b4f1 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|366016|1800799024|376014|7416014|921020; X-Microsoft-Antispam-Message-Info: =?utf-8?B?dkQ3bGNqNlQvbzVKMUo3bmVydjdIaFZnNTd6eW5XTGtCNUoraFRsK1ZWRkk5?= =?utf-8?B?ZUtLd3lnZHhKbWxDNTRjdGhOYmpqWmJlRlZ4bXUyMVJnVzN3RWJRZ2U4eWdB?= =?utf-8?B?cit6QnI3bldXZGJKMk96aDFOSWhGWmY0ZXd6cFZsdy8veFp3bzNlQ0d6U2xt?= =?utf-8?B?RzNLdm5MSXBPVnNQRitkcytoMlJoQXVOK1lRdFBhS1pwTVVxOTBHTTAyRHln?= =?utf-8?B?Z2VUU2VuNG15MCtVaTJaY2VTVHBSU21lQlNLRENrdFdUMjJ0SUxLRXdoajBx?= =?utf-8?B?Wld2QUJMRVpMOVBvS09jQ1FyVkI5TTlNL1Q0UTBjaU5RUzFYQ1Bsa3FWQUtJ?= =?utf-8?B?a0dxZUJLQkJCc0ZWMlNsQzZ1Q3JzbGhzZHNNcVdvNjBMR0hKVHBUQTlFUEM5?= =?utf-8?B?eVNFcFNsMVB3WkJieHZpRGszYnRBVW5nTlpleUhqcWpwaVlWV3VFSkwvQ2Jj?= =?utf-8?B?QWoydUs0dGJVeXZOa3dxcU1vNWcxS0wxRGVNVXJrWGxZWnB3eXZxMDVMcm1V?= =?utf-8?B?V3M1YW0zelNZY3I1bnFxRlp3b1Z4MGtSaDkzTE44cjloOEtWTE1TU1hBdVZx?= =?utf-8?B?MjFTRWJ2S1c0NEV6ZzY2a0VBS2Z3Z1ExZk5RRVlZWndDbkRDK0F6OEUyM04z?= =?utf-8?B?TkloaG9vd21jYW1UTTF6TUYwS2F3dm1kTkJIVDd5bkRzZ2VDbDljcGVNNGkz?= =?utf-8?B?UUY2WlZLU1hGckhWVStIREVFWkdvbHlpN1dJMEpzRWwzUndncnZEV3NlV1VE?= =?utf-8?B?QVNqa0RucTJsb215dDB6cGYyL3VJbXd3dWtvVk01b0c1L1Focm9jTjN1TkFJ?= =?utf-8?B?SVdaUCtITmFpanVrSGJXcVFtazZmMnNjNnFzdXRwQmpDUzVSSTBKWC9nelRY?= =?utf-8?B?TnhieU1RVnZmSG9RazlNZGk0U3BJWUdPa3AzUWpKT0ZrOWRlWm53aWlBWmto?= =?utf-8?B?ajRNZ1MrcXAzTGFSUjZuR0JPL0pmRlp3anBCSkpnN04zblVkRVp3RmViTnhD?= =?utf-8?B?QWtJMjM2dEg2TmdlNS9yWVdpazhmNXpwVkNMU3MvZXI4T2JLNFdTMjZDMk5P?= =?utf-8?B?OUlyb01kSXQyQ09YOG5VblY4eXRiaTBuMTJPa3BkcWR6TmhFak5ERFh0Q00v?= =?utf-8?B?ZndFKzhTbDNvaE5GT045ekk4R054RDlERzc4K0FnMW4zWVhEUUp4T3hRbkNE?= =?utf-8?B?emsxSHNyT1RSZGVyWEtCUHN4SjFkcXN5MVh1Q3lGSjZnQUNNTCtCRmp4NjI3?= =?utf-8?B?VWlQTEl3TUVrMWFBRXB0R2V6NnZuRHYzUzQxcTkvcnZPZXAyMVZFNG5FRW5j?= =?utf-8?B?MEptd0xIaHJKdFh0WHNvUTVMeWt2RGdWQ1NZMzlRSHNWYURpVklRbWdvRVlY?= =?utf-8?B?WGUrRjZ6T2RKUGJsNHpmSjBLMW9NalpnOUVvTG9hSlpoUVNHVXo2SEc0eXRp?= =?utf-8?B?RVA5WTU1U25HME9qMDJjeWQzTVV6K0JCMEhWRWlwaE5teWIrbnVDOUtDb3Ja?= =?utf-8?B?L3FkanU1a0RrUWZNL3p0UFpqcDJYRitBMDZCU3Z4dDNEZDU2dTZsS0VWS2Y5?= =?utf-8?B?OGtCcytpU2FxV2lYa3h6M3ZkRWJOYWdrdkRUNVh2TWlKTVBBbDB6SGg2QXcr?= =?utf-8?B?d0k0anBVVEVNRVZLZXBjaUY0UFBRNGJlQ2NQc2VaVVkwMjRkWnZVdUlRNzlO?= =?utf-8?B?VVd5MGVpUlVGN3hWVEt0QWd2MnlZeUkvdlcxL0dKWVAvNWlsVzBGQjFqeXVN?= =?utf-8?B?M2NaaW42d2RjNEhDVjN2OW14QU5KWVd6ZlpRYWlKNGJzWWc3aXBQd2lZQndP?= =?utf-8?B?NXY5YzNvcUZwTnR4aCtjZUpUcWgxS3YweGNIM3B1STlpbVFyUDJ4OW5na1Rq?= =?utf-8?B?RjIwbm0wREJNNndiSFVSYWdTMFBDMHFNY3MyK3RINmNxa21tWC91emJTbU5D?= =?utf-8?B?UEZyL09pazVLYjNpK1lDdWhQNnNPT3JNNnMzcHpZalZCaFVKeHhwRS8xaTBT?= =?utf-8?B?MmNRWjZKb2J3PT0=?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DM3PR11MB8735.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(376014)(7416014)(921020);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?M1RjMlN2N0U5cndkUVpGbnRZanpiUUhEYmdrbitDVVNKZGRsT1NXK2k5ejJO?= =?utf-8?B?U0I4eUR5QlAxckNCc2djSUwyQTVYV0RsME9DbXlaR3YrODBHcytRZ0JsUnpY?= =?utf-8?B?RkMxOG54VXFrYUV0Yi9Fcjh1V2JLb3d4NnIydTZodURQWm1MM3ZPcEsrK3Ra?= =?utf-8?B?UUdvZlNTMW9nbmpVbHNZSmFhMFNHbHkzYkVkbTdmTHZCOVFoMjNZVHk0Q0xq?= =?utf-8?B?QUoyR2VsaDcxVDY3Ym0vMkMvWTNhbFVhOWs1eHl0WjNCN2x4NjlyRCtRTkFI?= =?utf-8?B?V0tsdThaRGN1eHdrOFhEOHBaSjkrWVF6TGJJNURHeGZzeHUzK29kZVU2Ym0r?= =?utf-8?B?WVNsdzdOZmlzVTVnYnRPWTI3TG4wY2tuYm5sTVFxS3hmMVpVRDlEN0VZbXFz?= =?utf-8?B?Z3Y3cjZkYm9TZk0xWG9GNVE4Y09Uc1BoRktUU0U1T0dlRVpTdHlGNzlEN2R4?= =?utf-8?B?NlZ0ejhMNG5RQU9RTzA4WTRUYkNFTDF2aytSOHhiQS9KNmgxRVZMUVZlNHh5?= =?utf-8?B?V2doaitFbWRxUjVPUXBUWGxvWGp4c09sWFRtU3c1dnU2YlFsUkJSUVEwUS92?= =?utf-8?B?amM2bGtzMU9BbUhCdnhGbW1teFFweEgwcHFmcjdqNUtZNWZSVmZYTTl4clVm?= =?utf-8?B?VE0zYXA2Q3M2dThYMUxpUmU1TlBCVGZZODlKeGpoZkxoMm5tTmpRV2h1cDI2?= =?utf-8?B?WERGVWwwR2VNcndrb3B5NnQ4SXdlUk1VWk5vUTV4WGNNRFN4Y3A2eEZwWHF2?= =?utf-8?B?VFIraXJFSkNhekE0NzB6TnRFN09pYWJzR3NIZnpKZHV0Y1lWek1SblRxQU1q?= =?utf-8?B?UkJ2dnRpQXlhUkVmUVZGS2VUaTYwQU9KVjVXNXRRZXovd091Sko5OUdpOEdP?= =?utf-8?B?eXRDK2dOYTJyeWk5N1AxU1VBcW1UNnMzaE01dUVVMzNnMDBXZXZMckhERElv?= =?utf-8?B?MFFsQzdST3NBYVNuSmtHN1FERkQ0bnJuN3NMalNUWm8wYmJvczFyL1J4T0RB?= =?utf-8?B?U3FIT0RJN2FqUkFxSjRQelFDVHkvUTJ0OTd3VWlBblZCL1RSQ0pMSUlMMTFC?= =?utf-8?B?SWRaRFd3ZnBDK1dORXhiMTBXUDhIVUVzOStTK1o3U3g0TVU3UW5jZnRjVnhT?= =?utf-8?B?UkVOVFlWL3Z5czJlenZOK0VRdGIxOFVFVDJzMGRvTklBcW9LbjR2S3pZa3No?= =?utf-8?B?TUlmVnVTYkhzeGxYWXk2K09VWnFmQ24zUVdLT1FCaDgrZUxpNlYxV3lMS3pS?= =?utf-8?B?R0JQT0VlQXc3TE54cjdLQi9yakpSU0RjTkVhNE9MeEdLckFaNjNvWHBLL3VS?= =?utf-8?B?alh1Tm0rWUoxR3JQRUlXV095WC83NGtOVHNsWUg0TTlZL0xVSzEvS1loN0xr?= =?utf-8?B?WTlwbC9OcVhTd0YwWmVuQW1nTTRjVFQ0Sk13VC9kK09ZNG5QRVhxVzNWRnFk?= =?utf-8?B?WGdxZ3kyc1Q1TmdDNm5jOTV5VVNMWDc5b3lNM1I0TFh1OFhXdTUxcHNSeFR6?= =?utf-8?B?Tlh2MmtTREdCbU5KZWJTaFdQQ0N4NTZMZ0pwM1NwVnZlSzB3SU96QkhObEVT?= =?utf-8?B?V0J5a0dsTkZjeVJ3QXIrTVdieHdhNVY0VlQybENoNlZFZkE5cXU1ekVRWWFa?= =?utf-8?B?Nit1M0NIcG5jZlZRZDFoYVlCemZPL21JOWlJRXBzbHEySERGM09GWDFWSkk4?= =?utf-8?B?RjN5M1FpN0VTMVJKSTNHTXZ1cnhoKy9uMm5GcmlNREtiWkVxbFJrN1BONEY5?= =?utf-8?B?TDZZQTQ5c2JSV0NvYkxiM0ZtaUhnbU12aVgvU21oRUp1Z0xBTmM0dGsxY2N1?= =?utf-8?B?VEQxSGNUdm5yNUJtZUpEZmpLSDZiVkFlTzk2M1FGZFJuR1JsOXdJWGpWdUZV?= =?utf-8?B?WEt4aW5vZG1lV1Rjc0YxZitMQ0YyMjJPL1NIa3dvcEVyUVZlYlBwQWRiek1s?= =?utf-8?B?d2JnRUNkZXV2SEFuS0p4N2ZjNUV3eTJpSDRIVytUTmJIMXlPQUtpV3pDUytG?= =?utf-8?B?a2JaMTNEcmlwT1dETlFPWkI4S1FYNG1xNys3MFVtTEVNMHNnR1NxbXY0N0xp?= =?utf-8?B?aDUxSU95WW90ZkVmQ0JZZ09OejBMZzFidVp4L25ESkVYMi9pNjdyY1UwZDJw?= =?utf-8?B?V3lGWjA2NDd1QlZWNTRlc0NmTVowRXFBMkJDVzlJaTZpSEdURzhTeGdwUFl5?= =?utf-8?B?UGc9PQ==?= X-MS-Exchange-CrossTenant-Network-Message-Id: abe839a5-64d4-4cca-3ce7-08dd82f4b4f1 X-MS-Exchange-CrossTenant-AuthSource: DM3PR11MB8735.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 24 Apr 2025 05:56:07.9947 (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: ZpecgSjv6BWeQvFPLluA4qJ9eDgF1h22PPrCTnrVUB/vQzjry1kq0jeTLfBBbYriVivyjaiby7RsT05I23FBjA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH0PR11MB7445 X-OriginatorOrg: intel.com X-Rspamd-Server: rspam12 X-Rspamd-Queue-Id: E1A6320003 X-Rspam-User: X-Stat-Signature: rjjykqy5usq6osmnda63cmygo6qd9t4m X-HE-Tag: 1745474214-176147 X-HE-Meta: U2FsdGVkX18D8pnNipXsV8ZiU/draXdLOgwX/E7B8B6G5cYhz7fzJJCCFp9ODpzn8rcLDqhY6kFg3zGVNvNx76pjCDfL9/LH3wWceaZkUD3nCrR96711YIGBAx41tGe31de7+P0IRxpKdDKSn9RHke97epf36BmfOhv18qVgwIurQJJcMlNfzb0kAyQZkui81R0DqUuoXKlTA3wLqpAUZzfcmRp938XGJrqgK7VsqaQt7K1FP6y8FtHE58O8KRxwdUvIl4BZtlS+XZnTsZIN3exBA4zYOCKVJgsSn8T28KfRnntMyPFp564R5OSaTHhT2VWQJ+4D1i1HKdFL6o9/LfFLGphGTSjbN0CumloGUD65O5xhfNrmlOFVcWqLuMVtt62uteaUewugvnGEZvCOnyPFxhI14xcbh+xiIn38ALmfKUGZ8wgl2KZw1d+tZ/PN5jdKmC18IJI7EaWew5uqnD22yMycMhLhKc+4fg9rP4a30Up4dlKQbNZewleoCJoAVsvNaxL93zJd5V1LSqVL5XkXGq0o3MeBR4GfdnzS8fzdYs3gh3/OUzugaA6YVnsyz5+Zxu/nFs4uMXarvFqGWUUPqqImcerR07Kk/I3tlnTNm2MvCIcK+BBFUq0i1DzQSJ35v+h9kPxATekHYnCtkXBl+e/5oGCw/lIlXKOzwRtFmGA6qNY4SfZgxDQ/NjewqqdqQGvH/SiSoNY904jDB1YlppI10SNBskO6aK/wHg5yoITrSWwgSis7AuIIVJJVXuqr8zjnRsdVuZo6gXb7kzqxUXsPtzqM8b5j7E78Xw8pHLCDsW8Dnp+ZGB+8I5XSxTVHoCG7DsXrTVPvBS53OS0jCUuAz0pNb6gyQMZH/vV2BDM3+h8hPMvFrw1Cm3q5LwXBKphzVLDO2UnEHxqrFB/qvcZ3FKt/TV75tzJDN1k5y7MffY5QMicchSB8Y08DI2Pqhv2UOy79Vpyz2Iv FYQ5y8oO QrBPb2gK6sFfZypncdI9Zo2kBL4SyZUCFYsEdv79xeaKRUudk5InRryxkBfYCKe8Kvn2NecGUDNLOjcNDQMfOcIy0Tz8TjyAqMkrCfqge4XDmFCQy7ulowe/KSMevRIcHGNvC4lGnycgxFbHSPM3EBySRtwwrUMUUzWcLTWpx+aeR70SjVvmM2SpAIdft3WwrIsOC3s5BVVwpnY5yxiZEcCrJgyRtpt2ueJC4/yIk/HOSFOZlsPe/RXAzVyAyVMD1zE0+PyODaUP3GHT8en6VmKTZEoQIrSvFP9EsP5xP8xFZgAIiM8G3KjhTqlX5HNG4f0KVC5hd1JMpu1NtBAX+tpo3Q2m7MlIvl579hKxzzaKrr2QaSYL+LeKJGzZWe1EpTt8r44c+1oaRyfNqw+lxBxyegm7GQO5MZ6hkgJvZlWhLJ1BUC67DVCO8venap7PNioEeaNsnGw2o57m6wqnBlhoQsbNWz1tWEGfzyhb1GfXCErdrCq5VcajbiFeLd02mOiYUzwK5T/DXjm7czBWG2khKRrkE5wi/4JD5Bj/MJMJNdcE+8uQFbyPkgujoHwUT9XmE430mzHrE5kTcvzPq9JcJmYAm0QuZhx9DhdmuQPQ+rxz2mQuUIIBVUg== 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 4/24/2025 12:25 PM, Yan Zhao wrote: > 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); Should it be? lpage_info[2M][0].disallow_lpage = 1, which is for GFN [8K, 2M); lpage_info[2M][1].disallow_lpage = 0, which is for GFN [2M, 4M); lpage_info[2M][2].disallow_lpage = 0, which is for GFN [4M, 6M); lpage_info[2M][3].disallow_lpage = 0, which is for GFN [6M, 8M); lpage_info[2M][4].disallow_lpage = 1, which is for GFN [8M, 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; >>>>> +} >