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 8DAA0C83F03 for ; Thu, 3 Jul 2025 23:39:03 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 347FB28000C; Thu, 3 Jul 2025 19:39:03 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 31FB38E0009; Thu, 3 Jul 2025 19:39:03 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 20E1D28000C; Thu, 3 Jul 2025 19:39:03 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0014.hostedemail.com [216.40.44.14]) by kanga.kvack.org (Postfix) with ESMTP id 0F37F8E0009 for ; Thu, 3 Jul 2025 19:39:03 -0400 (EDT) Received: from smtpin24.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay09.hostedemail.com (Postfix) with ESMTP id C88F3804D7 for ; Thu, 3 Jul 2025 23:39:02 +0000 (UTC) X-FDA: 83624571324.24.CD1BFE3 Received: from NAM12-BN8-obe.outbound.protection.outlook.com (mail-bn8nam12on2082.outbound.protection.outlook.com [40.107.237.82]) by imf07.hostedemail.com (Postfix) with ESMTP id EA60B4000D for ; Thu, 3 Jul 2025 23:38:59 +0000 (UTC) Authentication-Results: imf07.hostedemail.com; dkim=pass header.d=Nvidia.com header.s=selector2 header.b=U9GxX4iI; spf=pass (imf07.hostedemail.com: domain of balbirs@nvidia.com designates 40.107.237.82 as permitted sender) smtp.mailfrom=balbirs@nvidia.com; arc=pass ("microsoft.com:s=arcselector10001:i=1"); dmarc=pass (policy=reject) header.from=nvidia.com ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1751585940; 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=xwK4H0VuKrbs+OKwoAOwACO8rZ4a87AESC6oG8OS87o=; b=Dan1oj4weBf4nbID8za6ytW9rVOhu1Ymtu3sYeyoZGg0XJTKZxo0LQ8nhIEwq7U04hwJHG FDalSJKO1u2uMU87wd/QYY5KDVv2mqnwBzG03EH2sxavl42fpO+mybWvnClz3o+FQohR4J n3jdVyGd9y0SFCQeJtP6T+b5tWito9E= ARC-Seal: i=2; s=arc-20220608; d=hostedemail.com; t=1751585940; a=rsa-sha256; cv=pass; b=vQhzzPJDkv313u+GDfXqAkcFbWs3REOHLx3acSQaJAwp+z8KmiMwsa+pH8ZMjndbjw1T40 +zUOxZ7JMVWmEG8TV9bh6WZFCbmff+tT6w7Tr222mw764ToyBiDXpZs4VmE4u6MSxpfFMF T82/y4pVB57KNjk5g16mDUGCs2J+/tQ= ARC-Authentication-Results: i=2; imf07.hostedemail.com; dkim=pass header.d=Nvidia.com header.s=selector2 header.b=U9GxX4iI; spf=pass (imf07.hostedemail.com: domain of balbirs@nvidia.com designates 40.107.237.82 as permitted sender) smtp.mailfrom=balbirs@nvidia.com; arc=pass ("microsoft.com:s=arcselector10001:i=1"); dmarc=pass (policy=reject) header.from=nvidia.com ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=NJ44Yp5VAjgn0YtP3CuvHDmH2xqi12T/8QtSnlohZwRVF/zewxNDLlrWUuUkCir//NMWRaZpTAGzQ18dldI9zxs66SKdHvbIfMoMGVyn8U88voS7PCUa2lSaTi9l7fKdbXTmams2mtdenCc0IjS9Sy3lzlHk6yNHEeXteQ+tHSv8h1deuZ6Ss1QWkrqNe3Vy9/BqYCdAnQKYsHBxR7jILCWhWam6t89C/TRovk1yIZmRxNBgkjDeIj7pf+Ch2+jz59tW3SBKms3d+zRlNtRJxtGoAeLUfHgpFNgyB3NBhY1iTwZfpKRdVY0nYbeInHoR69tOwDqKm4mHuNmSsJKWSA== 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=xwK4H0VuKrbs+OKwoAOwACO8rZ4a87AESC6oG8OS87o=; b=AIn7HFftFjvT5glPaK9vwmt0/U8u5duQZW4FSrIb3sJ3H3tvqFYTLPB9dqp58si70W4p1rpxyV/Utrboht5+59Q2BzDTpLuavRwpJV+T0KLRqEfObmMP9WBYdXAEptlQXJm0BgMhj8JSla+Ij/+ZF1xJq1u+zpQhC8V1S/2/XurJ0meor0bItTFIcnHRNCjrw7N3+ECWXkU3cx2Yypll0i3lUP1gGx7eDPBspf96fh15KVw8UYLRQ3lVRhWIgrDYsdR84kH5Z/9guuUkYy9Zn6bZLncdW411wGEeP3186+Eb1+DBd3macguQGYPRI1yP8Ii+0/uieoPgSn9YOGZJhw== 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=xwK4H0VuKrbs+OKwoAOwACO8rZ4a87AESC6oG8OS87o=; b=U9GxX4iIdorp2EMpFa6LuTGidD90I8izDMDDx00nrM3FJWQ1aY6ikWlvXbCH6qzSpYUuAqTNaIDQ6vAd1yPky13Sjyt7aCRH+dXhk4JoBMfsTwOJlNUSYe0hZw2TFnr45MDjPNcJ12gbpXs8mac2JPm861VyXsxoFi/J2h0BbrL1iC6JPwlgHzrDQFtDKB9XTJepArcwSRW85ci5CBIBEsCpc94eqqaXIyFWlWkbWU/IkcmICswhpnDMYnCummSPggz93FQe5dDqXZ3U7muN1/DGlaZpYvYDmYY8aP4FM5PXN85F6ahfHel6NFX2fXkl/4DnodNwdcykivMlJUADnQ== Received: from PH8PR12MB7277.namprd12.prod.outlook.com (2603:10b6:510:223::13) by SJ0PR12MB7459.namprd12.prod.outlook.com (2603:10b6:a03:48d::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8901.22; Thu, 3 Jul 2025 23:36:17 +0000 Received: from PH8PR12MB7277.namprd12.prod.outlook.com ([fe80::3a4:70ea:ff05:1251]) by PH8PR12MB7277.namprd12.prod.outlook.com ([fe80::3a4:70ea:ff05:1251%4]) with mapi id 15.20.8880.015; Thu, 3 Jul 2025 23:36:16 +0000 From: Balbir Singh To: linux-mm@kvack.org Cc: akpm@linux-foundation.org, linux-kernel@vger.kernel.org, Balbir Singh , Karol Herbst , Lyude Paul , Danilo Krummrich , David Airlie , Simona Vetter , =?UTF-8?q?J=C3=A9r=C3=B4me=20Glisse?= , Shuah Khan , David Hildenbrand , Barry Song , Baolin Wang , Ryan Roberts , Matthew Wilcox , Peter Xu , Zi Yan , Kefeng Wang , Jane Chu , Alistair Popple , Donet Tom Subject: [v1 resend 09/12] lib/test_hmm: add test case for split pages Date: Fri, 4 Jul 2025 09:35:08 +1000 Message-ID: <20250703233511.2028395-10-balbirs@nvidia.com> X-Mailer: git-send-email 2.49.0 In-Reply-To: <20250703233511.2028395-1-balbirs@nvidia.com> References: <20250703233511.2028395-1-balbirs@nvidia.com> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-ClientProxiedBy: SN7PR18CA0026.namprd18.prod.outlook.com (2603:10b6:806:f3::18) To PH8PR12MB7277.namprd12.prod.outlook.com (2603:10b6:510:223::13) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: PH8PR12MB7277:EE_|SJ0PR12MB7459:EE_ X-MS-Office365-Filtering-Correlation-Id: 3777b5ef-c6d3-4f41-6cc1-08ddba8a67c5 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|376014|7416014|1800799024; X-Microsoft-Antispam-Message-Info: =?utf-8?B?alFIa3JKUkpvUXVXdVFUN2ZoWWtwTkprNzRoTzRXMjcxWDdkSm02cU5BQnd5?= =?utf-8?B?THBWVUVxOXlvVlRqRy9QUGt2VzY0MkJNcjcwNE52dVVjN0M0UW9WVWRJZi96?= =?utf-8?B?TzNtcnJabjF2RVQzMi9GTUxwbzJkamg0bDVXWC9vUnZ3aTlJV0dGNlZzZkVq?= =?utf-8?B?VDNtTklPRXlxUmtWeXdselZTeFB4UUZUQ2JIZWk3ZU1tNTIxZTZncm9jOCts?= =?utf-8?B?Mi9ISkxpNFd0R2pWQWFBbFhYY3c2WnoyRjd5bFhuTHN0aDgyMldVYmFtZ21N?= =?utf-8?B?aUFsV1BJVU5id29TcGc5VjlleW9Xb3N6V29RUGZJTWgxMFk0cW1rbFJQcWd1?= =?utf-8?B?NVZqQnRqbFl5YTA5dDNiRVdiK2VVNEJMTmltRTI5emEzZkoyMzNLajFOS2xm?= =?utf-8?B?cjdOYmNnY1MxVnVXczl6bGhMSnBzVkJiVkNJS0ZRV3lMRTFGazdzUmRZOEpW?= =?utf-8?B?VGFicHI1SWpTTS9lYmlWa3hwaGZXR3NwaGJvdC9Ta211c0krZmpOMmhqT2JM?= =?utf-8?B?c3U1L2hkUlBML0lQNFJROHB5UmNlUE9LMWYvTlRaUmQvazBzdjBlY0tMOHhN?= =?utf-8?B?SHoyeVVEYjVBRThNNThtNjJnWVFMMW9mZC9qZ0tIY2RmUDZKdVZPT3hpb1Rv?= =?utf-8?B?NU0rTVlYZ1JncStyWkpoMFZqODhVbFJWYzNnOWFsYnNBbUNuWEJXT3krS1hv?= =?utf-8?B?SlB3MnlBdkdndXFPL2ZBU1BBdzQxNVI1Y3d1N1o4VCt3UGhKK2FDN3h3MTF5?= =?utf-8?B?Z2o2ei9GU1JSMlEwZ2lVNFdldG40djRlQXA5amxPR3F1ZVFnWmo4U0JRYWVZ?= =?utf-8?B?c3p0NkhVT2kySWUxUUFoTGxuNkN4dG5nRFZrUDRINTZqU0V6eUJ1UW44R3d3?= =?utf-8?B?L3o0SmhzNHh5ZTdjcXV4YkhCMHNEaDZCR3hJMVY4UDJmNFp2bHNvVExSZ05v?= =?utf-8?B?VEUxdFVJZnN4REVleDE4RkMydGUwc0pJY1cwR3ZXTDdHUnFacC9mbk1wMXhj?= =?utf-8?B?eUE2djQ4citiSHR2eUpsd3ZMaCtIZUdjamNCdGxpY2NEZDNuaHVFclFWYzRE?= =?utf-8?B?aE10U0hUbEg5SHdGYmFURWY2RjJuNVdzZm5JUGpRL084NjdrWmtVQWNGTXVo?= =?utf-8?B?cmhXLzlMZEl6dHR4UTczcmlzc1NoUFFmU3A0cCt5TG16KzczYXFPRTFqUGkw?= =?utf-8?B?R1ROUWo2bjd4Skd3Z015ZGpuSEpFRDkwYVo3T1JYWGNlYzlkL2xjTGhGU0xv?= =?utf-8?B?Z0t4cGFsaUlJQVVBTGc2cWxjRjFRQWp1VkdjWVNzMDQwbkU4UHV6dFUzSXlN?= =?utf-8?B?aUdaUHpUQzlhYXU1aGpwY3VramdTeWR4ckpLU2V6K3EwNkU1cG80aXB3enVJ?= =?utf-8?B?dGk1U25ybTlyZTBiem8vQy9RM1JNRkhmd240Y3p3RjVRaWE3UGxNbVZPRTZK?= =?utf-8?B?RXZZMHNPRGljZlo0VDIxYndOaWlJT0p4RnkvQ29aOTBINXVqcHM0ZWxTOFlh?= =?utf-8?B?c3hqNUR5ZEdwbzZ5OG5Tc0kxcWQzaW15M2lUQnRVb2ZTWE1wN1c0QUVJNEtL?= =?utf-8?B?NUVuQlNDTm1Rcy9IWjR5aytDalZjdkQ4MWZYeWJaT1Yxdkp4Ymo1NG1lS0hp?= =?utf-8?B?Ync5MGpXcy8ySU5kVnNFbXNuVXBTTzA1UkszWkd3TXdlSzRHdE9WUHVuVnhL?= =?utf-8?B?eC8vNUxmT2JLL3lRa1IyRDc0bXU3L21CQWFsV0ZwVmVEMC9MaHJic2IwejNu?= =?utf-8?B?TjF2a0t3QXVGQUdraFBieXVUQm15M21sNkFBWWh4dVM2THV2WFVwRytReFBn?= =?utf-8?B?Ylg4cFNpaHFmNnBXVGdCZk9XTy9QN2RsMXF1bUoxbGMzK0lVS2JrWkZoT1cv?= =?utf-8?B?czRIODhrQTlpYzdLQ2NZNXk2UFJzdzVkazJsaEdiTUNYT2c9PQ==?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PH8PR12MB7277.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(376014)(7416014)(1800799024);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?dTNBOXdybER0WUFaK2hWVWxNN0dVTER0V3ZTbDlQenpEdVRqdW5LbkxscTM1?= =?utf-8?B?dWkxZG5Ec2F1dDRSWC9tanpkSVFCSHA4WFkrc1VDZVlYVWlqMHlkdVg2SytI?= =?utf-8?B?aW9SdmxEQy9PWDBvaUZHRVlienFTL0xEbVpEbmp0SzZ2aGJRUkx5MlhqVTFD?= =?utf-8?B?M05EVWZjKzRicEcrYVNCL1poNHg4VUYvRjVjcDBidEJOM2JXdHZyVnloU2ZG?= =?utf-8?B?MEFESTRsM3RjYUxKZWI5bnBvQi9RN24ySElqTDR5LzgxNDNmY1JyV3pENGR6?= =?utf-8?B?UmJnY01aMFJILytJdGV0SEpQRkNIdkt1WXFHeHRLejJ0enYwZkhSdW1Pd2Vn?= =?utf-8?B?QUVtUStoZlRadjdSeCtsQ1I4VG4rSnNqdmxBYStZUlhJSy9rZWJCWWpCZytm?= =?utf-8?B?aGtjLy9GQUgzZUozQ3JyTXVsNkYvUXNpTStIWnBDcFNKczJuZ25qSXdjS0s2?= =?utf-8?B?clNJZC9jVEJTZGpFbldJMmdJM1hUS3ZoZm9oYmFSY3dZSkt3eVNWbk9xdW1Z?= =?utf-8?B?dDhwT3Y2MXl5MmNIWjEySWlzbGtSYmI1YUJlLzNXSjQ3Z3Rza0JDNGRIU1kz?= =?utf-8?B?WXlrUDNPTTFYTVdKV2xERVR3QVZlbksxdDZSRjc2b1JVd3h5eEk4OFd4V1kr?= =?utf-8?B?aVc0WEY3MXVYMDJOR2owYzVqTk5SbURCR1NpREFTaDFpQUVZSEFsN3RvZDl5?= =?utf-8?B?cnBLZjVIKzRqLytFVFlJblJDcEVyOERoZnpWYWJOMzYxYVFMdW5DMGtsTmdD?= =?utf-8?B?bUlzcmlqYjlFZkFlZDZsNFlsNzc0cnlIYW9Laks5bmdIT1pack1wTE1vWERn?= =?utf-8?B?RTdrWDZKZHZjWG5SNGtlblQ3U3JNUkhYa2ZnQlVpYlRXZEZXREJmRnJWeVpq?= =?utf-8?B?ZUtJc1ZwNnVhKzdJVUdNR0liWG1rU2RqelNwOXp5RlZxOWdQeDl6N000OC93?= =?utf-8?B?WVRLNHF6Y0lOeHdmalNjWk5jMmkrSkpKOXFxNHhlUjRYUnNXdUZvKzBUcXdi?= =?utf-8?B?LzlESGdaQjAyVTRLbFE2UEs0Ky9ZVEErWC84WVZXMk52cmhZV1BvQ0RnbnJ2?= =?utf-8?B?NllCQzhRaUF3ZFVXMVJnVm9qV2F4QkMvQW93YnY5KzFKaS94T2VKRTFCeTFV?= =?utf-8?B?d2E4cy9scVc3NmcyNC9YTnFWQUU3ZExTT2RqTWFFUmFMY3J6YVVWTk9IWWxH?= =?utf-8?B?MW01Uk02UHFEMDgxMGtMNVJyTkExWmZmd1l4dlo2dWgyMGNiakJoTWFhNkty?= =?utf-8?B?ZDBpUTFNbGRrZ3NpbVJMMm1FU0Myd0xDVjhEb1Jta24zTkhDZ1RBN0J6QjRv?= =?utf-8?B?S090QzZLck55ZUg2M1NsWlFvdWtSL2xBMHNFTldWbCtRVi9VNlN4SlVmMW5a?= =?utf-8?B?eFl0ZnFDM3IyQ1R6WnBoeGppaEYreU1tN1ROV3dEVEpiTDc2cG42S2NhaGYx?= =?utf-8?B?WmYxRkpjR1NpRGQwdC8xTjBESTFFaGhIZkIzSXM2VHNVRFJSM2xiZEpJcy9L?= =?utf-8?B?VXJMUmlncWkzMkFvYndWUWdNWW9JdWRGZzdYaTFvRUcvNmZVcmhuemFZUURP?= =?utf-8?B?UXJycjV6SEJ0MXgwQjFvOE94N2FSVTRjQmtycXRmYzUrRGhNVjd5Y0JOVHRL?= =?utf-8?B?S3ZUL0ZCdVl1Q25WMStsMXdlQ09nZlV2Z2ZSOVVmK2pnYVkrNXFBTmdPYklG?= =?utf-8?B?V0grSkppcUljRFk1SkcvRGRaMnl5aVRoTkxoZE53d1gweXQyN25sRkw1TzRQ?= =?utf-8?B?YUowSEgveDNiakhBYXc4OHJjbklzaGRsQks2dWhIaTJJVklNcUpwWTJRRG82?= =?utf-8?B?dk5od044WlV6YThocXRCUHU3dXJ5OUVBZVRpOUU3QzlZaDFHbTFMRVFWSm9Z?= =?utf-8?B?NVEvZ3dpWkhxRVBQTWhyU1JpSG9YcEtGQXB0YWhqUXZnOEdnTjM4VHRMR1VJ?= =?utf-8?B?cmhsZVVSSnRPRDdYdFlQZGFpZXNORHg2TUEvSndIKzl3cW10a2pIVFptd0lM?= =?utf-8?B?SWgwdVBscGhOMnZzYVZrekVzRWNTelRiZjIvMG9MeGlPdjRhV0s5TEEvV0Iv?= =?utf-8?B?SUFkWUliaXdzNitxY3ZMd3Y3Qm5QYzRweWVzTm1IdkNVbFJTMnVHcDNTK2Vx?= =?utf-8?Q?LzjBLwK4FLgrkiY6JMCDupwSX?= X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-Network-Message-Id: 3777b5ef-c6d3-4f41-6cc1-08ddba8a67c5 X-MS-Exchange-CrossTenant-AuthSource: PH8PR12MB7277.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 03 Jul 2025 23:36:16.7375 (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: UNSVqVFUnxOnLxSY0AIetoRsAytDCGslqCBr/fAdSbq7X8vuAdLvQ2f1pAzCMiHHnTZJyB43C7jdLKupfUdYCg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ0PR12MB7459 X-Rspam-User: X-Rspamd-Server: rspam12 X-Rspamd-Queue-Id: EA60B4000D X-Stat-Signature: ufygjdtkwszrb3g15sh1xa1x7fbnyy36 X-HE-Tag: 1751585939-252054 X-HE-Meta: U2FsdGVkX18TYwuRzauiwmY6rJCAGpXrWHgO+WKMtL/RIHlOca/POGQEO3KpGItEbaLfuTPKO5ZQVyPJFcCT4kjQjHBAN9/VEnWUihSjWGovJgFzjGA+k7Skub7Mu3Gs1H+UuWdl3VasCHSEVxgjWQ+aHT9AGCaHjOaILbjFIXtt34LrF4oj+08pPgcC6jbHhX3tGjOCOYy32SW9+o7TMbuJyY7MFXjAZ+C54iHHeamswRgCWYxHJpLsSf6BKcfLmgeiowCsCq60bLM0LG9jtjo8QFX0gtalaI1Hwc1qu/lCUgwfoV0HbeHNIvbB72/j4PtHZxtVJP3PmYFyY0gMvObh7RBsajwnlH+MjcAsD5YS4i065fQGlS38IT+IuOof8v6qsTZ1TGC4BN3rfM2JjA2cyFHkap7AfvJftz/nW+Qp9AtaKz6kaEv61Set8PUKdxb6SCaYbBX0d1g19vw4H3CfdkhAonJudjOXf1NQC/9R2Ko82cqT8Vu9IPClEwXTlbEJLjzZJDOOdyCIJ8QXqy+MqxdT1B6c12XXn8vZuODn15ZNFKNn7j/CFQ8Fde3brfv4wm2GTQoJ5IoBCgko8pUuk1HbqzmqopsWgnwkeecRx/Y4nemYfbL5sEqMsXC7FCwxfrgYOlYxP3C/zrOTzVJRtpW/rKDVtugcmT6pkZ7p4llzsydLzrC7uWPKVqeDj8BojpU1F3CyVQc3y4Fx/vpRBjNoRvysZd0uoYpwG2pjeBmvisrf721zzcdp9oOo7M9GFBL+Nbhi5zb3okmS0+WJRE/2HtX1g82vQvua4AjLkxqAjLLmjqxDE/UqYqoDPxi2yv3MlQVlZYLtP6kn+2C5E+d3g6VjgGlditb2JuIPLZ0UrJiI7rcWOMLjf7rwFEXrqDJXdXJnBT6E/Sz81BEv36uBjKCB/YCbDx8Ap7EaGy5Jzyn7Xuc467hULpRO4fBPFP8DenIHpxEKag7 anjgjCGv MwLD+RpqlNKschZDWghngmi4Ex7+Mzpiw9eenCqleqg9A781dVgP6kAuf0ZzLPgv2wHEYfG/dF4xKb5MYIaA6gAIMUKoud8I+X9jICVdNvdGZOXEcVLwXFOp8AfyIMEiY/RJV1PCawK5FJl4+u83caHnT9bGC8KshkHHymC5sAfdknQB8LjgCSRPQjrhok0PpBBMZM+AjE7Ti9PBpkT6v8tntkZ9nLDpivyT3VPMRKtXohWZFFN/Mq/fgmIIXWBai7vPzO5+RVFNBGGtegBu1CcZC0eobHaHKrdJ+yUiFN9xXN8CwwXTAs3JXLTNcKAmWM/2z/jOp4/lOhnDGo2cf6t2x5dQi3jhGNDWv46JtzuP52hsGN9uOtiiX4P2QrGZoIUV5L9KffBBA9DHqkWtAkUyJU76sAmI+B06OXzG9vZCqGwk07caUe0pMc4S4Tvma73fRD26+NkqwKOQ0Q03GQRoxwVo0dt5h086FDhlfjSdjFK46xbw/siXOgfbpnvFFm35g+00nuty8b5IXByABPCLUE5DPD6sGyybR8JREJZ6zVGVkO5TV4glZPlZthIeyvNxyulFjQbvzUiYkOqV5YgSOUNHHl2NfDJ8TCITTHf2pebCosxzJgyzfvShOPh+i0NImAlSeEoEQZtCiuOsTWOzzJUqjL4t6S/JLPRUoFK9mUgDcODqxgZMaOep/zbWS1d/zYKODsa8k7waUm0RRU3boBng/gaP4NU4GRTCvncfUYG7uMQ8kziuYTDxOBxNr1YQK0QPPpNWgnN0FUiGtAs4Zj1Ert9q0bMlN 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: Add a new flag HMM_DMIRROR_FLAG_FAIL_ALLOC to emulate failure of allocating a large page. This tests the code paths involving split migration. Cc: Karol Herbst Cc: Lyude Paul Cc: Danilo Krummrich Cc: David Airlie Cc: Simona Vetter Cc: "Jérôme Glisse" Cc: Shuah Khan Cc: David Hildenbrand Cc: Barry Song Cc: Baolin Wang Cc: Ryan Roberts Cc: Matthew Wilcox Cc: Peter Xu Cc: Zi Yan Cc: Kefeng Wang Cc: Jane Chu Cc: Alistair Popple Cc: Donet Tom Signed-off-by: Balbir Singh --- lib/test_hmm.c | 61 ++++++++++++++++++++++++++++++--------------- lib/test_hmm_uapi.h | 3 +++ 2 files changed, 44 insertions(+), 20 deletions(-) diff --git a/lib/test_hmm.c b/lib/test_hmm.c index e20021fb7c69..c322be89d54c 100644 --- a/lib/test_hmm.c +++ b/lib/test_hmm.c @@ -92,6 +92,7 @@ struct dmirror { struct xarray pt; struct mmu_interval_notifier notifier; struct mutex mutex; + __u64 flags; }; /* @@ -699,7 +700,12 @@ static void dmirror_migrate_alloc_and_copy(struct migrate_vma *args, page_to_pfn(spage))) goto next; - dpage = dmirror_devmem_alloc_page(dmirror, is_large); + if (dmirror->flags & HMM_DMIRROR_FLAG_FAIL_ALLOC) { + dmirror->flags &= ~HMM_DMIRROR_FLAG_FAIL_ALLOC; + dpage = NULL; + } else + dpage = dmirror_devmem_alloc_page(dmirror, is_large); + if (!dpage) { struct folio *folio; unsigned long i; @@ -954,44 +960,55 @@ static vm_fault_t dmirror_devmem_fault_alloc_and_copy(struct migrate_vma *args, goto next; spage = BACKING_PAGE(spage); order = folio_order(page_folio(spage)); - if (order) + *dst = MIGRATE_PFN_COMPOUND; + if (*src & MIGRATE_PFN_WRITE) + *dst |= MIGRATE_PFN_WRITE; + + if (dmirror->flags & HMM_DMIRROR_FLAG_FAIL_ALLOC) { + dmirror->flags &= ~HMM_DMIRROR_FLAG_FAIL_ALLOC; + *dst &= ~MIGRATE_PFN_COMPOUND; + dpage = NULL; + } else if (order) { dpage = folio_page(vma_alloc_folio(GFP_HIGHUSER_MOVABLE, order, args->vma, addr), 0); - else - dpage = alloc_page_vma(GFP_HIGHUSER_MOVABLE, args->vma, addr); - - /* Try with smaller pages if large allocation fails */ - if (!dpage && order) { + } else { dpage = alloc_page_vma(GFP_HIGHUSER_MOVABLE, args->vma, addr); - if (!dpage) - return VM_FAULT_OOM; - order = 0; } + if (!dpage && !order) + return VM_FAULT_OOM; + pr_debug("migrating from sys to dev pfn src: 0x%lx pfn dst: 0x%lx\n", page_to_pfn(spage), page_to_pfn(dpage)); - lock_page(dpage); - xa_erase(&dmirror->pt, addr >> PAGE_SHIFT); - copy_highpage(dpage, spage); - *dst = migrate_pfn(page_to_pfn(dpage)); - if (*src & MIGRATE_PFN_WRITE) - *dst |= MIGRATE_PFN_WRITE; - if (order) - *dst |= MIGRATE_PFN_COMPOUND; + + if (dpage) { + lock_page(dpage); + *dst |= migrate_pfn(page_to_pfn(dpage)); + } for (i = 0; i < (1 << order); i++) { struct page *src_page; struct page *dst_page; + /* Try with smaller pages if large allocation fails */ + if (!dpage && order) { + dpage = alloc_page_vma(GFP_HIGHUSER_MOVABLE, args->vma, addr); + lock_page(dpage); + dst[i] = migrate_pfn(page_to_pfn(dpage)); + dst_page = pfn_to_page(page_to_pfn(dpage)); + dpage = NULL; /* For the next iteration */ + } else { + dst_page = pfn_to_page(page_to_pfn(dpage) + i); + } + src_page = pfn_to_page(page_to_pfn(spage) + i); - dst_page = pfn_to_page(page_to_pfn(dpage) + i); xa_erase(&dmirror->pt, addr >> PAGE_SHIFT); + addr += PAGE_SIZE; copy_highpage(dst_page, src_page); } next: - addr += PAGE_SIZE << order; src += 1 << order; dst += 1 << order; } @@ -1509,6 +1526,10 @@ static long dmirror_fops_unlocked_ioctl(struct file *filp, dmirror_device_remove_chunks(dmirror->mdevice); ret = 0; break; + case HMM_DMIRROR_FLAGS: + dmirror->flags = cmd.npages; + ret = 0; + break; default: return -EINVAL; diff --git a/lib/test_hmm_uapi.h b/lib/test_hmm_uapi.h index 8c818a2cf4f6..f94c6d457338 100644 --- a/lib/test_hmm_uapi.h +++ b/lib/test_hmm_uapi.h @@ -37,6 +37,9 @@ struct hmm_dmirror_cmd { #define HMM_DMIRROR_EXCLUSIVE _IOWR('H', 0x05, struct hmm_dmirror_cmd) #define HMM_DMIRROR_CHECK_EXCLUSIVE _IOWR('H', 0x06, struct hmm_dmirror_cmd) #define HMM_DMIRROR_RELEASE _IOWR('H', 0x07, struct hmm_dmirror_cmd) +#define HMM_DMIRROR_FLAGS _IOWR('H', 0x08, struct hmm_dmirror_cmd) + +#define HMM_DMIRROR_FLAG_FAIL_ALLOC (1ULL << 0) /* * Values returned in hmm_dmirror_cmd.ptr for HMM_DMIRROR_SNAPSHOT. -- 2.49.0