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]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id C9F43D3CC8A for ; Thu, 15 Jan 2026 07:13:28 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 399FB6B0088; Thu, 15 Jan 2026 02:13:28 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 3471B6B0089; Thu, 15 Jan 2026 02:13:28 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 1D3D46B008A; Thu, 15 Jan 2026 02:13:28 -0500 (EST) 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 0A8116B0088 for ; Thu, 15 Jan 2026 02:13:28 -0500 (EST) Received: from smtpin10.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay10.hostedemail.com (Postfix) with ESMTP id 7F07EC111D for ; Thu, 15 Jan 2026 07:13:27 +0000 (UTC) X-FDA: 84333332454.10.1FDFAD3 Received: from DM5PR21CU001.outbound.protection.outlook.com (mail-centralusazon11011021.outbound.protection.outlook.com [52.101.62.21]) by imf21.hostedemail.com (Postfix) with ESMTP id 93DD01C0007 for ; Thu, 15 Jan 2026 07:13:24 +0000 (UTC) Authentication-Results: imf21.hostedemail.com; dkim=pass header.d=Nvidia.com header.s=selector2 header.b=W5dcKCEv; spf=pass (imf21.hostedemail.com: domain of apopple@nvidia.com designates 52.101.62.21 as permitted sender) smtp.mailfrom=apopple@nvidia.com; dmarc=pass (policy=reject) header.from=nvidia.com; arc=pass ("microsoft.com:s=arcselector10001:i=1") ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1768461204; 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=07DuJI6A/zziTK+2Pd6aWysmc3w5qjz3nmFIuYNUkaY=; b=OMzOYKbv00ia6tAn9JKm70RzDxOQhPB9Vqx8Qt7dhtJwTQaACe7iMerSG5ATD7fr+Wvmbp 4++IrrG931nFftb0h6iZLX7lgkP8krXTvcPnCyqrcFQSELR9e3Pw/sVRgsmIzi6ardlpv/ ZwaAGR6airu9KpHiMmQ9Qak49lSj+rM= ARC-Authentication-Results: i=2; imf21.hostedemail.com; dkim=pass header.d=Nvidia.com header.s=selector2 header.b=W5dcKCEv; spf=pass (imf21.hostedemail.com: domain of apopple@nvidia.com designates 52.101.62.21 as permitted sender) smtp.mailfrom=apopple@nvidia.com; dmarc=pass (policy=reject) header.from=nvidia.com; arc=pass ("microsoft.com:s=arcselector10001:i=1") ARC-Seal: i=2; s=arc-20220608; d=hostedemail.com; t=1768461204; a=rsa-sha256; cv=pass; b=T6IuzvmJd9ZHliSkrBqm6+nGd0Jz1sn3tCw2ebMlrIUK3M88BRFyh9Op8XSnf18fKBnSSJ 57VcLBoQB+tkD7yJmqreDe5y8CZIUtfoyMtTmLCu+6aKtUZkpFlpNJtBO0p8+bd2P4vX2d tP42k261FDM7Nt6c6ux3zDuSa8DnzC4= ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=MriPi8lXMJwRVeTQAfCqbt5Pt0KrypnrC6/7vIVULtQaoCZGh5P2wWLFgfspaXM9sZksisG65hASinj583X7b7we2w9dHL3unKMGpevtuYyOwfvjM0IGGUhyycXHAmdWK93sUHLVO09WdJ4Q93MWF7qUqbSynVYXWaOTTFgM8PygZ2cIGfxsWqBxg6KC1oViI+hcbYgAFas4oi1YcuYUE8RRnQrPpeBPQcfBI7j3XY3TtPTmdcZ4QioN+bTHWtXaurohLoyGp4oZcXJwQSf+L0eJrQuOg0UQ5DH9/qdksI2E+5co7dk9lzhsGK3P/rwVsyy3+55eoLGz6IcEAw7drA== 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=07DuJI6A/zziTK+2Pd6aWysmc3w5qjz3nmFIuYNUkaY=; b=biiWFI+oAecnTqXSNswNBlBiDtl0k0my60jlL3vMZvfpS9XhIVCFdboxYoIMjJm72s5U5zJR0I8w0ne4zzJ7emS9Ie6s5hdkJquIQ0BgD4vXHM3EAU/xM4v5oTW6XP/g+tpcrD8wJ47Qo7ctrSrFSK2HIZggxb2I6x5JsySIdyCJC4SZLLRbGjxZBU9q1enk+QcOrx+TKPWha56vYfdjBwOepujxgYr7PGY2ilKQWXFo4b8UTGMHQ2/cXeM7RZLnhdnO3viNt6wrcU06BalxJMo3UpLQRzxdtC/7pWxbWDZAwKhh4e3DTKD9bDuC9uNaTofIW0K92pn3uEEX1Zm5gQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nvidia.com; dmarc=pass action=none header.from=nvidia.com; dkim=pass header.d=nvidia.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Nvidia.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=07DuJI6A/zziTK+2Pd6aWysmc3w5qjz3nmFIuYNUkaY=; b=W5dcKCEvFJzJT/1hKm4GaXkEDU6mvM+UZA3JFMcIZtVk0DzfYfYUo9J3hSWnQ0eK2PRbq2kcoysYHMLQa0AqZchQmH5vbBdV+Uruf3PbSr0ppfKz0DOt9KlTp7rQwu/diCCxq2T6X80i6NWIeLcHPhe3D4RoAQ6+A4EBoTPrUDCRb8SDEiu1V6O4DDYZPaq6N/2i0vbX8AjrWQEIFRBhMvVWpoKpzdAAuyBCWesCG9s4PxFBEgJkoncDL9xNAE91lR1X1p7DjnriNRlBI40oVj9gSknnPfxV550fawyYJm9rVDRy8ndePh0II11Pn1LgOPPpDUkrkaD2RaU1LUdY7g== Received: from DS0PR12MB7726.namprd12.prod.outlook.com (2603:10b6:8:130::6) by PH0PR12MB8127.namprd12.prod.outlook.com (2603:10b6:510:292::6) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9499.8; Thu, 15 Jan 2026 07:13:20 +0000 Received: from DS0PR12MB7726.namprd12.prod.outlook.com ([fe80::953f:2f80:90c5:67fe]) by DS0PR12MB7726.namprd12.prod.outlook.com ([fe80::953f:2f80:90c5:67fe%4]) with mapi id 15.20.9520.005; Thu, 15 Jan 2026 07:13:20 +0000 Date: Thu, 15 Jan 2026 18:13:15 +1100 From: Alistair Popple To: Matthew Brost Cc: Balbir Singh , Francois Dugast , intel-xe@lists.freedesktop.org, dri-devel@lists.freedesktop.org, Zi Yan , adhavan Srinivasan , Nicholas Piggin , Michael Ellerman , "Christophe Leroy (CS GROUP)" , Felix Kuehling , Alex Deucher , Christian =?utf-8?B?S8O2bmln?= , David Airlie , Simona Vetter , Maarten Lankhorst , Maxime Ripard , Thomas Zimmermann , Lyude Paul , Danilo Krummrich , David Hildenbrand , Oscar Salvador , Andrew Morton , Jason Gunthorpe , Leon Romanovsky , Lorenzo Stoakes , "Liam R . Howlett" , Vlastimil Babka , Mike Rapoport , Suren Baghdasaryan , Michal Hocko , linuxppc-dev@lists.ozlabs.org, kvm@vger.kernel.org, linux-kernel@vger.kernel.org, amd-gfx@lists.freedesktop.org, nouveau@lists.freedesktop.org, linux-mm@kvack.org, linux-cxl@vger.kernel.org Subject: Re: [PATCH v5 1/5] mm/zone_device: Reinitialize large zone device private folios Message-ID: <5in4ndnpn2lwohjyxhibwxf7hidmens6twi7x2jtgwrnhye3jb@yuvuwph44fpv> References: <20260114192111.1267147-1-francois.dugast@intel.com> <20260114192111.1267147-2-francois.dugast@intel.com> <4cd42f41-660d-40a6-8365-e06fa4fca6a1@nvidia.com> Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: X-ClientProxiedBy: SY5P282CA0083.AUSP282.PROD.OUTLOOK.COM (2603:10c6:10:201::9) To DS0PR12MB7726.namprd12.prod.outlook.com (2603:10b6:8:130::6) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DS0PR12MB7726:EE_|PH0PR12MB8127:EE_ X-MS-Office365-Filtering-Correlation-Id: 89c51342-9a89-45be-5e48-08de54058fe5 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|7416014|366016|1800799024|7053199007; X-Microsoft-Antispam-Message-Info: =?utf-8?B?cEJuUW1IdlVhbFNuU0p4ZHFUaFF0QStPTkc2NXF0SkYwTmFWWGJ2eGRELzRl?= =?utf-8?B?RGtLVHlkRzRjaEx4QXp2Q1NqS2hnQ3VBL2xjb0FteTIzbklBT2ZoRXZNSzBs?= =?utf-8?B?bmpFK294Tk1OT01QdEI4M2hPTjB6YzlXSldwa0FGZHlYSXViZmRmNDhJd2VG?= =?utf-8?B?SVNCRnl1di9lUGx4WjBkUSswWk1kRnZpdXNRWnpwQk9tU3ptaWNnamhYcWZU?= =?utf-8?B?ZFJETXBEcWRxTVBnWEdLTzJxb3Jmd0swZFVSUERSYmpuOTFqeE91M2hhTDdR?= =?utf-8?B?MXFVZVJKN0NaQ2M3Y0dhRDVTTGlVTUt5OGpPV3VKU29yZzBVSjFSNTR0YW1G?= =?utf-8?B?R21BYkIxVGpjdjY2WDV3SkxYSmYrQ3EwK09MVkNSSW9zZUd3SFJjVG1VL0Fh?= =?utf-8?B?blZRdDFGRlc5RjI0bnRITzg5b1NkWU9rU3Y4Rm9TbTJDVjd3aDdWT0ZzT2s0?= =?utf-8?B?aFdCelNDL3FHMWxIQzRJejJBK0g2S0hybmxrZ2xWcWQ3dXR3czEwekl6Q0Qy?= =?utf-8?B?OXJxckthRjJ4d1ZocGJkb0V5aU9wMWl4ZEc3WS91Ym5CS0g5UHJzOXZNMnky?= =?utf-8?B?R1lUL3QweXcyVjBGakRub1IySXRjMjVhRkZpWnY5WW5JQU9FR2J1ZnhGRFRp?= =?utf-8?B?Mmd0d0F5ZzE3dWxPQk9RUzlENkczRnFEejVoSjJFQXFtN0NSbGROM2RuWXlP?= =?utf-8?B?VCtENFlkb1NkeElxRDhmUFl6TWhjVXRwQmNhbDhVRGh0NVR1emRpUFJMYTVB?= =?utf-8?B?M2x5aFU2c1A3WTJWUmJBVFZiK0Z0ME5MZXBMVmRYU1ZnUXJWbjI4dGZiR2cw?= =?utf-8?B?dEpnc2NmK0xESW03S1FEZ09nSFFtMkcwU1V5dnl0MXZwcUk5Q0FFL0JDZ2JK?= =?utf-8?B?MWFXd3lrV05wUFZqbzBoNFBKVXlVQUNseC9YOS9PcExEMWVWTkErMEdLQlRS?= =?utf-8?B?bE5ldU82N1JYa3ByNTd5UUJaZnA3UnBHSkIzY09mWVltY1BWcjltZWdRNSt4?= =?utf-8?B?dHArZVVnQm03blZpZjBucllSelE0RFlmd0o1c0NtOWtMNzgwSmFOcUk4cUNa?= =?utf-8?B?dDVSREQ5UzFZV1BSZFFyVXA3STFTU2N1aU0wYlpUYTVKeFQ3NG8zYmlJU3RZ?= =?utf-8?B?cCs1dVhpSXAvdnRmaW1VRTlSSVdwVURpYjlTRFlHTDJnYVhpWTIxOTZaYmlC?= =?utf-8?B?WVlrNW9xMHF4a1Q5eko4Qys4cDVOZENyL2FnYWFXQlR1cW43YUVmUjczZURj?= =?utf-8?B?WSt3SE16eUxRSDNySFM3UG92TmN2T3RvWVZ5a3R0cW53b2NrR3Q0ZnJXN0RB?= =?utf-8?B?VGZzVE9aMTM3eEk2Qk5sVjExVGI4VlB3SXUreWo4Z3ZZNzFUNkhhOTd5eHdL?= =?utf-8?B?MkpwU3gzWTZTVGJDRktCNERLTEd4enlYNGltOE5OcjQ5NXZVNmFVSWwyRjRa?= =?utf-8?B?MG05NVhJd2g5NFAzQWJ6VkQ5cXB6L2dSNHdxUUZNYjcra1lwUDdHYTRuaUV6?= =?utf-8?B?TE81RGJsMmhSYmJUd09iZFdISGd2QTV3QjRoL1daVjFqZFNjOFZPdi9QNSts?= =?utf-8?B?Z2lnSWlnSTNDbWdnWGxQSWxxWGE3T3FhWTlGZXlLWmFrRHQ1MTUzQjNlMTRB?= =?utf-8?B?UW5Xay9XZ3hHNVhsQXhTK20veWJxOFllRVl5NzMxdS8wOXVMakdScHJKdEVB?= =?utf-8?B?SUFQTGJwSy9aWFhuVzl1c2liYUZXL1lSWGRQSi9XOGFzakxsc1VQTGZBZVQx?= =?utf-8?B?dXhPQ0pRUHovUXd4UVB1WngzaVh3UWRqSVlvVE1xR3Vzd201ZVNoL0x2TWRP?= =?utf-8?B?aG5TelNSYXV1YlE2aVZac3g1UlV4cTJ6aU5mRUlEdzl2NjZRVUJsdkcyeUZh?= =?utf-8?B?cU1NZ3ByZVdDclJsL20rRE5DOTJYYkFFYmU2MWREeWVFSG0xODJXb1VXdFhh?= =?utf-8?B?a010bWxaZWp4SkZzVEtiN3dUa3pZQXBuS2dhZEtCZmUwWldsa3dpUkZBU1VD?= =?utf-8?B?Umpwa3c3aHJTcnhTakpMeHFOT1IvRURReFp6TFh3QVprUjA2TTd3RnJBcnh4?= =?utf-8?B?VnlHU3VuWXRYeThBeStMWjRyVElJZ2xnVFhzTENOaDM0VDAvNDRMRUQyNFIr?= =?utf-8?Q?Qk+U=3D?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DS0PR12MB7726.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(7416014)(366016)(1800799024)(7053199007);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?bEdUNktGK2xqRmdqOWMwNlNlVFFGM3dCcFBBMHNyUHo2aS80ZFNOUmdvbEh6?= =?utf-8?B?aVZPRE1URDhzUy9RTGpTMXNOSHJqV1pPaXZNT1crZmo4OU82bWpHa1kyQkFW?= =?utf-8?B?VVBWcXovV3JpdGF2UTBCV3VvYTk4V28vZ2VnOWZmbW5SMFQwZ0trV3ZMbnNM?= =?utf-8?B?eFhyUk5scVVFOEF5em93QUZhZXFJTUVBU3F2d0FxdjFIRGNFUUZBUHg3Qjla?= =?utf-8?B?N0k4Zm0vRiszeVZEY1NHcUsyQXEzcXE3bTVEM2JaRG5uNjVCMmNIZi9OZUhi?= =?utf-8?B?UnUzdmRVM0lDRmJiT0U4VkxiS3VGQ3BNc1phM1JIVjVyTzlLK1REdm82Mit5?= =?utf-8?B?T083eUtKYmJPYms0dnFDWFJ2UWNPaHNCYUxaclhrRVdvNkN0TjNjWWJid1Fu?= =?utf-8?B?dUVQWFNSclNBRlhhRkRxWFVGNzhSY1lOcjJac0J2c0NJcGVPeHpNT29iRGRQ?= =?utf-8?B?Vjlub0NKTGpZUUFpTmZ6OXZ0NGQ2cktqY2IrV09hL2l5dzFYTDIvZ2FtekJx?= =?utf-8?B?Z3ovV2Q4SUhFaE93MUMxL2Y1b3R0VmoxY2RnRWgwTFVjMS9KY2ozTDdleVlk?= =?utf-8?B?a1hweGxPRXFuQTViT3dMTUZyOVNuR1RnckRNelNZa1JMWVZBd3dXV0pvT1ZU?= =?utf-8?B?WU9KRU5NQ0thT05kd0k5SDNadzNaUEx1NG5NRjVUY3JPazk5eXpOT0JOSml4?= =?utf-8?B?a0pleFBvMnJUTkpSVmxqWlZvV1lBVjNLR1BzL0FkT2c4V25YWEwrUk9meWxY?= =?utf-8?B?c09oOW9VcVRaNzErVnNsYVg3QktTaWhmQVZ2RkxkL0pxenVnK1BibEw5cENy?= =?utf-8?B?MDJVNzgzeHBEaUdGcmszY3pGcWhtN0NMR216Q0JXQnpoSkdROWxIWEIwUUho?= =?utf-8?B?c2VXN2lVRjFJTEJWSmFVR1puNVZJWjJEMUVZL2NZeGVDL0tZRmZvTnhWSE9M?= =?utf-8?B?NVFIV0tMMUhQMkY3Ui9VZDFGYVBZVDdSVGROMzVhVkZmY09BZklJT2NpbFNJ?= =?utf-8?B?YUdWak5LZXJlSzZNTGdZQXZEUURMNXZVdUp3djFqanEwZW9KRkNlbHhXb2hR?= =?utf-8?B?LytUK21KcDFlenViamNndmdDNm95RVVza0hFSzRxa3hmUnZBbE0zVmdiV0ZL?= =?utf-8?B?NGdqMVBtT25mVjR4NTZ6R3M5NHo0K0hocjVFV2plSlg3YjZDNnl3aUorclZy?= =?utf-8?B?NkhiVkFqYmNmckwyUHZGUmFyQjRvV24yb1Q0UTBqd1BPTHRwamZsWlJTUVIz?= =?utf-8?B?Z2FMckVDK043by85djRWUWsvMEZCRnVKMFFnSVBFelJ1TVdBSzkwUTFqdFN2?= =?utf-8?B?N2ZhcUYrbVhvdFFVZEc5czRXZlZFRzh5V1J3VU5pT2Z6bUljUHk1dlY2TE5t?= =?utf-8?B?eXNQcVVoWmlBRWFsdkh3ZWZ6aWlnZUk4MEVYS1JOcTl6S0xxd0xOcnNHak56?= =?utf-8?B?RkFOcjcxSnQ0Y3Y3UFlKTnZsYmF3K2ZDRzZVVEpuQ3pIRlNCYnAwQ3ZDbFhk?= =?utf-8?B?SktYZDVUVTdLU2habHhwSEx3TC9EUHNWc1U4UjN4TGc5N2lHQWhUK0ZUZlBX?= =?utf-8?B?MHplS2NGeWcxNytxWVJlZFYvaFNzdmNITyt2WHJCak50bDIyeDRSVUxIQUh3?= =?utf-8?B?UGE3TGtmNWhXWEV4UUdzVkVCYWVSYStmQjM1ZGFqOTFkdEtPb2h3TStINU5s?= =?utf-8?B?Yzk5T29VTVRYRWNFUjJMeFZzR0FSblZtd2RCRVR1alROSm1QWVRELzI1QlZO?= =?utf-8?B?ZG13MkpvMWpaWFlFWGpqajZobFhSaHFHbTVRT203WC9FbERGOVlPUDdJckVC?= =?utf-8?B?ZTZORGliaDBSYUNjdWY5UGFVMkN3VTRXRTAyOFlHSUZkSE5YWGY1eTNDMDVP?= =?utf-8?B?WjFoTTBsVUJaMTVIMG5DczNyTHlKUXF5dGZTOTFHU2ErSDhxRFJXbEpGZzgw?= =?utf-8?B?QmFGVFRBWjE5MmZOU2pjZWRZUkF2RzRVYkdxOExTM3lIN1oxUGpZMTZKZVZP?= =?utf-8?B?TFF5VHBjVnc4VmpOQzF3ZVVQK2ZzNXMyTS8zcjdLZlpISEF1WFVCenVtWFh3?= =?utf-8?B?Z1NzT1ZDSnZyQmFaTnkzWmxuWHdOY3pjZ2VDS2pMeXZwcWVSTGxoa2ZuSFpC?= =?utf-8?B?QXJnWkV6cGtuK2hGQ2hmWTM1UUlLOW85NjJIazlCMXJ3MWNyR21KVks0Nkh3?= =?utf-8?B?ejBnMk9MQlZzZm9rcW5VUk5EM0d0cnEvWnFwdkR3Zkx2aUZBdFdWdjc0dVR1?= =?utf-8?B?MEZWY2xYVTgzdW93NXh2QkRyb3ppTEJ0NWNxcUY0OStDbDNEc0lpcDA1Zm9w?= =?utf-8?B?VkpvdkxqdUNtSVFzTVdXM1FBTFppZjV6aG1MVkEwc1dQUTdtNGpKUT09?= X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-Network-Message-Id: 89c51342-9a89-45be-5e48-08de54058fe5 X-MS-Exchange-CrossTenant-AuthSource: DS0PR12MB7726.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 15 Jan 2026 07:13:20.1941 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 43083d15-7273-40c1-b7db-39efd9ccc17a X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: 6+rdWYUh0gjckgn+r87VvGiHKK73+7v5hVl8V8Ty393fL3bC9rkMlkkmRvfBx774WD85dBd/7ynxV0cDzfHmGA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH0PR12MB8127 X-Rspamd-Queue-Id: 93DD01C0007 X-Stat-Signature: 6eb4jx1qkj764ko5dq1ueadzisgbmtk5 X-Rspam-User: X-Rspamd-Server: rspam05 X-HE-Tag: 1768461204-313205 X-HE-Meta: U2FsdGVkX1/cvFhf7aSXt3ZxnDLjoVe9ue0ZfV7w+IEfX8jsl/5RekxC+I9gi8ckC8c3vOtDKHQTrnWozNxmgejzjFxEALEq/n5vGxct1FojXtzwsWn063KyiNHrJMpesn/Gc+e/q5WnltIDBgOatIcndzWK3bv8QQ5xtctKxSF84fQRCrsBceBDJFzEmVEUHjmV9h4LSNglNJ45NSSf/uHab069H9hoXIl+lnoUS9i0a5b+FIX5Iagr0gBi/YnOlp3q594+IX/KbzRM3f+lzERDnjQCd6vmHv592y6Z+NfBMVgmCdXZUSO1lfZLMItdwzQd5dsN0gmv67p6etRfWrjWq0E4nG76xOleGVYZPOwH514tIP8rKMuvy2MuVp7C5hcHyT0sIFGv54fCRktn1DFOWMg351nCM4jUmWqmNtOvyMFLetH+9BiWs+mQfddVt0pBGJk1OXxdvEzHNfGwX7KSLXksd6/LoyTC7fZ6MijxNttrGyY6OWqeLUs/nTzerSkd1M+SQX2FgqvZ+DJW6BaZa9pLuJk0enVmi10YZEQ/xqmxFS4V/kHMunPo/2U0qIGnBNufB/e5NywZ6FgfBnbZj8e19hPm0XleRBWZsrrZFzpOLyz5NGTcy3PX+Mp98THn65Hq9l+5wCmVuknUFGylx8ygh7glyPwHTW9x/LHX5UgYCYFsGi9953NAMbOXGaYQJo9dQ7L99a4mO916IPPUHK5rTXVCY569VQFKW7sURwaQnujI+IX6eyvlrndzcUnXUB/L7qeh+P5Idfha9T8lqp0IZTofOtPrvCwF8WrQ7HYAUI/i82NatfctQLgWDmiYU9UbFF5Q3voVg1kR2nDrdli25lj5SsewvqT5mUVnQWwy9BkcUnuDAucASRwYfI+l0jRaNIcIzOJAxxlivu2qTQ6ZFu1swoZ9cNa1fJaHWUYZ+jVln82I4B5ku7cu0DKZk+zn5HM3EsAwIgH QcSgKIFH IoDe1Q2zXU1DDtSC3CWydwaSV1GSgHxJ6NXZSzMxvVqOJ1EL0QL4bVSlTMJ7FIbclaMMieQP1YmcBw53MndJKAjh6H1y+rOEA4xoVWXeP6APIwZatVk7Z6BsbLIHAP83+HyBC+KsdwAGEcLUsTsL6hy7jaJrGUk3k8N47N/uVS8TqTsW7zGM7W8B1HhEmrfXxTEeD34dg/Xq47rZ0FZALeAgvuj7YWUD/n+nbhYvh1Zf669mF1DhyHyOz/qYB6ipdIbQH3w1W66vAKH+yzvTRh0z0HuFjsuZtVTAn0xJAC4wlBMoQ5gzXI/uM9EEP9GoBWhKWs85x391uQSZebH8T8mwSk5Ks0gSP/tm3dHAKv1MQ/1H/cRZKk6pxm45ujdGfPEdaPfNjumVMXFaUcUbYr8lScdaZO7viTw52NaguFmjJL/OSM75R4fsfqg17S7YioU+yMwT+WKGSwGNrepkgUf1OXieaC9vEDhWC3zjDL/wLGxs4cSCrkrBNy6iI3ZUJWS2hDhT1yWUuDR3EVJxhXqwlucRL5Juzmc3e9F+kQCo+gY1kBT2JZcDe/4abKk+gpNkbROBJ8qetNKmqGx/0cYu9ah2KtZhqRJN6nQDPF4i9pv8oxEjzaOtjo0+prdzOakD2tuSVUp++fHYnb3+YphC7Sk03LTIDZ7DX2UnUQGECVM+mMMSGbM0TFYpFRIVy2xWD/swqXRk+5hGXQbfHTAA9D8FgDns8UI49iTgr9onm1i7K6Q2dI0njglF9wfZPFB2My6NJC7VkXDiRk0SNO0uF2ORugYgEutQBIv8AvXpqZF7c0GAoe2Umed8sRSv4UXwZ/yWZvTeuNGB7sgbpEYKOu2AxIeV0FzGE6CrV7swsinhPIUOz87WlK7XJIHU/3OFkNaEKzS+CJOGZFeQSN3DqOe5JEe7MsjedROIT73zA/eHskswcjCZuLjUZ2piBv0r79VDGq6iy3MvwyoJez62S38cm /0lpvgh9 zscHsGyiw1eZsTrmriE5DkYi1FMC/alZZxyc2JJZrzJs/oJTTwKmD/RnUkTXKWmd 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 2026-01-15 at 13:41 +1100, Matthew Brost wrote... > On Thu, Jan 15, 2026 at 01:36:11PM +1100, Balbir Singh wrote: > > On 1/15/26 06:19, Francois Dugast wrote: > > > From: Matthew Brost > > > > > > Reinitialize metadata for large zone device private folios in > > > zone_device_page_init prior to creating a higher-order zone device > > > private folio. This step is necessary when the folio’s order changes > > > dynamically between zone_device_page_init calls to avoid building a > > > corrupt folio. As part of the metadata reinitialization, the dev_pagemap > > > must be passed in from the caller because the pgmap stored in the folio > > > page may have been overwritten with a compound head. > > > > > > Cc: Zi Yan > > > Cc: Alistair Popple > > > Cc: adhavan Srinivasan > > > Cc: Nicholas Piggin > > > Cc: Michael Ellerman > > > Cc: "Christophe Leroy (CS GROUP)" > > > Cc: Felix Kuehling > > > Cc: Alex Deucher > > > Cc: "Christian König" > > > Cc: David Airlie > > > Cc: Simona Vetter > > > Cc: Maarten Lankhorst > > > Cc: Maxime Ripard > > > Cc: Thomas Zimmermann > > > Cc: Lyude Paul > > > Cc: Danilo Krummrich > > > Cc: David Hildenbrand > > > Cc: Oscar Salvador > > > Cc: Andrew Morton > > > Cc: Jason Gunthorpe > > > Cc: Leon Romanovsky > > > Cc: Lorenzo Stoakes > > > Cc: Liam R. Howlett > > > Cc: Vlastimil Babka > > > Cc: Mike Rapoport > > > Cc: Suren Baghdasaryan > > > Cc: Michal Hocko > > > Cc: Balbir Singh > > > Cc: linuxppc-dev@lists.ozlabs.org > > > Cc: kvm@vger.kernel.org > > > Cc: linux-kernel@vger.kernel.org > > > Cc: amd-gfx@lists.freedesktop.org > > > Cc: dri-devel@lists.freedesktop.org > > > Cc: nouveau@lists.freedesktop.org > > > Cc: linux-mm@kvack.org > > > Cc: linux-cxl@vger.kernel.org > > > Fixes: d245f9b4ab80 ("mm/zone_device: support large zone device private folios") > > > Signed-off-by: Matthew Brost > > > Signed-off-by: Francois Dugast > > > --- > > > arch/powerpc/kvm/book3s_hv_uvmem.c | 2 +- > > > drivers/gpu/drm/amd/amdkfd/kfd_migrate.c | 2 +- > > > drivers/gpu/drm/drm_pagemap.c | 2 +- > > > drivers/gpu/drm/nouveau/nouveau_dmem.c | 2 +- > > > include/linux/memremap.h | 9 ++++++--- > > > lib/test_hmm.c | 4 +++- > > > mm/memremap.c | 20 +++++++++++++++++++- > > > 7 files changed, 32 insertions(+), 9 deletions(-) > > > > > > diff --git a/arch/powerpc/kvm/book3s_hv_uvmem.c b/arch/powerpc/kvm/book3s_hv_uvmem.c > > > index e5000bef90f2..7cf9310de0ec 100644 > > > --- a/arch/powerpc/kvm/book3s_hv_uvmem.c > > > +++ b/arch/powerpc/kvm/book3s_hv_uvmem.c > > > @@ -723,7 +723,7 @@ static struct page *kvmppc_uvmem_get_page(unsigned long gpa, struct kvm *kvm) > > > > > > dpage = pfn_to_page(uvmem_pfn); > > > dpage->zone_device_data = pvt; > > > - zone_device_page_init(dpage, 0); > > > + zone_device_page_init(dpage, &kvmppc_uvmem_pgmap, 0); > > > return dpage; > > > out_clear: > > > spin_lock(&kvmppc_uvmem_bitmap_lock); > > > diff --git a/drivers/gpu/drm/amd/amdkfd/kfd_migrate.c b/drivers/gpu/drm/amd/amdkfd/kfd_migrate.c > > > index af53e796ea1b..6ada7b4af7c6 100644 > > > --- a/drivers/gpu/drm/amd/amdkfd/kfd_migrate.c > > > +++ b/drivers/gpu/drm/amd/amdkfd/kfd_migrate.c > > > @@ -217,7 +217,7 @@ svm_migrate_get_vram_page(struct svm_range *prange, unsigned long pfn) > > > page = pfn_to_page(pfn); > > > svm_range_bo_ref(prange->svm_bo); > > > page->zone_device_data = prange->svm_bo; > > > - zone_device_page_init(page, 0); > > > + zone_device_page_init(page, page_pgmap(page), 0); > > > } > > > > > > static void > > > diff --git a/drivers/gpu/drm/drm_pagemap.c b/drivers/gpu/drm/drm_pagemap.c > > > index 03ee39a761a4..c497726b0147 100644 > > > --- a/drivers/gpu/drm/drm_pagemap.c > > > +++ b/drivers/gpu/drm/drm_pagemap.c > > > @@ -201,7 +201,7 @@ static void drm_pagemap_get_devmem_page(struct page *page, > > > struct drm_pagemap_zdd *zdd) > > > { > > > page->zone_device_data = drm_pagemap_zdd_get(zdd); > > > - zone_device_page_init(page, 0); > > > + zone_device_page_init(page, zdd->dpagemap->pagemap, 0); > > > } > > > > > > /** > > > diff --git a/drivers/gpu/drm/nouveau/nouveau_dmem.c b/drivers/gpu/drm/nouveau/nouveau_dmem.c > > > index 58071652679d..3d8031296eed 100644 > > > --- a/drivers/gpu/drm/nouveau/nouveau_dmem.c > > > +++ b/drivers/gpu/drm/nouveau/nouveau_dmem.c > > > @@ -425,7 +425,7 @@ nouveau_dmem_page_alloc_locked(struct nouveau_drm *drm, bool is_large) > > > order = ilog2(DMEM_CHUNK_NPAGES); > > > } > > > > > > - zone_device_folio_init(folio, order); > > > + zone_device_folio_init(folio, page_pgmap(folio_page(folio, 0)), order); > > > return page; > > > } > > > > > > diff --git a/include/linux/memremap.h b/include/linux/memremap.h > > > index 713ec0435b48..e3c2ccf872a8 100644 > > > --- a/include/linux/memremap.h > > > +++ b/include/linux/memremap.h > > > @@ -224,7 +224,8 @@ static inline bool is_fsdax_page(const struct page *page) > > > } > > > > > > #ifdef CONFIG_ZONE_DEVICE > > > -void zone_device_page_init(struct page *page, unsigned int order); > > > +void zone_device_page_init(struct page *page, struct dev_pagemap *pgmap, > > > + unsigned int order); > > > void *memremap_pages(struct dev_pagemap *pgmap, int nid); > > > void memunmap_pages(struct dev_pagemap *pgmap); > > > void *devm_memremap_pages(struct device *dev, struct dev_pagemap *pgmap); > > > @@ -234,9 +235,11 @@ bool pgmap_pfn_valid(struct dev_pagemap *pgmap, unsigned long pfn); > > > > > > unsigned long memremap_compat_align(void); > > > > > > -static inline void zone_device_folio_init(struct folio *folio, unsigned int order) > > > +static inline void zone_device_folio_init(struct folio *folio, > > > + struct dev_pagemap *pgmap, > > > + unsigned int order) > > > { > > > - zone_device_page_init(&folio->page, order); > > > + zone_device_page_init(&folio->page, pgmap, order); > > > if (order) > > > folio_set_large_rmappable(folio); > > > } > > > diff --git a/lib/test_hmm.c b/lib/test_hmm.c > > > index 8af169d3873a..455a6862ae50 100644 > > > --- a/lib/test_hmm.c > > > +++ b/lib/test_hmm.c > > > @@ -662,7 +662,9 @@ static struct page *dmirror_devmem_alloc_page(struct dmirror *dmirror, > > > goto error; > > > } > > > > > > - zone_device_folio_init(page_folio(dpage), order); > > > + zone_device_folio_init(page_folio(dpage), > > > + page_pgmap(folio_page(page_folio(dpage), 0)), > > > + order); > > > dpage->zone_device_data = rpage; > > > return dpage; > > > > > > diff --git a/mm/memremap.c b/mm/memremap.c > > > index 63c6ab4fdf08..6f46ab14662b 100644 > > > --- a/mm/memremap.c > > > +++ b/mm/memremap.c > > > @@ -477,10 +477,28 @@ void free_zone_device_folio(struct folio *folio) > > > } > > > } > > > > > > -void zone_device_page_init(struct page *page, unsigned int order) > > > +void zone_device_page_init(struct page *page, struct dev_pagemap *pgmap, > > > + unsigned int order) > > > { > > > + struct page *new_page = page; > > > + unsigned int i; > > > + > > > VM_WARN_ON_ONCE(order > MAX_ORDER_NR_PAGES); > > > > > > + for (i = 0; i < (1UL << order); ++i, ++new_page) { > > > + struct folio *new_folio = (struct folio *)new_page; > > > + > > > + new_page->flags.f &= ~0xffUL; /* Clear possible order, page head */ > > > +#ifdef NR_PAGES_IN_LARGE_FOLIO > > > + ((struct folio *)(new_page - 1))->_nr_pages = 0; > > > +#endif > > > > Not sure I follow the new_page - 1? What happens when order is 0? > > > > This is just to get _nr_pages in the new_page as folio->_nr_pages is in > the folio's second page. So it just modifying itself. I agree this is a > bit goofy but couldn't think of a better way to do this. In the page > structure this is the memcg_data field on most builds. I still don't follow - page == new_page == new_folio so isn't &new_page->_nr_pages the same as &new_folio->_nr_pages? I don't understand why we would care about the a second page here. - Alistair > > Matt > > > > + new_folio->mapping = NULL; > > > + new_folio->pgmap = pgmap; /* Also clear compound head */ > > > + new_folio->share = 0; /* fsdax only, unused for device private */ > > > + VM_WARN_ON_FOLIO(folio_ref_count(new_folio), new_folio); > > > + VM_WARN_ON_FOLIO(!folio_is_zone_device(new_folio), new_folio); > > > + } > > > + > > > /* > > > * Drivers shouldn't be allocating pages after calling > > > * memunmap_pages(). > > > > I wish we did not have to pass in the pgmap, but I can see why > > we can't rely on the existing pgmap > > > > Balbir > >