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 41D25C02188 for ; Mon, 27 Jan 2025 12:26:29 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id AAF5B28014E; Mon, 27 Jan 2025 07:26:28 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id A5EAC28014D; Mon, 27 Jan 2025 07:26:28 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 8B0B928014E; Mon, 27 Jan 2025 07:26: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 6828928014D for ; Mon, 27 Jan 2025 07:26:28 -0500 (EST) Received: from smtpin13.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay02.hostedemail.com (Postfix) with ESMTP id 074D7121638 for ; Mon, 27 Jan 2025 12:26:28 +0000 (UTC) X-FDA: 83053154856.13.5F56631 Received: from mx0b-00069f02.pphosted.com (mx0b-00069f02.pphosted.com [205.220.177.32]) by imf01.hostedemail.com (Postfix) with ESMTP id B6C0440008 for ; Mon, 27 Jan 2025 12:26:24 +0000 (UTC) Authentication-Results: imf01.hostedemail.com; dkim=pass header.d=oracle.com header.s=corp-2023-11-20 header.b="m/EwGzht"; dkim=pass header.d=oracle.onmicrosoft.com header.s=selector2-oracle-onmicrosoft-com header.b=POBuplg8; spf=pass (imf01.hostedemail.com: domain of lorenzo.stoakes@oracle.com designates 205.220.177.32 as permitted sender) smtp.mailfrom=lorenzo.stoakes@oracle.com; arc=pass ("microsoft.com:s=arcselector10001:i=1"); dmarc=pass (policy=reject) header.from=oracle.com ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1737980784; 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=j6fMZxrLov6UsXb1jG+3t+Al10nEnlrf1B5mCF8J+Z4=; b=DOOJNficLzjsMNA0ZhluawN1p3LhdtxT6YJKuRDwJcCccBxxlzXZMsMj9887m1w7qike6a aumxp6/0qm5vTCGDWEAv3+7oHDonhGkzbxUy+tyD1p35INdZBQUCx+R0NMr0y1hAqzCUBH Wwh80Vb4Rx81PVOegfxOfZ2P+FrWLd0= ARC-Authentication-Results: i=2; imf01.hostedemail.com; dkim=pass header.d=oracle.com header.s=corp-2023-11-20 header.b="m/EwGzht"; dkim=pass header.d=oracle.onmicrosoft.com header.s=selector2-oracle-onmicrosoft-com header.b=POBuplg8; spf=pass (imf01.hostedemail.com: domain of lorenzo.stoakes@oracle.com designates 205.220.177.32 as permitted sender) smtp.mailfrom=lorenzo.stoakes@oracle.com; arc=pass ("microsoft.com:s=arcselector10001:i=1"); dmarc=pass (policy=reject) header.from=oracle.com ARC-Seal: i=2; s=arc-20220608; d=hostedemail.com; t=1737980784; a=rsa-sha256; cv=pass; b=eq7pXU+r8zmXGtb82TuFBM5q5kKdibHKpVRh5eawAfW24bJmCNen+I+J/jfO1c3WFdSNOV Lhy6N/6rAbs1rnOQK9oOO51VytiKpZoXEGT1aIDOocmSSAkoQ/Isips4Mel/N2rlNCFA4T c/knTEyHXoKk5ifzC9//nVfjCcsLwm8= Received: from pps.filterd (m0246631.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 50RBRGVh007378; Mon, 27 Jan 2025 12:26:22 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=cc :content-type:date:from:in-reply-to:message-id:mime-version :references:subject:to; s=corp-2023-11-20; bh=j6fMZxrLov6UsXb1jG +3t+Al10nEnlrf1B5mCF8J+Z4=; b=m/EwGzhtcRoKzdN281lTZeBg8c2/wFIcX4 UXmj79orXLap11Xil32Rd6vZWmL1EiQhcxkgR3t6aGeefNS6N4ZMkX71mpVtB/zp JAXBVRmZEwwPKR262VyY67h73seX+0g7WXmxH90CC/wmFtj0Q9u0IJyvNnX8cOQE foeLbBXrFAhjZymDyA22eAqRaMCvXSvE2BEN5zwImrOZPyYpa1o/gEBXT7ifkSlA 7c9pRgx4D2yLwwIe3L3L/gMgMd3GAlHPL/rJa4/cE1kl2D1eiPc33esEP4VEfhfo ueZ0/lg3h0ck+oQszuB/PCT30Ck3QIER3QMnFtLpAZB+L777P9BQ== Received: from iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta03.appoci.oracle.com [130.35.103.27]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 44e99f82pa-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 27 Jan 2025 12:26:21 +0000 (GMT) Received: from pps.filterd (iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com [127.0.0.1]) by iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (8.18.1.2/8.18.1.2) with ESMTP id 50RBP10j035911; Mon, 27 Jan 2025 12:26:15 GMT Received: from nam11-dm6-obe.outbound.protection.outlook.com (mail-dm6nam11lp2173.outbound.protection.outlook.com [104.47.57.173]) by iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (PPS) with ESMTPS id 44cpdcwedj-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 27 Jan 2025 12:26:15 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=R6TVZv91bmxFlTharqv2rTUJ4ZuCYBC/6Lci3QE0PZggTQmIc6UBO6Ufeoe+QFpBJHQ8xHVWClBcosKsK6acquSyDJqgsdjmLi9fqRB76k3U49dQ1odnJL14gUU17uBmyWw1TNurKKINjDBwKitW+KTP6g6CzbWJfvsfgUsUdlwoSJ7qCdyuJEQFyE3s0u+xVfDY++MjWqQK15qZWIzp4Swm8y2opJQn+B4WTcAPVjp9q6eDr+R4N7soCTcgJswgiNd4VAY55Cc+Ckv/sIg/vmHmbHmgdjzyGRI5npDqXqHTxBjlEZ2WUjSOM8EcSSrgAapYtBMp/GdeQYfV6BB4gA== 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=j6fMZxrLov6UsXb1jG+3t+Al10nEnlrf1B5mCF8J+Z4=; b=aSUbqk52VewnTQFzfmqtB2far8toOPgQGdji/GTOUaIAwC5U3Qqtw9Ol4ygWCWEnc46l80PjXfRJ67w/cvwJt2ZvCd8JF5yGOP7dwDIxiXpILk/aTV0sMF07H/7f8eCty76XWUXpto9nH87lM/3c/6uOQRPswYWfNK6BI2/81JInh+GHSmlDnJk9oSyJypRuggLioQAALPnmaJ86ZuiKqt+qTeJZtSTbBUA/1xgA/DvEwwk7ZT2k0G1E6ijcZxBiIBxYQ8Y7600w7RPkkJrClWCjgf9q1XWo6OyHZ62VUMWZHuGbnw0O9nm1sWabwNMr2DEqUuJpk4RlDnXjEjzOhQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=oracle.com; dmarc=pass action=none header.from=oracle.com; dkim=pass header.d=oracle.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.onmicrosoft.com; s=selector2-oracle-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=j6fMZxrLov6UsXb1jG+3t+Al10nEnlrf1B5mCF8J+Z4=; b=POBuplg8TCqsEPSLU301LRaRN8V7qT8tctbsB6L7RIZAEGf2MOATTFpjwykwGkxej7fWXwiF87nzqN0w2fN9Wmt4VeoWopw93GAV/KKRcfVonVKI1Wxf2p/PDmsUgujUMKYzyxZoXQ1dB4VMGtTm9fKKlmpngy+vIFlO1aCLuus= Received: from MN2PR10MB3374.namprd10.prod.outlook.com (2603:10b6:208:12b::29) by BY5PR10MB4179.namprd10.prod.outlook.com (2603:10b6:a03:206::8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8377.23; Mon, 27 Jan 2025 12:26:13 +0000 Received: from MN2PR10MB3374.namprd10.prod.outlook.com ([fe80::eab5:3c8c:1b35:4348]) by MN2PR10MB3374.namprd10.prod.outlook.com ([fe80::eab5:3c8c:1b35:4348%3]) with mapi id 15.20.8377.021; Mon, 27 Jan 2025 12:26:13 +0000 Date: Mon, 27 Jan 2025 12:26:09 +0000 From: Lorenzo Stoakes To: Wei Yang Cc: akpm@linux-foundation.org, Liam.Howlett@oracle.com, vbabka@suse.cz, jannh@google.com, linux-mm@kvack.org Subject: Re: [PATCH 2/2] tools: testing: add unmapped_area() tests Message-ID: <2edd9e29-2d0f-43d4-944d-f58c26249198@lucifer.local> References: <20250127075527.16614-1-richard.weiyang@gmail.com> <20250127075527.16614-3-richard.weiyang@gmail.com> Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20250127075527.16614-3-richard.weiyang@gmail.com> X-ClientProxiedBy: LO4P123CA0512.GBRP123.PROD.OUTLOOK.COM (2603:10a6:600:272::18) To BYAPR10MB3366.namprd10.prod.outlook.com (2603:10b6:a03:14f::25) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: MN2PR10MB3374:EE_|BY5PR10MB4179:EE_ X-MS-Office365-Filtering-Correlation-Id: 3a1c9e11-c387-4795-a267-08dd3ecdc8e3 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|366016|376014|7053199007; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?iwgmFnLNvV1Uipd51LF4iGEZhzGSg5eZYOqaQuml7Rl6A5TPWUiGPr62gpNU?= =?us-ascii?Q?S2Wz98k3gxoShP1jbirGxEhytYDvyZdYuranPBlhJjrO02CCiBK5BxsetuQk?= =?us-ascii?Q?LiWLT5fUpBGiOMK3/d2tNomv38FxlMj1pJ8oE8vZ+nkIbYN5+rLlJZ6jevyg?= =?us-ascii?Q?M+kSTp5l7eD5LL1XhIOH4gJGBApCEiYhHu9t0IWY//N4Dr/XnSwfdLvCQd+m?= =?us-ascii?Q?Mr36iLustONp+Cg05HlhqQvQ0+S2GAql8WumMpCCRDwhkccHHcmNodxKQt8W?= =?us-ascii?Q?6jPTBPpkIY++j+Vy3faD4W0g0yiZMVyA3geceb0XdKArgKLeogJsqSENYfMf?= =?us-ascii?Q?+8icQ6UFTwYSkjqpN8KgFgmf7YYUmwnsFNo98lBNBUnpsnzhtWLIOW/kCn50?= =?us-ascii?Q?ZMLfMju+Sbmdh8/6QFsXnqi47tBHaMJA5AxMAJ70o+O6u1aRK5cGmmXcVZrn?= =?us-ascii?Q?CYdqJMSTHX5Cl01vIwBO1CT+FibePHBWbr4nxmo5g2i4KrSFajQKGLmpI3XY?= =?us-ascii?Q?yxdcxwQvMv4jpj7XPfDFVcJrSwImObc3iNCau6RMh1IKahDX3p+uQ5HlHP82?= =?us-ascii?Q?iWPZti/AcOCbX0Ynmd3lBrIAI4IVkAyubFSBFuYo97pnDaJliGfNFKlU4Xa2?= =?us-ascii?Q?jIoW4EcaS459iNJXNQ6SsQJxUk0Tuz0s41eEfFep2R3BNmXzQ1vLoNP6vjHD?= =?us-ascii?Q?muCX4mCwlMBRkgtkdVpY9W9TZaGd3nqNAOyVMuURH7/yDixi469NRqAHY+3Y?= =?us-ascii?Q?ms96SciYGnhSyw7fEezY8q4ps91Tsa88KjEuDw9I/fZRYMXIhcGLI05H+j5d?= =?us-ascii?Q?CWM/7oEZu8XyjWNsGwR6A3gcWNDAG+iwHahz7Q+1X1p5UHHb9qHtoAXc438G?= =?us-ascii?Q?UJTtb63mNyij93ZxXoPUfvG0/4IcN54sBhsQrUhrtPTPvcpg+m1+Mp13K3KC?= =?us-ascii?Q?a17IkVZqfCrJKGF9Fwx2PzocuzsrL2iB3eGNSS9y6mO0OC9jtWbJXkqlYY3e?= =?us-ascii?Q?e/Ei1tEs+rl4Js0nzu829c2rIUeqfuHI0IemJ8Ivg/NpAlMVhcJFeelTi6z0?= =?us-ascii?Q?5hCPqsL9gkC8rJCradlLyxTlgBewaX6lJ0zHyQCGagrDzIFzRcE+QMcqry4B?= =?us-ascii?Q?qGXHrVCk/jriiVDZ9F13GF5CpbXoUPApCRexHN25VqUDRff5B56A61Yo1ZGs?= =?us-ascii?Q?vzLc2SblQNP3qzoKgPIRD/7byrgYpnTsvmpAj3xNp+7I+4i7uTbisvmxWZ87?= =?us-ascii?Q?iKWvqXZaTslm+BBcCeab9+li1eF16VOn/K52FfGPwkwKuj87nZqDerlN/ZDa?= =?us-ascii?Q?USRx2dfEydNHu+knG3G21DJbtgWmuSgd4dqEdUHDutVYKyccPwRYBr8WMGZ+?= =?us-ascii?Q?SK6Y8uISnREFebs8fzHMgmNsOP6x?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:MN2PR10MB3374.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(366016)(376014)(7053199007);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?Tz8wE5wzC0Nd+iRg7GMW5n92h5uFEFNq1VV2Cg3jurEErdEL93cNuq8pfqLn?= =?us-ascii?Q?RQ6gXP+w2jwvVVx9x8HZXoCPnVpacZ7QBRuX5kwRlbKVRSn7rO4Rpp0VROJK?= =?us-ascii?Q?FS1Y1vdQI6tOmJVUSs8qttYkC6b1Wn+F8+0FyFekW+OVubDtP65IW0X3O0Tz?= =?us-ascii?Q?SsS+mwUOXIr5AMWgdrXH+8MJP6qi1IZO05mG23BZ3d0axRuPIkRvht/HgYpX?= =?us-ascii?Q?it8nah8PRb2mXUwXRmH6gH4Thle3TERThgpy1y+TBuUl8MTqWLq4YP/ftb8o?= =?us-ascii?Q?ol4m7Jl32enTvafqpR56xfcTLAT2L+EUCTkm58RNXYd31K9klkcLwUDFUjAC?= =?us-ascii?Q?nCXDaT4uVJrNnNwR2+ciCdK7tbj/pykgtKOdERypILx7ihgdqa+yAcrtp6Yy?= =?us-ascii?Q?0WU1ME94qpxvW/H9GMfiA4geE9SKZ6Ix0h77Ixg9hBSIrO7J1sZ6JWTT5CAD?= =?us-ascii?Q?dZ+417/Y9ExBmfEiBO9Io/zH4E0+xLnZj3bP0f8MnYWQkt++dv2oXg/Vp5jk?= =?us-ascii?Q?mE2W/OTLBtEN3tKsokwivJgDKMCSXmgGyKtnMBO2yloL+d9pm9fgviBz91mi?= =?us-ascii?Q?iUnovAxCQb3wWuDdC6vsPbd5G9+H+WERmY7kuuQHR9TVHkHyzmrS/n2gy6Sf?= =?us-ascii?Q?3wM3C1ZZj3Rn+nzMA/VFrCalznPjXaHHU2SHrbpLUzTpSfvmurCm6NIuUiiR?= =?us-ascii?Q?6ptOVnhd17Ww7k7tRYmi2vAMfTdVNjAXn+mvfV/PhSLt3ZIOvV+omiPz7lyu?= =?us-ascii?Q?yawHJl11Vnmi2iGsLVke7ZSEs8mnsqxM7oTNBVQOyOOTCy5+1U0pRzHTQLTI?= =?us-ascii?Q?r/AcEVBAJuTm5vojneYBp4pO0hs766P5GisJZagHoqb3BQwaX8BOyXQGmHMR?= =?us-ascii?Q?f/eFXzqGuYQ8BjY6IrGH0ElWceng3e2+WPX0FCixETNpkWSmHjHXGiAsYECY?= =?us-ascii?Q?9sHYsqRtSFNLguhsJ+Kz5FAPmpnuab8My2A8+lXpnbHd6R1jymu4ElvndH9S?= =?us-ascii?Q?fZYzloj9E1Uo7bwhcSJDLWT0uzwPWeyTfkyiNBAsYZ1sjGkssNP7SaVccWcF?= =?us-ascii?Q?EO7vjud7w96l6me7ZZ3w3BiTj9wQiH6gIKNiZPJzpOtsfEgKgEfQOMaegNt1?= =?us-ascii?Q?9/1GtjwmLlBbMJhkeycNFDASEgazeQXrWzmMtXoj9rSlTZESYTHaMu4FBKuT?= =?us-ascii?Q?wIl6htu/VSRxQ0qrsAYKK721JSeQkTF+e1XPYsnryAsHY9+SS4RbtGzXVXrd?= =?us-ascii?Q?CmeSWVui/UGQ1kyuTPP917v3WGRlw9feJrqoMYMb4BllizM4lTtnR8e+bVXg?= =?us-ascii?Q?94lRykIgdTcipohwmv0m2CHbQXdIk02bS+bzgj0tm8ufVv1hUavQXnsZYtkt?= =?us-ascii?Q?EH+/P6yWZhEBqCz2xkKM/CQUO9/q3RZEGDtWEteMajz122j9yXGeN4WboJ04?= =?us-ascii?Q?Hh3KjvS718U9BaQsaQt25DTM+ZBfz9U/mp1McCPkpJjDsXHZJnPKEeXSd2BY?= =?us-ascii?Q?qq1ynISmfHKPqf6wsbgZMgmEn3c+A7wHimZ+Nn6bIOGba7VlkrEDWWKXzIeI?= =?us-ascii?Q?gHUh/r1+eSPj7Ahi5WpsLZ2XuvpKQUBrkt6IpSLuxeW3PPur4KrX0CkBQGvc?= =?us-ascii?Q?ZA=3D=3D?= X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: pnHzjFJjx2EBSNvfm6XQqWbgM1BlRVPiIayD/ckiV/vmQtFTTD/o9NBkkB4DTEwEHqWt1G17MSMZJrR9oU+Y7aPrJ4g68w0YogydIFpOKHjAFbhHCjUp8XsQASiQIR4TD7TbuZAA3tsAMrV5SIyfZL1ZoWeZF4Fh66JrcAYsIbOqSSXIsTcUKWrXIaO9/uilh95xlBcNx2R+H3uTBWt+rHBrsjtN+ia4lRW5kHitUVgohgSM49ZeYfgs5WmfCUUmNC7dZf6tStYbgZ6cCTXu/FsosJHNGHSTFgMvFY70sdBqzWy5OLNIigwYFI68jl+hrpeSmHz+HjpbGxUTjJPdtrxuoKEcLlCVC6gKbXfHosls9Vzm1nV5uo2R5Q9ENWvz8a+0e8goTaiNOgtpj2eRc1Ux4XBM8vkQn33plOKYcwrOYclmOfhHGnPnmMp2fRjxqcjNbnzQWAPjIxILEmjFUqGBZXGwMp/NU/0J1b2rfc9rO/CsH0y9y8f7F3pHsKdH2UQFcp7fA3KFDSuGL5cLPCekHz+885qZJsfiWO0y77TX1PRpTqSmvJVR/UaDEAy4mQV8Stbc7ZEwgwURcUZQsxRTThdL/3WpdLbJb+fgsGk= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 3a1c9e11-c387-4795-a267-08dd3ecdc8e3 X-MS-Exchange-CrossTenant-AuthSource: BYAPR10MB3366.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 27 Jan 2025 12:26:13.2393 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 4e2c6054-71cb-48f1-bd6c-3a9705aca71b X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: ZBrixNPf+UXdccRg/yiebeYmbc8VfzFhHwb18/DZyM4/ClVCa8p33GxyPyXdobQDYoFKD8+Y9t9244vEn2p7w4ochtxpxuobdTzl+NvtFdw= X-MS-Exchange-Transport-CrossTenantHeadersStamped: BY5PR10MB4179 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1057,Hydra:6.0.680,FMLib:17.12.68.34 definitions=2025-01-27_05,2025-01-27_01,2024-11-22_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 malwarescore=0 mlxscore=0 bulkscore=0 phishscore=0 suspectscore=0 adultscore=0 spamscore=0 mlxlogscore=999 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2411120000 definitions=main-2501270099 X-Proofpoint-GUID: CAYblGlyBkkbdQG6j7IJEFN8_U3PKUhC X-Proofpoint-ORIG-GUID: CAYblGlyBkkbdQG6j7IJEFN8_U3PKUhC X-Rspamd-Server: rspam05 X-Rspamd-Queue-Id: B6C0440008 X-Stat-Signature: emy8bq3s6wyismh3g34p9s5efugs7rcr X-Rspam-User: X-HE-Tag: 1737980784-472186 X-HE-Meta: U2FsdGVkX1/iOwF1eOHpghf5SLQY+ydabPIWIHE42heFvY4WUuJLHu0US1O+IAGHFr0pBxH+US6s5RGPbJj0Cz1KeZq2MXRMDlhof9GZ8VozdBY7VWzuhdfzL2KKjPefWHShU0JRF7ZsTxCPCTKv7tPmwlUt6jmGGpQlq0PVCM5mJUhvdgkUglOLj5t96pSGQIueq8d/WUyy3NFIfBKKP9HxaMW6tnt1R2mVVG26aIVSP2Ra40QfAmuDZwncCeVUqyU2XZXhJO3Wr0FbuhBITXT7Olkj0ziwlVBzyIp1qk6iVQSXBWBFqUUq7gNmV/QWr7DayMr99iaWBXQtZzaOXbK4I9l4C21r0zlOND2n34n4NvGys4aSp1IyTuf8ByFGxuSwswK90MucmxG4J0Hf8cSWV6lwhOwpPuj82letGg7y84r4eoyW5v0IrxVShqdE+I3PHcCym2UoIkWQiZrJNbOwAOyKFMbwoETDULuAXaEHy63rFIj9GI22Oyk5cNIrqEK55zJuB2eur5oVXGvUemt9cLjCGj0iZCFQF5nY221FtmoH0DuqVZbSRnsCp9rciA81ABgiZKUOCGXhixd8beBVA9MM9hJQ+ZHYak0tFAeghLg5WSL5/AbWYAyyqHqVJMWXNQ+mSI5MgDpEbZGEDWRDfRjcsQYtpEH09v8AhGUP4NHRONP6cZF0ojErDRJo2ZU4r++vSL4l0GdG8xwq6NtpBU7z/B1LjZ4EsLP3SMiMJgbuuiqbNqXVMrifgPQD1o7DplX3KbBY2XGtfCLxFHRMi7sbnW+r0XbSWAC0MZzIMxOU/bk/Zye+cHWsrKX1cAS3DKPfYKSZLYBkG6LntLeLHVsK+JobOP2wMwKGVN54uhjPMPt050G0gJtcfmZiOq7HO8NGGix+0efNdMXzkFGikup/jOuEyhbWAUDF32rTKhYU2xXdDIlmI293tgUKSZqGhg4E/87jUnBtJDH 6YOTsZP5 XoZ9n8Sqa9+VqNLX2q7hgku2Zdi95ZESxSr2l18lqpVDraSd6CTPqjZX5p0pDwcOhevT7ZXsW50SnUaauv9O0hlVYxSv2TVOx+6haYKNOs5qKYOg6q7qt0DCQzY6Ojp03SrXAueKkv5boQchxbrjJAXYi32ihA8VSwdogHx3/RQOC+2xOqaWiGlA+qpUkTeL+g+QCroq8idX9g7KV8KdgBYJmv85bJp+9aPEqPaKuIUDhRtBwYOXCpWyt48/SydPMxOW3cAkRJyNXX++XMKsuDlKjGPFAQn+XVTt8Cd6WV1T0gJoIWmId6ty1wvhj7jfJGSN0Bw2YNaZkw+9TwvbFvr/LT4Bi9Z9UfDrSLcGkglGEBvb9M2G4R7Wtm1IMjowxwc+ZNnjAOJgjX3+emahSOjhYe8wdqMygjsRw4LVOmV7r7jmANts9vWFrt13ZJF4kt1yOc9HRaA9ronHodaqlbUFLyq+2GXzpOUKg8psoY0doMWEqpItnjE4OE2PVQ14ZT53OTSuJiV2NKK5G78/UwqE5q9BeA+DXXDsIZhmr4FPkzDkGzV21VXDkhwq3R+Ix5m6SgUOx7W/XDzCLxDvGNyJXPL0bTxXjuym7ZNoQ1K3ASLkmAYj7mwjjvzC0fysfDgy00SjlhqssqlZ4vCZpBGzK/Dbm0awYwWSdL4AYp4StmvbIjo61MyIhDIXLy/Bu1NDQhkE4B3Ct1gVdu7fmhAAy/iU0Qb/gvxE36AyMDZ2E9II= 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: Given I wonder if the patch is even correct, probably a bit superfluous to review the test but, just in case :) On Mon, Jan 27, 2025 at 07:55:27AM +0000, Wei Yang wrote: > Leverage the userland vma tests to verify unmapped_area{_topdown} > behavior. This is really not an acceptable commit message. You are adding tests for a very, very specific scenario, you're not testing these functions in general _at all_. If you have indeed found an issue, then these tests must be majorly refactored to: a. Be vastly, vastly better commented. Like it's just borderline incomprehensible at the moment to me. b. Assert and explicitly the alleged regression in an individual test named as such with a comment explaining what's going on. c. Rename the 'general' tests to explicitly check _stack_ behaviour with comments to that effect. Right now this is way off what's required. > > Signed-off-by: Wei Yang > CC: Liam R. Howlett > CC: Lorenzo Stoakes > CC: Vlastimil Babka > CC: Jann Horn > --- > tools/testing/vma/vma.c | 177 +++++++++++++++++++++++++++++++ > tools/testing/vma/vma_internal.h | 2 +- > 2 files changed, 178 insertions(+), 1 deletion(-) > > diff --git a/tools/testing/vma/vma.c b/tools/testing/vma/vma.c > index 6c31118d5fe5..3c1817b01ac8 100644 > --- a/tools/testing/vma/vma.c > +++ b/tools/testing/vma/vma.c > @@ -1735,6 +1735,182 @@ static bool test_mmap_region_basic(void) > return true; > } > > +static bool test_unmapped_area(void) > +{ You are not doing a general test, you are testing a VM_GROWSDOWN for legacy mmap or an arch that does upward growing stacks. The test should explicitly spell this out. > + struct mm_struct mm = {}; > + struct vm_unmapped_area_info info = {}; > + unsigned long addr, addr1, addr2, addr3, addr4; > + unsigned long low = mmap_min_addr + 0x2000, size = 0x1000, gap = 0x1000; > + unsigned long stack_guard_gap_old = stack_guard_gap; > + > + VMA_ITERATOR(vmi, &mm, 0); > + > + current->mm = &mm; > + > + /* adjust guard gap for test */ > + stack_guard_gap = gap; > + > + /* > + * Prepare a range like this: > + * > + * 0123456789abcdef > + * m m m m > + * ma m m am start_gap = 0 > + * m am m am start_gap = 0x1000 > + * m m aam m start_gap = 0x2000 > + */ OK this diagram is cute but I have NO IDEA what is going on here. Also here you use 'a' not 'A' as in the commit message for the actual patch? We need a key dude honestly. > + addr1 = low; > + __mmap_region(NULL, addr1, size, > + VM_READ | VM_WRITE | VM_MAYREAD | VM_MAYWRITE, > + addr1 >> PAGE_SHIFT, NULL); Ignoring errors? Bypassing the mmap_region() logic? > + addr2 = addr1 + size + (gap * 2); > + __mmap_region(NULL, addr2, size, > + VM_READ | VM_WRITE | VM_MAYREAD | VM_MAYWRITE, > + addr2 >> PAGE_SHIFT, NULL); > + addr3 = addr2 + size + (gap * 4); > + __mmap_region(NULL, addr3, size, > + VM_READ | VM_WRITE | VM_MAYREAD | VM_MAYWRITE, > + addr3 >> PAGE_SHIFT, NULL); > + addr4 = addr3 + size + (gap * 2); > + __mmap_region(NULL, addr4, size, > + VM_READ | VM_WRITE | VM_MAYREAD | VM_MAYWRITE, > + addr4 >> PAGE_SHIFT, NULL); > + > + /* start_gap == 0 */ > + info.length = size; > + info.low_limit = low; > + info.high_limit = addr4 + size; > + info.start_gap = 0; > + addr = unmapped_area(&info); > + ASSERT_EQ(addr, addr1 + size); > + addr = unmapped_area_topdown(&info); > + ASSERT_EQ(addr, addr4 - size); > + > + /* start_gap == 0x1000 */ > + info.start_gap = gap; > + addr = unmapped_area(&info); > + ASSERT_EQ(addr, addr1 + size + info.start_gap); > + addr = unmapped_area_topdown(&info); > + ASSERT_EQ(addr, addr4 - size); > + > + /* start_gap == 0x2000 */ How can it be 0x2000? It's only ever 0 or 0x1000 (and only 0x1000 for x86-64)? > + info.start_gap = gap * 2; > + addr = unmapped_area(&info); > + ASSERT_EQ(addr, addr2 + size + info.start_gap); > + addr = unmapped_area_topdown(&info); > + ASSERT_EQ(addr, addr3 - size); > + I honestly have zero idea what you're testing here. You really have to add some comments. > + cleanup_mm(&mm, &vmi); > + > + /* > + * Prepare a range like this with VM_GROWSDOWN set: > + * > + * 0123456789abcdef > + * m m m m > + * ma m ma m start_gap = 0 > + * m m aa m m start_gap = 0x1000 > + * m m a m m start_gap = 0x2000 Another diagram that is cute but where I have no idea what is going on... > + */ > + addr1 = low; > + __mmap_region(NULL, addr1, size, > + VM_READ | VM_WRITE | VM_MAYREAD | VM_MAYWRITE | VM_GROWSDOWN, > + addr1 >> PAGE_SHIFT, NULL); > + addr2 = addr1 + size + (gap * 2); > + __mmap_region(NULL, addr2, size, > + VM_READ | VM_WRITE | VM_MAYREAD | VM_MAYWRITE | VM_GROWSDOWN, > + addr2 >> PAGE_SHIFT, NULL); > + addr3 = addr2 + size + (gap * 4); > + __mmap_region(NULL, addr3, size, > + VM_READ | VM_WRITE | VM_MAYREAD | VM_MAYWRITE | VM_GROWSDOWN, > + addr3 >> PAGE_SHIFT, NULL); > + addr4 = addr3 + size + (gap * 2); > + __mmap_region(NULL, addr4, size, > + VM_READ | VM_WRITE | VM_MAYREAD | VM_MAYWRITE | VM_GROWSDOWN, > + addr4 >> PAGE_SHIFT, NULL); You're explicitly testing stack behaviour, again you should document this by naming the test appropriately or doing it in another test. > + > + /* start_gap == 0 */ > + info.length = size; > + info.low_limit = low; > + info.high_limit = addr4 + size; > + info.start_gap = 0; > + addr = unmapped_area(&info); > + ASSERT_EQ(addr, addr1 + size); > + addr = unmapped_area_topdown(&info); > + ASSERT_EQ(addr, addr4 - stack_guard_gap - size); > + > + /* start_gap == 0x1000 */ > + info.start_gap = gap; > + addr = unmapped_area(&info); > + ASSERT_EQ(addr, addr2 + size + info.start_gap); > + addr = unmapped_area_topdown(&info); > + ASSERT_EQ(addr, addr3 - stack_guard_gap - size); > + > + /* start_gap == 0x2000 */ > + info.start_gap = gap * 2; > + addr = unmapped_area(&info); > + ASSERT_EQ(addr, addr2 + size + info.start_gap); > + addr = unmapped_area_topdown(&info); > + ASSERT_EQ(addr, addr3 - stack_guard_gap - size); > + Again I really have no idea what it is you're testing here or what's going on. These tests are really hard to follow and it's not clear you're actually asserting that the alleged regression is resolved? > + cleanup_mm(&mm, &vmi); > + > + /* > + * Prepare a range like this with VM_GROWSUP set: > + * > + * 0123456789abcdef > + * m m m m > + * m am m am start_gap = 0 > + * m am m am start_gap = 0x1000 > + * m m aam m start_gap = 0x2000 Same comments as before. > + */ > + addr1 = low; > + __mmap_region(NULL, addr1, size, > + VM_READ | VM_WRITE | VM_MAYREAD | VM_MAYWRITE | VM_GROWSUP, > + addr1 >> PAGE_SHIFT, NULL); > + addr2 = addr1 + size + (gap * 2); > + __mmap_region(NULL, addr2, size, > + VM_READ | VM_WRITE | VM_MAYREAD | VM_MAYWRITE | VM_GROWSUP, > + addr2 >> PAGE_SHIFT, NULL); > + addr3 = addr2 + size + (gap * 4); > + __mmap_region(NULL, addr3, size, > + VM_READ | VM_WRITE | VM_MAYREAD | VM_MAYWRITE | VM_GROWSUP, > + addr3 >> PAGE_SHIFT, NULL); > + addr4 = addr3 + size + (gap * 2); > + __mmap_region(NULL, addr4, size, > + VM_READ | VM_WRITE | VM_MAYREAD | VM_MAYWRITE | VM_GROWSUP, > + addr4 >> PAGE_SHIFT, NULL); Same comments as before. > + > + /* start_gap == 0 */ > + info.length = size; > + info.low_limit = low; > + info.high_limit = addr4 + size; > + info.start_gap = 0; > + addr = unmapped_area(&info); > + ASSERT_EQ(addr, addr1 + size + stack_guard_gap); > + addr = unmapped_area_topdown(&info); > + ASSERT_EQ(addr, addr4 - size); > + > + /* start_gap == 0x1000 */ > + info.start_gap = gap; > + addr = unmapped_area(&info); > + ASSERT_EQ(addr, addr1 + size + stack_guard_gap); > + addr = unmapped_area_topdown(&info); > + ASSERT_EQ(addr, addr4 - size); > + > + /* start_gap == 0x2000 */ > + info.start_gap = gap * 2; > + addr = unmapped_area(&info); > + ASSERT_EQ(addr, addr2 + size + info.start_gap); > + addr = unmapped_area_topdown(&info); > + ASSERT_EQ(addr, addr3 - size); > + > + cleanup_mm(&mm, &vmi); Same comments as before. > + > + /* restore stack_guard_gap */ > + stack_guard_gap = stack_guard_gap_old; Be nice to have test bring up/tear down. But anyway. > + return true; > +} > + > int main(void) > { > int num_tests = 0, num_fail = 0; > @@ -1769,6 +1945,7 @@ int main(void) > TEST(expand_only_mode); > > TEST(mmap_region_basic); > + TEST(unmapped_area); > > #undef TEST > > diff --git a/tools/testing/vma/vma_internal.h b/tools/testing/vma/vma_internal.h > index 1eae23039854..37b47fb85a3b 100644 > --- a/tools/testing/vma/vma_internal.h > +++ b/tools/testing/vma/vma_internal.h > @@ -65,7 +65,7 @@ extern unsigned long dac_mmap_min_addr; > #define VM_SHADOW_STACK VM_NONE > #define VM_SOFTDIRTY 0 > #define VM_ARCH_1 0x01000000 /* Architecture-specific flag */ > -#define VM_GROWSUP VM_NONE > +#define VM_GROWSUP VM_ARCH_1 Not sure I love this, maybe would prefer as a variable but I guess it lets you choose the flag. > > #define VM_ACCESS_FLAGS (VM_READ | VM_WRITE | VM_EXEC) > #define VM_SPECIAL (VM_IO | VM_DONTEXPAND | VM_PFNMAP | VM_MIXEDMAP) > -- > 2.34.1 > >