From patchwork Mon Mar 17 21:15:04 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Lorenzo Stoakes X-Patchwork-Id: 14019989 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 565CDC28B28 for ; Mon, 17 Mar 2025 21:15:35 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 94C54280004; Mon, 17 Mar 2025 17:15:33 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 8D49A280001; Mon, 17 Mar 2025 17:15:33 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 6BF12280004; Mon, 17 Mar 2025 17:15:33 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0010.hostedemail.com [216.40.44.10]) by kanga.kvack.org (Postfix) with ESMTP id 4677D280001 for ; Mon, 17 Mar 2025 17:15:33 -0400 (EDT) Received: from smtpin11.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay10.hostedemail.com (Postfix) with ESMTP id 0D0F8C0682 for ; Mon, 17 Mar 2025 21:15:34 +0000 (UTC) X-FDA: 83232299388.11.E364035 Received: from mx0a-00069f02.pphosted.com (mx0a-00069f02.pphosted.com [205.220.165.32]) by imf20.hostedemail.com (Postfix) with ESMTP id A66431C0012 for ; Mon, 17 Mar 2025 21:15:30 +0000 (UTC) Authentication-Results: imf20.hostedemail.com; dkim=pass header.d=oracle.com header.s=corp-2023-11-20 header.b=IBD1y0SC; dkim=pass header.d=oracle.onmicrosoft.com header.s=selector2-oracle-onmicrosoft-com header.b=AfT90CYp; arc=pass ("microsoft.com:s=arcselector10001:i=1"); spf=pass (imf20.hostedemail.com: domain of lorenzo.stoakes@oracle.com designates 205.220.165.32 as permitted sender) smtp.mailfrom=lorenzo.stoakes@oracle.com; 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=1742246130; 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=5ALnRtJHBCOGTybACSflieRd9BTsCCokIy1Rg6CQogE=; b=4nQyw/Jv613R1eqgSWerRr9UwAXhlYOFStdU1Ax7KEpWPu5ej4y1QUr7ALu9KoFn0Au8b7 9ZRzCt+Vxn9kO7aky4lyu5YO+D7bUdPWhdjNx9ZbmnBqTZ/0Sm4r9UBlS7qTD5GlFjLGvA l4ml9OhoT5wH8C9mdYfIuEO7RURoZ4k= ARC-Seal: i=2; s=arc-20220608; d=hostedemail.com; t=1742246130; a=rsa-sha256; cv=pass; b=HBGGCyUWgIePT0IlTzwmhHY6PWF7gBmRj1aX7p/cddiFzsRK+gAExbZW07/6TZxEiMrZmk Fsxnu4npmfVfDigRbPyROccOFqt7Ddf9ImY8zslYAQzZeDKWaLB/FLnNvG/qk5YyOy8HAC cYyzutXMTcTX1eX0tHoK0PaDp6EGu/M= ARC-Authentication-Results: i=2; imf20.hostedemail.com; dkim=pass header.d=oracle.com header.s=corp-2023-11-20 header.b=IBD1y0SC; dkim=pass header.d=oracle.onmicrosoft.com header.s=selector2-oracle-onmicrosoft-com header.b=AfT90CYp; arc=pass ("microsoft.com:s=arcselector10001:i=1"); spf=pass (imf20.hostedemail.com: domain of lorenzo.stoakes@oracle.com designates 205.220.165.32 as permitted sender) smtp.mailfrom=lorenzo.stoakes@oracle.com; dmarc=pass (policy=reject) header.from=oracle.com Received: from pps.filterd (m0246627.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 52HKxULb020921; Mon, 17 Mar 2025 21:15:27 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=cc :content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s= corp-2023-11-20; bh=5ALnRtJHBCOGTybACSflieRd9BTsCCokIy1Rg6CQogE=; b= IBD1y0SCLo2BrBWLBMgrK7RlX4/ZFPBwclGgqbNQQnb8EUEj1cPSFiQGicsbOfks aNZGM8qF23vi6F5J5rg/0e/KWb1tTmr3EuxaJKC+BPn7lXxB1yiBfAEvJwp1ffKc 7t6OkEKKqVkH6AjCQ0dwG1uNecwDWecfV9INoSCzm3N1MTGPCiwO6JDrZ3c4Wvhv 2KvOSHiHbLy1z6fE8gLjXppeRLCtXGUckl40i2mukrly+syAZnOGFBA8BjR3Ex7K qEkArfeZmDBDCuOqc6nSr2KOg1nS4gQIb5IsFsobl5vq9q1HJazYPOYndh9oNNoH /nRUBjGIQ2DNqaBpyRteNQ== Received: from phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (phxpaimrmta02.appoci.oracle.com [147.154.114.232]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 45d1k9uxpf-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 17 Mar 2025 21:15:26 +0000 (GMT) Received: from pps.filterd (phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com [127.0.0.1]) by phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (8.18.1.2/8.18.1.2) with ESMTP id 52HJWHcf023892; Mon, 17 Mar 2025 21:15:26 GMT Received: from nam11-bn8-obe.outbound.protection.outlook.com (mail-bn8nam11lp2177.outbound.protection.outlook.com [104.47.58.177]) by phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (PPS) with ESMTPS id 45dxeefmgt-2 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 17 Mar 2025 21:15:26 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=x1aTLXFP0YoehRmJ8Cj3yZK01UNjEbFPS1c6plspUV+Y75zRuNLhc/pQEggO2WLRdOBhApcIDzy0SE9ly9cDEWJhQyLg8yWwxHY/SwsY9hAo8TY/hWK5NsbWiunkJG4gRxidvr4KdJPz7ltYzhrLD2cF/zCnV2oZVerrheQpRduHk+PTaRQxqoiHUIr7JnmubfIiLD+myF/Tu172WO/hdPVoU1moJTQm6X63Sp3votMIfbmkOFOTM4QC7I0tD+TfPCG+wHbFoVVaxbyKnIiUn4Lzuw5cukKQDVxyWerBQOQUBJLxjwLfS5IEO0KKqRryXuyrc9IMgXaGRrKy8XI5JQ== 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=5ALnRtJHBCOGTybACSflieRd9BTsCCokIy1Rg6CQogE=; b=gusF3pUCkEJpCYXhJ8wPl7zXmMTYY+6F93vvvaYma9lEHLSYBIMJDcLovm8XnAd77OvuDfWqxQnwOyEHGiJ7Z2fTc+9SkEZotYuOGVo1nd4xNdy9XMluzDa9msWuuWcXH3u8uu2CmJItnurdYL1VunG815WmukY/p5A49Q9UmuZvtEUqB9CejIMn9FcNmiQw8sBrCfuvqyeLkbnXYgu+Ekccn7+QQWddze+fq1Npcot/tyjZStd2jxWvtCe57HyDhSVoHYj6q00W6sqMPlMh6d+aeO/mjS9GqUZzR908EynZc6CdGDJWCgOVjc8Pk5AFU3QRPYItNbBy1mSqPpip7g== 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=5ALnRtJHBCOGTybACSflieRd9BTsCCokIy1Rg6CQogE=; b=AfT90CYpXiXTwCId4xN8Fhz+g5KiDeawqS/rcJF8sdpHj70SXv3+NmIEiLlJZj/QjcuZF0YezqeqmO9zaBrcTWTzUHBICHsbhOj1SemznAI9zEAbn3qvP6Cqbhn3tqKJHUK/6/fT/JRCfutgBjU8vMcviPc4ZlUTc6Yg3q/XAXc= Received: from MN2PR10MB4112.namprd10.prod.outlook.com (2603:10b6:208:11e::33) by PH7PR10MB7105.namprd10.prod.outlook.com (2603:10b6:510:27f::16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8534.33; Mon, 17 Mar 2025 21:15:24 +0000 Received: from MN2PR10MB4112.namprd10.prod.outlook.com ([fe80::3256:3c8c:73a9:5b9c]) by MN2PR10MB4112.namprd10.prod.outlook.com ([fe80::3256:3c8c:73a9:5b9c%4]) with mapi id 15.20.8534.031; Mon, 17 Mar 2025 21:15:24 +0000 From: Lorenzo Stoakes To: Andrew Morton Cc: Vlastimil Babka , Jann Horn , "Liam R . Howlett" , Suren Baghdasaryan , David Hildenbrand , Matthew Wilcox , Rik van Riel , linux-mm@kvack.org, linux-kernel@vger.kernel.org Subject: [PATCH 2/3] tools/testing: add PROCMAP_QUERY helper functions in mm self tests Date: Mon, 17 Mar 2025 21:15:04 +0000 Message-ID: X-Mailer: git-send-email 2.48.1 In-Reply-To: References: X-ClientProxiedBy: LNXP265CA0010.GBRP265.PROD.OUTLOOK.COM (2603:10a6:600:5e::22) To MN2PR10MB4112.namprd10.prod.outlook.com (2603:10b6:208:11e::33) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: MN2PR10MB4112:EE_|PH7PR10MB7105:EE_ X-MS-Office365-Filtering-Correlation-Id: 4b40cc0b-cae4-47fd-07f6-08dd6598d522 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|1800799024|366016; X-Microsoft-Antispam-Message-Info: IGAF+qG+o+XJri5a73zY6p4qF3nXu/0tIa1hQ7XdXXIwikDXn5ZuVenzAulpRiWPD2uiRMNS6gAV7sKA6QJ3hU7qW5DCSZkxQEiiRqNkIN8S+4za+aRqvsKkW6Jgwh3lLqbRd5TdAiZ64qfXkEScFyAhMttAl9GE7hi+mF9TpDGvfs6tPbJCAifKz9n+NxKnJeSH9wIom5KrV7g/RBGNijqk7icEX2UeoRyu/zV2wJS59UNpaRV34Oa1+xCKLGs44/99/8WABxeWdH+w5Bo8oxLIEsz81j+azdQXSrcIjVTzFBQSFPCHyBsT92PXEVrUqzAA2KcXvqbnUssYIPHRgRzEfSUYjMe3mvh2/B7qGlQcnq3P4tSCA66jYqB1fil681IHtEb9M1JR+9E/ukNIr2j71Wq965sznXRE5lEnI9yYeEL+l4+M/u29k8JtUttWQFlq6Jbhu1YaVSTPsTw8S9T18kCaXfjGpckaTKwVmkZ4w3tAr5HkXHWT8MuYg4wsezGL4h5ptCHCLElJ5COmITJF8IxKXGalYjjMGMB6c97p26VnTRDE6qkAg+ZVkv90nQ+0j6yzj7FohPZXP/KCaTxlpXwTvu1aoI1tGsaPKWWa9SICjYtCaFXgThw7IvwiKLhUXGctXaSqnmVi2gaQUr0GEkBQ4H+BEkRBi1ebmaFr3cs4j1RQLb2qfbwvoDj5ZRde0WXUp4rrvMw71BIdxq8OqKYHUdllqJDHFQFtKA2ioOm3K6NBqYJngXjKQFR3e7DfEOwqMxLTC1vlP/3OUMwliTUcDOBHkEEaRBSH5Ki2Q7cbVM4TRnAsycls/OgurzcQJl+Em6dHTG85zVCpSMzKBEYKMkbK072wIhD/NYwHvmOpZLbjNJFTUdTqm5s/UesZJDHL3f88FZPvTfqTBTYWEiYrP1haim1IkTi8tq8XI202avT0PmXTkfbX3otXCkthpik23dRqvGCdPM4Ax4vBsaSQzhdWUQHVOhhUmoRohQDkg4ZrVCF0V7/vKUi/B7ZKkkgwu9Z26eoGFTvwQW6isUsp627OuwaSUQTxWy8DplGral4/Tp+EJWEhHPGabzFUoDpF667+VYff8akRlp+7UGhu6HUyamQ+56eW5Iz4NoREsyX31T/ldHrRRnpwDQc4/Pt9QRJHU89UsdMwo6RUoXJ4ErZadsnvkXMl97IxkeWM31DdPwW8nCZMsW7V8xykD4UR2q3gq5lrPFT++sxTwRcNpMtggC2MZF1eXad5GrvNxQdx1KaqCbaesxA84cgIe+j8wla1CD1vJsfb0yC2cshf+IbzyLuDqKztNDJOyNoNbrA1bhO1WYVqnlSCQK8ni4rpC0TFLc988goeYgVolpH6nm+7CgcWNgYuU4iBzn4uQVFpXIH45mnxvnd4 X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:MN2PR10MB4112.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(1800799024)(366016);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: NKDHBC2+aiGOWkxG70jV0N7zaXm1YmZDb8Llbar4e+HnpXY6xmpSUcvvhPJPCQ68Fcud25eYyb8udZrv+TJua5sKvsXApJzgQW1SvJmJG13gYEFOgHe0/7JxwRIy4D4zz5p9hdyYYVQiazXohAgj1Js2MDq/8qlHA59PniLCGbAMcXfLt4mTqR4QDXeNA6sJoUowLmVWywhO5uOCGy6wbAyJk40sdAGxN4pwzzObQ5ZKtkLENLLdsxZvD/MXSovCg11STTRLEkm3eOjd5WpUTRpl35LUlebufIC13abN3lompv92DvxsLpdUNjB2QSTz74rQrAuSONabDYHhNhLiyPrDyUTndm8I7owpec4Dms0MSbuyxB0781x3mLfs+E0Q9J+H1UBdx9bGyguq1uf9J/YuCdxhPwj4uJkLUU3/kpneBc7oo+8azuFK7DQ9FYc7Pt2Udub280QtGthoI0PyFbZWCQ0e/yxD5Az/BokA42uwxDQlDaDhN5lK7DuMpNm40BhoCbPCL4Npw5pAwO9vIVVU++U88DABGhmfXjGfSSFEf6e6BKP+E4KzeJe4wLYM7Ex7Ux60pXUY09YWQBYjrklznO5EPUHSqglaOigWkEm7VwKBETRc7kLbwwX2fSSOzoKMa3ibD79w5qBVmwbMsprtS+iHOWtjc5rN1LhZNDLsnOl/Bq3i7cU/dn7UfAqnLJBeiqHcuvNacqhrO4kXf1WRCDBpkSdI74KiY70EngkcsacRBnkgTtd3byB0yUp4h1qDwTrtVslARZqc+pm76fSZgqFyEZQG6wwxb+GsrR4r9fei62Nh3ait0D15bSJczmTYNjxgN5Vpe6R3YAFTtsR2LQwFZLLBqH0GPZKV+0q8t9pG/YuMWleZ+90xBoZ8lNJ2YACVGwQ9YMQXDThZlH3GAzCzUFXqkIdrIEywl5Z63tblSZhog10fgFWzQkwFsyLbXnNicQFUfjP/DaipmDkYMhtzTGSn0A57pffvQq8S72OeYJn3rQuKmvfK42/jftleXZA7Q776NQiJcHaB0fOfIkz6Rwiy0NuNs4znea7AzbCsDXu7/WWeywdavtJSwv5G0gdCdFtfYSfU3LgENoYndhDjCdY/nZbW0gnuMsCgDrjEb+7Bie/lL6xjZFvmkqjYEXmmStiijKhZbelJNt4MCU38x2lJs62w6rxWWqi52v5pRdWwDZQIDecKtS3oRuRIBIleUZVdXAoS+xl7QbEP/Sndygvc8zmTucBA21/Ktj2W9e51oJSTQ4kgFd8FT4Mx4FBTJmk03HYwILELSMGPaJ5xHbXoSfoA0HqiTcsM4rLNfxBYMR/02ft6lQ9yXJhmg9vIve43gbKqoQOBroElTR17WW3gjXQW9knMGy4xpntWI1p1Ib1JZ1N4MvrDMnoVmjQAXJNdoE5Cw2IRfd4xYS4iTPcrgXgKoefPNvSWFU2dzHQ05Egu/qysJ1ZmaFkQj81fv1SKYKVlcFKex8ga944YreP1IhUdSvbt4iKU+20L3vtyXSYERwFAzBJSh9lRWSDhgjzeM3W9chc2aEy0gjbzmEpiv2hKN42sfmmqAktS9GRoc18HI9WGI7H4dXLCZcRmFphpEYSSzGQezA== X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: D8nulWBJKpyQWesQNPT9BkhSXU57CsuujyQGh7bMs2FI6W3XDk+MaILvx4T3+/ZN9OedZtP8+nuklVZO3bcQyIbgKe+rLZSOVNURFrfqS6w6hON0IZgwE+nsAkfW7nQVpJwt0nlNR7chZeri7p6FxMopW6G8WHTaOV3fx+K3lgrmYSS8ezYGTasAPOBeRJmaGm+stHCdw1/ugWopHvNnUA9rwqp9wcj4PpfVFx5go0gxarY1H7j/K0wIIXTRFd4Sklnq/12mjH3jXSoTD3+zlUvNXKPT7j92YE4Iz7Z0xNzM4jPSXNCbN6rKYDzSiFhyxG9L0An7z+6eQlowvT2M3PnyjrTvHjV6V88Yp+4wr3RzbtxgBLZYOg57p5Q6SrcGBYbeLt+FPuCg+FZb6wb689LELCru3N1kbQrk36WMa8zftLY8cB0z6HffF7rPvsgRHxl6omTpSJFbNbN3WWfXVhWwwb02vZqA23/bzMZXhH+Bl8gjWlWNjsp0eLrbPUgZ3Zn68uaIPkBJxCpd3zvsABu15NOZb56Yk3WQ8FrdZqAYSDOpEnn6s6o2j+a9KV6OxzenS0ao80aOJick4vmAZDgpTTy+rVv4mDSyttTVVBI= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 4b40cc0b-cae4-47fd-07f6-08dd6598d522 X-MS-Exchange-CrossTenant-AuthSource: MN2PR10MB4112.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 17 Mar 2025 21:15:24.2778 (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: 6tCf4pOg2VAZKpHeKWMkgHGXTWb4nNIDBn4xSYHdgwRlV3YXt7SZpNmdsPow3AxLJedNo+jx15tHjSa4Mx5M5j4uW0158GtgOiL4m6jP/lk= X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH7PR10MB7105 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1093,Hydra:6.0.680,FMLib:17.12.68.34 definitions=2025-03-17_09,2025-03-17_03,2024-11-22_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 bulkscore=0 phishscore=0 mlxscore=0 adultscore=0 mlxlogscore=999 spamscore=0 malwarescore=0 suspectscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2502280000 definitions=main-2503170153 X-Proofpoint-GUID: WKbj2fwl6-b4KPIR04sY7JRWS1wgIB1l X-Proofpoint-ORIG-GUID: WKbj2fwl6-b4KPIR04sY7JRWS1wgIB1l X-Rspam-User: X-Rspamd-Server: rspam11 X-Rspamd-Queue-Id: A66431C0012 X-Stat-Signature: pohgn61pixkf6z1qtjufeiqxd4tixaan X-HE-Tag: 1742246130-947588 X-HE-Meta: U2FsdGVkX18CuhY13JF/q4hwzEr37lyZ3z3z0ZHuzK35mmL5hPCod2FW8Q+ufQ49bnGhNO1s7RVZcUFLOP4SAJ0xBBxewy74Hf7N2BYpwCXIwZgyEjhBh5/gUHp4jMfCRqvgTaUvWbkVguu3Xunjys0feVkJjUo93KkPu+cD5sjtE9gV/1JyGZNH96EJRD7B/cOzGg7Ii9JmTZSxYEAGg9Rqk9stfPOkYyXRMDqpbcMpedkwNCAecCWlMlQ/iutzG/5WZe1woq2f+mKmVEotOtIEhPtfhxeuNFS2dRFunZK5kN9SMHenDtcCcfTuu4fcsF2BfxOLogF7De78wQfAhHe19agszCoJTqkblgCCpvmkHVM6op6yXh4DV+9BerFRTRGeap/jj0m/bnG6J9GwP03E3NdjXorIEzFEMOVWSc9o/XQW/eMUg2vig6ur77K1prwvvQqV6aiBGApjgOL9fwJr/g9gwLhQf/7Tbz7jmuRCjO4eq8kjhLWEDLKOgJ8C4TV9qxL/uycjkZPE+GcJO5/5Xa0JCp2002wUmsCu5QTITJIWg7msjRFDODHZCJRr+X8XuN0mAEfh5bXPc7bWORkob94GGYNgb1zG9eNeYEdexaqTNis1iYMwZVv21DB90QMQeWwV2Wj5PIE3Iq0YDcvMmuX1wDzKGkEbunvD/xX5M5FTXyQmc+KON838IIq1kHZJgU7sb5/cbnXvhhubMCAwK75xxsoQDJI3wLo9T8wFzhhg5SzX9+n8atwCWIPlnFMWj0+7wtrQm3kRn2GRL0UfckO2/R14QMY0Uv97TWfxiAX95Mm3P66rxKYampc+XfhYTVuG1mbXsidVtTnhzI91qyQe9485MeQ7oHxTn7HKuAKdnXHkhpQKg9l29B3JKEX6PecOyR/+krncaBJyfNpQy4ydGSTr5oJEKnHacDRo5KUBVonjslT4YXTiB5YLXnzMLFk+yPFvjwA0FfR TGEnoq2Q u8fzE8QpJawi10vyRUkDaQmC0Lop3fmZ2tdxcHWT5UYoEcebBIwIjd8x0faayexYW3rfIOVljYnucm/JaCaLg1wZj8FtsdIlZUJ1ZheJbtzxyYuUnKhpcC3bcxOWntifmAuTSQJhtx8l/2nodMsiInLJyC1mXJAXzxcGr5PMkIDGsR4kHgm9DEvZbV5AyBlrTk978B8THSyiXq8IMXLOCbxc4BsUxfnima3ALoPMZq40/6tW0j1aTrgC/ZtkT4sp9c9AJWxEuzKENK3oguTDwx5TXdQb6DibmJvMbJf93ujQNborV8dccOoVRoSSjoFUS4LWTPf/4WMkUrim8OJaY7bJl+I1NrRD/vWD5pouESFK9xg7y7x0ugrQXt7dugmMl76hWue8UZJ4yzsdzUsmaWzdHks9E1ItBIj8NL40W817O4A7brPdEyZPtha2IJ3KEfEybvpe7619Q3v1uk5VkzbcLKmV5Jd0S279prpA0fUL2uRHhwT78T5jp3K0BWFQJ8GgNt+cS/XvWruBPdmOKKZhQhg0zTdyCdTG4Wlww1XmDTMrL22UdNWUcaA9urnXV5TAyzl/U70oISq/d95QMj6YJv7dVZq3+rd6hc9+67csGRbQVPXiQQ05wBW3CNIrA2lQiawZd26rbd9RD9Pp7YbMFRQ== 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: The PROCMAP_QUERY ioctl() is very useful - it allows for binary access to /proc/$pid/[s]maps data and thus convenient lookup of data contained there. This patch exposes this for convenient use by mm self tests so the state of VMAs can easily be queried. Signed-off-by: Lorenzo Stoakes --- tools/testing/selftests/mm/vm_util.c | 62 ++++++++++++++++++++++++++++ tools/testing/selftests/mm/vm_util.h | 21 ++++++++++ 2 files changed, 83 insertions(+) diff --git a/tools/testing/selftests/mm/vm_util.c b/tools/testing/selftests/mm/vm_util.c index a36734fb62f3..891ce17453cd 100644 --- a/tools/testing/selftests/mm/vm_util.c +++ b/tools/testing/selftests/mm/vm_util.c @@ -1,5 +1,6 @@ // SPDX-License-Identifier: GPL-2.0 #include +#include #include #include #include @@ -424,3 +425,64 @@ bool check_vmflag_io(void *addr) flags += flaglen; } } + +/* + * Open an fd at /proc/$pid/maps and configure procmap_out ready for + * PROCMAP_QUERY query. Returns 0 on success, or an error code otherwise. + */ +int open_procmap(pid_t pid, struct procmap_fd *procmap_out) +{ + char path[256]; + int ret = 0; + + memset(procmap_out, '\0', sizeof(*procmap_out)); + sprintf(path, "/proc/%d/maps", pid); + procmap_out->query.size = sizeof(procmap_out->query); + procmap_out->fd = open(path, O_RDONLY); + if (procmap_out < 0) + ret = errno; + + return ret; +} + +/* Perform PROCMAP_QUERY. Returns 0 on success, or an error code otherwise. */ +int query_procmap(struct procmap_fd *procmap) +{ + int ret = 0; + + if (ioctl(procmap->fd, PROCMAP_QUERY, &procmap->query) == -1) + ret = errno; + + return ret; +} + +/* + * Try to find the VMA at specified address, returns true if found, false if not + * found, and the test is failed if any other error occurs. + * + * On success, procmap->query is populated with the results. + */ +bool find_vma_procmap(struct procmap_fd *procmap, void *address) +{ + int err; + + procmap->query.query_flags = 0; + procmap->query.query_addr = (unsigned long)address; + err = query_procmap(procmap); + if (!err) + return true; + + if (err != -ENOENT) + ksft_exit_fail_msg("%s: Error %d on ioctl(PROCMAP_QUERY)\n", + __func__, err); + return false; +} + +/* + * Close fd used by PROCMAP_QUERY mechanism. Returns 0 on success, or an error + * code otherwise. + */ +int close_procmap(struct procmap_fd *procmap) +{ + return close(procmap->fd); +} diff --git a/tools/testing/selftests/mm/vm_util.h b/tools/testing/selftests/mm/vm_util.h index 0e629586556b..aaea0ef78322 100644 --- a/tools/testing/selftests/mm/vm_util.h +++ b/tools/testing/selftests/mm/vm_util.h @@ -5,6 +5,7 @@ #include #include /* ffsl() */ #include /* _SC_PAGESIZE */ +#include #define BIT_ULL(nr) (1ULL << (nr)) #define PM_SOFT_DIRTY BIT_ULL(55) @@ -18,6 +19,15 @@ extern unsigned int __page_size; extern unsigned int __page_shift; +/* + * Represents an open fd and PROCMAP_QUERY state for binary (via ioctl) + * /proc/$pid/[s]maps lookup. + */ +struct procmap_fd { + int fd; + struct procmap_query query; +}; + static inline unsigned int psize(void) { if (!__page_size) @@ -55,6 +65,17 @@ int uffd_register_with_ioctls(int uffd, void *addr, uint64_t len, bool miss, bool wp, bool minor, uint64_t *ioctls); unsigned long get_free_hugepages(void); bool check_vmflag_io(void *addr); +int open_procmap(pid_t pid, struct procmap_fd *procmap_out); +int query_procmap(struct procmap_fd *procmap); +bool find_vma_procmap(struct procmap_fd *procmap, void *address); +int close_procmap(struct procmap_fd *procmap); + +static inline int open_self_procmap(struct procmap_fd *procmap_out) +{ + pid_t pid = getpid(); + + return open_procmap(pid, procmap_out); +} /* * On ppc64 this will only work with radix 2M hugepage size