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 1FC31E77188 for ; Thu, 26 Dec 2024 14:17:55 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 6F2706B007B; Thu, 26 Dec 2024 09:17:55 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 6A2426B0083; Thu, 26 Dec 2024 09:17:55 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 51B1A6B0085; Thu, 26 Dec 2024 09:17:55 -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 309516B007B for ; Thu, 26 Dec 2024 09:17:55 -0500 (EST) Received: from smtpin11.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay03.hostedemail.com (Postfix) with ESMTP id 984F7A11BA for ; Thu, 26 Dec 2024 14:17:54 +0000 (UTC) X-FDA: 82937313270.11.5128B5F Received: from YQZPR01CU011.outbound.protection.outlook.com (mail-canadaeastazon11020119.outbound.protection.outlook.com [52.101.191.119]) by imf10.hostedemail.com (Postfix) with ESMTP id 5E384C000E for ; Thu, 26 Dec 2024 14:17:33 +0000 (UTC) Authentication-Results: imf10.hostedemail.com; dkim=pass header.d=efficios.com header.s=selector1 header.b=ulQxWNqA; spf=pass (imf10.hostedemail.com: domain of mathieu.desnoyers@efficios.com designates 52.101.191.119 as permitted sender) smtp.mailfrom=mathieu.desnoyers@efficios.com; arc=pass ("microsoft.com:s=arcselector10001:i=1"); dmarc=pass (policy=none) header.from=efficios.com ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1735222640; 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=Z0bm0jRLtfVVCyUkxfuJG9YEW6UneJtX5h8Ez0uKEn8=; b=eTT2Bf5r4nqBj5bVIjaivoWJ9Gi30Mokq58jZwKYoKU6Ks2dtZ4ZytXlQjUuzEZ5YGD9zT n/x7sECF5YvHJVRXdUmMCjc/GTfYIJEhSfodk9yXgZc0jHkfwLnVThHZNxujlqnQncDr2x WeN375+e84EdQ0wekIsiXIMqZfGfERY= ARC-Authentication-Results: i=2; imf10.hostedemail.com; dkim=pass header.d=efficios.com header.s=selector1 header.b=ulQxWNqA; spf=pass (imf10.hostedemail.com: domain of mathieu.desnoyers@efficios.com designates 52.101.191.119 as permitted sender) smtp.mailfrom=mathieu.desnoyers@efficios.com; arc=pass ("microsoft.com:s=arcselector10001:i=1"); dmarc=pass (policy=none) header.from=efficios.com ARC-Seal: i=2; s=arc-20220608; d=hostedemail.com; t=1735222640; a=rsa-sha256; cv=pass; b=bSpP1+qZBrZDR1IkQ1x2PVN3TFDI1DrQwb+rkwswUAMBweCVJOJKo5Ci1yl9WQDfKrbNvv /T66JwzYWWD3KoNWdTD9/tUS7PDIQYvQi3c3lYJJEX7eaJoXGyMNprCQAAo1RuhTc9ag+Z 48y/9/mI2tvgJ3yobhkLGgpVhHfE6ZM= ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=I7dWiHA+9iJIXgn2k7ZBgbxRI6CGTTrI6vBlfWtCulyLVCmwHST99jyiYEf/c9VVJuiYJ52HtmsfqtRU8DP8qj90w6JKipEOVMiVTIKYl3PBC108vVRzedxeBp+iPDDZ62j4s6yiUQuTe3WzpaThUxZQdXc3ghMKgys3zi7PlFOazvZSKo1TXet5KZWatlGdRql6mQBafcnMTVfW8wWB5MZO0u0MDLPfyyRbEuXiqC+kqhnjjKH1nSnAGRzoFoSqkzOhRoS/oAdm3jz6UGBCnXCndxl48VEqoRXG4M332WhEx0jyYx0vKvFK5L+pHQfv0wfjajXz25ietJARhJAT+g== 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=Z0bm0jRLtfVVCyUkxfuJG9YEW6UneJtX5h8Ez0uKEn8=; b=mWN32qpdAqL2SaDeO7k66TqnajgTV9SXt1XR1aqWmElg5kPLLkiP64P39ih31Gzz4uyMkva6j+9N68/6+3zNIMYu4X6vmOLonaLtVTOvN+xYDfiEQZFpwxW2N3+jGiXlJV3UNE75QHqPrQYaqitk331DF8KFDvckr3N1FyHfdD7chGDStTGdOZt4SoEhw526BxCgpSAgu6kY2mSE+22Zk3DJZbLU8s+EqAjdR5XmY4UjpM1iKfCoPMqnpIxnt7RH7AWUq37tAZimbRyQUZN1i4EMdgzVmAARjbhXwyLr+HhBKV6zh0DF5mQ0ocv2sFPpbFhUAOj8Tr6gHj2mILrV0g== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=efficios.com; dmarc=pass action=none header.from=efficios.com; dkim=pass header.d=efficios.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=efficios.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=Z0bm0jRLtfVVCyUkxfuJG9YEW6UneJtX5h8Ez0uKEn8=; b=ulQxWNqAuKa8nwzINTlPSQMb2HuIdlXbNiFaL2pazYAmGrmW6nm3Z5I9OR6pN9Rnz3QEizeC9mPI2B1ISCqi2Bp7jqlmYfFCqWwQlhwu5SgBY1S5S42G9X5eRnfU6DBilDXGIRXBssXUylzPFsqAavQltpFu8ABo8hMcu7qw3iYuJVVyvtwX8MWrt2yFNanXSj82a8islrX/wcegRLo/fmxqE6WbSEHhjUIoPIGBmKKQU/ciHXVCc9nHspNTjJhnMmG8cvk41RBRET44ctGwZqDQlUuGdCNhA6frAvvevGIyhqvcvNDdfHR6bLswag5pD2A7yluefPMiXBO8eR2pRg== Received: from YT2PR01MB9175.CANPRD01.PROD.OUTLOOK.COM (2603:10b6:b01:be::5) by QB1PPF232758356.CANPRD01.PROD.OUTLOOK.COM (2603:10b6:c08::220) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8293.16; Thu, 26 Dec 2024 14:17:44 +0000 Received: from YT2PR01MB9175.CANPRD01.PROD.OUTLOOK.COM ([fe80::50f1:2e3f:a5dd:5b4]) by YT2PR01MB9175.CANPRD01.PROD.OUTLOOK.COM ([fe80::50f1:2e3f:a5dd:5b4%4]) with mapi id 15.20.8293.000; Thu, 26 Dec 2024 14:17:44 +0000 Message-ID: Date: Thu, 26 Dec 2024 09:17:41 -0500 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH v3 3/3] rseq/selftests: Add test for mm_cid compaction To: Gabriele Monaco , Peter Zijlstra , Ingo Molnar , linux-mm@kvack.org, linux-kernel@vger.kernel.org Cc: Juri Lelli , Shuah Khan References: <20241216130909.240042-1-gmonaco@redhat.com> <20241216130909.240042-4-gmonaco@redhat.com> <6c159869-8f01-4aa5-9df1-7a0d6e3c23b7@efficios.com> <83fa755bad5e607cf242cacccb58a4ea2490b8a0.camel@redhat.com> Content-Language: en-US From: Mathieu Desnoyers In-Reply-To: <83fa755bad5e607cf242cacccb58a4ea2490b8a0.camel@redhat.com> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit X-ClientProxiedBy: YQBPR0101CA0163.CANPRD01.PROD.OUTLOOK.COM (2603:10b6:c01:f::6) To YT2PR01MB9175.CANPRD01.PROD.OUTLOOK.COM (2603:10b6:b01:be::5) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: YT2PR01MB9175:EE_|QB1PPF232758356:EE_ X-MS-Office365-Filtering-Correlation-Id: f67c2625-1830-48ec-6d58-08dd25b81006 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|41320700013|366016|10070799003|1800799024; X-Microsoft-Antispam-Message-Info: =?utf-8?B?anVVUlE1SDd1SENnQmh6YkhiYzV2Ynk5ZDBEN0xGMVVLaVlCRUFJQUUwZEpK?= =?utf-8?B?UWcyS1FDV3h6YUE4QWo3d0hST2JMRHFlbjJjUEIxZ3FIbG9wdjBTRmJhK1Bs?= =?utf-8?B?UWpMdkFzRktrNU42cy9JUjdRalowZWRTOVcvc0Z6ci9malNXaVJzS2pTd3NJ?= =?utf-8?B?WDU1dWNCZ2R4SHUxbGRpK25uc2RwNzYvNVJGQURvbkVJODkwL2V6ejNNTkFt?= =?utf-8?B?c2w0Q0JNbzdhV3NIUlJ1dzRyYVJ2N1JIRUFHOGE1MjhVeUljUVUzelMyV1JJ?= =?utf-8?B?dUIwRm8ycFg0b1BUWG9ETzNuTkdVMTgzOEpxekczbWRMRzNvRlFEb0pWRHRx?= =?utf-8?B?b0VkRVlLM3YvMFR3TE9nWFplN1hVbnpoMUR0LzhxTnlLZFY0VTIwMjBOclg4?= =?utf-8?B?a3MvTEk5akZHWUQwcVIrMzYwRHh2WitlZWJQd0pEaXZ6QTlpZCtaaUZUUVhl?= =?utf-8?B?TVR4VzhrOVhmak0wRTdoanJuSmIzNVRSMWZvZlFiYi85a21XYmg5QVAzRjd3?= =?utf-8?B?UG9aYUpOcHBoR2Jlb2dpUC9HMzVMUzF4NTZTSlVPbG5nTjBtdjByVytVSzJZ?= =?utf-8?B?a1ZYRW9KN3MrRjV2c3NrVENCQ2dOcXMycGlUU2FxZjF5Tlk2QlVrRGwwVlNH?= =?utf-8?B?dFU1ZVBWdmRlbnlaZmM3RXlNQkxSN1hMRmlyOWVLVnZLMDZ2VFNXSEtodXhR?= =?utf-8?B?UmlabWlpV1hpUHVJK2ZLTmxhSGl5MHVjc0RFYnpyM0kzcXExK1ViTzJjOWZT?= =?utf-8?B?Q2plYlFROVVrK1BHUHA4Z2pGTlJCb2UyQ2VCQ2dveStnaUo2d3c2MTdXVHcx?= =?utf-8?B?amllbVMwcEhpeHQ5SmJWVHN5Y21rcG5WUCtIcEJmL3creWlXVG9tajNPK3B3?= =?utf-8?B?b25qQWlMeTFyRmV4TnZ3VEwvMk43REhMVVg4VjRKNHdpSGxQaGxBV3Y5VllP?= =?utf-8?B?a2k1ZnpRb090dXhsVmcrRnBydzU5RWNtMEx1TklkdHRxbmNZeXhxQnFML0pV?= =?utf-8?B?eGt2Tmcrd1pVZzNPV0YvdWVUd01QSkgvUHkwc21ma3dvZ0hQSjgzMndnaGNw?= =?utf-8?B?U2svVGx6dUM4bnpoUEx0M0lweGNwQkNGVFFEbng0V0NoMG5id1V3VG1aRUpW?= =?utf-8?B?YVdNYldPWHdTMVdmVk5wWFJwdUVWSGY0Um5udWNDcENRWnVmT2xYYS9YWmYr?= =?utf-8?B?ajlDdUEzMzcyWEFYelpjSk9QSmJtaTFrZ0JwOVEydHc2ZzdTME0yUUhTU00v?= =?utf-8?B?Y0w4anVsY082MTNFNEJqSWZzbTBDMUxuUEc4OE05NEhjRWV1NWNnL3QyQWZS?= =?utf-8?B?bStXUEVaY0poWXFZdTZzMzdJTi9vRFgvT3ZaNSt5cHduYmZQbFBQYUhRa1No?= =?utf-8?B?bmhIekFCNWZiekhIaGNuOXJUQit6TjFrZzFSdzVRakk3VGFFanVyMFZTcEZx?= =?utf-8?B?aG5LZS9nYlBZc3B3Zk5CZmRRKzhrOWU1NzV6bXZkYmovVmt0S3hOVEx6VEhz?= =?utf-8?B?dlNXdEVIVDBqMGRHb01rUkdhRkRoMGxFSEhkZ0RGbDJycFBqRnZQWFE5L1BV?= =?utf-8?B?d0lYelNOUUo5Skk5ZXpub3cyUjZqTVp2RklBSnpmVVpEeUlrelFkemhFVVRp?= =?utf-8?B?MTJ4WnRYT3FzT3M5dTJaWGRFT3pXa3hIeGFGUjlnZDNsSnhmYUtSQXhKM1lK?= =?utf-8?B?ZXhQanRvanVKQkdMeG15ZzNoc0kzTG1ybzdzRndOUEJaRVo4YjY4TFowMkZq?= =?utf-8?B?eVlIbUliTHNwQnQ0U3JneTA1WHVnMEhvVUFZeTNpM096QTJVSkkyL3krL1Fw?= =?utf-8?B?d08zTUZjN3hkdnArdmU5QT09?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:YT2PR01MB9175.CANPRD01.PROD.OUTLOOK.COM;PTR:;CAT:NONE;SFS:(13230040)(41320700013)(366016)(10070799003)(1800799024);DIR:OUT;SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?dG4rUWxPQjNQaGRCd1ltSXc0VUYxRXRxay8wTzNpblM3UENwNFVTNmFhUTNP?= =?utf-8?B?dHU3WXRCM0tTcXhQbHdTUkhZOVl0eEtKd1IxOEVPZjBFWnVlNm0wWWdzTG1C?= =?utf-8?B?TTNxdVN0VkMwRUZWUU52WHNBaFdiaGNDWm9WRHZFMHk0bzVFNytCc2FYVXVr?= =?utf-8?B?M2N3NVQrL25WMWxCaHNWbVNRMkhvSFpRR3lRQjh4QUM4Zm1OZmtqbC9hcEZN?= =?utf-8?B?ZXByeUYzaXg5KzluakFybGNoaEdNU3hOcGtUaDlCcGNFRFR3d0M1V2ppdEJD?= =?utf-8?B?VmwzeHlUeGFIcWNSL00rUUh4VGF0cElVSnpDcmQ5WnpSU3dIT2w0MGxIRVlv?= =?utf-8?B?RWtRdHczWHB6WTZFeFlRNUwyQnZKSm55ZEkyWDhuOWdGeUlHQ2grRTZtclBD?= =?utf-8?B?MW9HK3BpMFVtVG5KMTJGV3dZYUZJRTJBS3BSZ0xtcGwrMWtmV0lRbDVmVXd2?= =?utf-8?B?cDR2ZHBiTEVQL3BvT2VRZmxJNzR0UmlSWmJoc3EveWdvdW1xaDR5Zno2TjhS?= =?utf-8?B?ZjFEVTRpWnBURFJ4Q0txTG5hekdqa3M4N0dMZmFwODlDQy9Sa2FPOTBnTHM0?= =?utf-8?B?RjFwZXVLVkxNN3R2elhVbmx0TlFWWHp5OGg4VGw0S3NycXZmNTNRVEU4TTNj?= =?utf-8?B?SWNtS3A2bHFQaERkeFNtUWdOMzJnTkpoTUFOV3ZQSXFQRUQzeHVXaWVvNWdp?= =?utf-8?B?clNFMmtRYmE2a2xqdEpzM0JEWUlhbjBwOW0vaXh3dzVKK0NTM0V2OTA1dDNZ?= =?utf-8?B?alpXeEFFbk56c05ud2E4ZmlVNWlRaWZoV09yQm9VNEZHY0lUeGlGWGFMUTNR?= =?utf-8?B?d3creXp3d1RSblR2RWg0ZVovMFJiSU5YOWJ3eXZUSFhWMUh4NnJJTGZiaHBD?= =?utf-8?B?UFMrTCt0QnNQRHZKbjhncHFRZzFwY1BhQngyOXkrSGlHV0UyOE5KTTFzLzY0?= =?utf-8?B?UERCZzE0ZGNzY1UwUjYveXZoT0tTTit3amRqYnFIeExMZDNXUTVGRFF4cyti?= =?utf-8?B?VFl4ekJ2dTRmbFF0dHl3SlRGUWpHaDdGYXBZWWI3eVFBRUw0TVRWcyt1Tk85?= =?utf-8?B?enJQc09zMzlnSURoK0lvNGVnYnZXeVVKZVl6cXg1WDBEYTdraVBxd3hZbUk4?= =?utf-8?B?bUhrNWFSclpHaTlMdmlhanJJQUhiS04zNXNMcVpRVVVlY00rZHl3SnE2Sm5Y?= =?utf-8?B?eTlBUWdEQWhWenR2SEZ3UzQ1VGtGLy9OUnBtaWRKbFdORHpBblNDZXlzSUZ1?= =?utf-8?B?UkF4UXY2MDR4WUhqOFpYa3NjRnVyU2F1YlgxdTlDZkhHMS95b3BTTzZsczFz?= =?utf-8?B?b3laRGZMbnlSZHNSbE4wMTBxNzVKZG0yZ3FSOVplSTAyMmlIcVp5UCtCYWE2?= =?utf-8?B?bytQemhhM2NONm1OVFh5eFhxSHQwclQrcnFFZktRSFFGT0hITW9uUXMzM0Nw?= =?utf-8?B?ajV2UXQxUHc5RjQrZVdKRUpIWE1zdkNOMVAxVGpoYlpNT2xQTElBVkhjR20x?= =?utf-8?B?dXF1UllpVTZIVHltc3JJdENzb05hdGp5b1hSdHZ6UWZyT016c1VsOGFpUlYx?= =?utf-8?B?TWtTM1NWcExmWnJBWU1FMmlIMWQyamFGSSt1eDlVNW5nRjd4bXhjKzlicWtx?= =?utf-8?B?UFRaM3dBYjIyeFRQai9ZWGVPODRXVC94N0w4dzJDYysxeFBTeGwxRDdKMHJB?= =?utf-8?B?OWFsQXFiZUNXYjB1NlRuOHo0cmZVN1lsQkNvQTk4UkE0UWR3UVp3dXoxNkFx?= =?utf-8?B?ekFwUnovNTlORVJQeFJQQlhzcTZZaXFWZ0ZndE0wR2krR3FDVTN6a0VOQVUr?= =?utf-8?B?L05jY3FtYnRXYmRHZ0tlbEFxVGg3V0ZudG13QlVYdXdLdGJrZjN5d2xtbEEx?= =?utf-8?B?RlRQQzF2K3NoZnc3dXVqRlY0eE53MTc2K3hWbjBDOFhOZzVjbTQ2UEJCUXpP?= =?utf-8?B?c01CMXZWYUpxTVRVWmlmd1pGTVVSSENLcGo0OGU0Rko0YVhaTStWckxhelBG?= =?utf-8?B?WkpIay8wTWg4YSsvc0tOcnc3Vk1Zc3RzazA3TGRQRlRUd0V5REphd2JVeC9m?= =?utf-8?B?MlBQcDVZQTcyeTRUQWRRZFkzc3JqMDhOR0lXZU9BOWhPWFVEbnFtWG91aFIx?= =?utf-8?B?SFNKT09COU91dHBGRTNrYXpadUpZQ0x6cEVheDJlUHQ0RUQwNG1wdUJNY3Uy?= =?utf-8?B?QkJWVEFEZktCSTBDVlBRaWJETlNnMlBlWkdFSkpXK21TRitUNDlqNlZxNWcy?= =?utf-8?Q?2MzcWJdzp6sAY8xA21UhcmO8sb8LJ26lz2jG08KL3A=3D?= X-OriginatorOrg: efficios.com X-MS-Exchange-CrossTenant-Network-Message-Id: f67c2625-1830-48ec-6d58-08dd25b81006 X-MS-Exchange-CrossTenant-AuthSource: YT2PR01MB9175.CANPRD01.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 26 Dec 2024 14:17:43.0575 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 4f278736-4ab6-415c-957e-1f55336bd31e X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: 4Jljz6j+C+bEelfwpZ6lYkqFIjk5VXsicVz3ExXJbVaJEPLkr7mQ1JXcgaGXh2D5W6E981WeUELDNIRJk5JwwcqtzB0Ay8jobxpKYnzKXkc= X-MS-Exchange-Transport-CrossTenantHeadersStamped: QB1PPF232758356 X-Rspamd-Queue-Id: 5E384C000E X-Rspamd-Server: rspam12 X-Stat-Signature: p98j694sb7ctefd7p5yfb713xqhh51s4 X-Rspam-User: X-HE-Tag: 1735222653-972031 X-HE-Meta: U2FsdGVkX1+xziOunSfurza7mw3UBflkJaxK/67wCCiDewTF3fh6oSDJYtY5K1Rcql8OCUVs4lDa89mn2TsRSmC6cqCuFG9bKd4vnpZcrceP9IBUZ2D/JqnaW6Zyk2HNylR8UC0whmb9by2Icq9YMXmOgl0SFW/OvCAE3SBxnTymeNj7pMP9SA6CXL/sraYEZ1rkb1lqcsiv0+3uxodisxYGpzTB/nMVY88bgVIuTXGwaNSpMoiYtsNdSJQP5dT7ZOJiWVGk86fAVJ/Um1MfHDwOZydF0EMN/tVhLePliS6WiTkhRmvgG/ympv7dxEAneBLgeG5TtxHMaeBS2SK69Wmq4fxtZfRu6caGwTVoqGd9TtdoM4LVbATIHXqYIu4ZFFN6hMArnXU2TmsrzqCPDS0VjIQ990p5d9TlPKvICXLlLU30+adWBmxYO8evWcXLh6q3HPQY78qVJzc/6GeisJpre5E/PRq/w4XlzLNe/OsrKWtcDLMv6YN3JY4JBWGD+s7pZ4RnG13ODwJIoVabX06lNUZdDssFXl7W2xBJ37ykLuaWkj+jDVOOGG5rhLXbUnQi5Lc+kOXcpZeLYjv/6lOclxH2x2GrpbfKZKEPGgzKQOX5HOqBc2cj3nfetdbhCqUot+YoOH0fk1r7To44TxJuxaWtyFz0XsE8XOfgJ+YOJR/kojcdOFUeYttFGBaQLxpiDhbSfxaSIQlVdLWxUPd59tZE75jCeh3ximoMS1NUdz0K6fhZ01DTCNl7vvfwkmc0ohARfBqiqEe8fHWOSC7mpigzvWtg58bqe5VJCfj5hu4r4I/cDJFunfZf9CiSjmIRlZme1CZQemIzFMtOSA61uM/Jy5aaLyzeNLekxtuiudb6ZkLokf1dlqc7ksXc3tQKEpf//61okyTJb8MsAER3g5l2UEkUqNC3jT9GrMdIJEO/bK1jOd1nDa80ESEZEFopK6Ysv4/wSNnccrk 7ZPLXzx8 Ihp8fbgcMZ0za47eLTfBQAKvnp7RFKc3ekhb6O5yLmOWcCC2qRweaYjqG4fvN/+B/wDMpe3I63gx+MMOYpMKLX5yEOeocDCtL8z9Ptl3SMNBCFahFUG6GyUyjCMopZ4slcGDt0qtoWOUScLJaUzpmhWkJAt5N2gufPK++0iCdG5eP5Z9Sl2QukO9veUBvrdFDU/OMpilUVOAqQpfqy8gVQjU1KN/61UQAOjc9yPoJl4ZKrIZmFTXrTpCYsKO/rx6w6uetfy7zwRqCd0wlu7OG/cXUaoYd+auDfXz+3tFIgWBgRa3IS7fmhCSwWkZsU1m4avGYi6Ic0oOJ64eo/vTC3oSZe0QWgHZi5sjqprVE9VeRkU2T7Qmj8B7zZstviapunyID4w/JsqTIEwRIEMvMr+vmwjEoGcZNRG+mExbECiz+zdXvvWsG4w/U+CF1FVzxWdXBXU0pUD6I/Y6PJjWvW1W2vSZApiyqQZksiR1rSMyJLUDv/AVNkj5XYA== 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 2024-12-26 04:04, Gabriele Monaco wrote: > > On Tue, 2024-12-24 at 11:20 -0500, Mathieu Desnoyers wrote: >> On 2024-12-16 08:09, Gabriele Monaco wrote: >>> A task in the kernel (task_mm_cid_work) runs somewhat periodically >>> to >>> compact the mm_cid for each process, this test tries to validate >>> that >>> it runs correctly and timely. >>> >>> + if (curr_mm_cid == 0) { >>> + printf_verbose( >>> + "mm_cids successfully compacted, exiting\n"); >>> + pthread_exit(NULL); >>> + } >>> + usleep(RUNNER_PERIOD); >>> + } >>> + assert(false); >> >> I suspect we'd want an explicit error message here >> with an abort() rather than an assertion which can be >> compiled-out with -DNDEBUG. >> >>> + } >>> + printf_verbose("cpu%d has %d and is going to terminate\n", >>> +        sched_getcpu(), curr_mm_cid); >>> + pthread_exit(NULL); >>> +} >>> + >>> +void test_mm_cid_compaction(void) >> >> This function should return its error to the caller >> rather than assert. >> >>> +{ >>> + cpu_set_t affinity; >>> + int i, j, ret, num_threads; >>> + pthread_t *tinfo; >>> + pthread_mutex_t *token; >>> + struct thread_args *args; >>> + >>> + sched_getaffinity(0, sizeof(affinity), &affinity); >>> + num_threads = CPU_COUNT(&affinity); >>> + tinfo = calloc(num_threads, sizeof(*tinfo)); >>> + if (!tinfo) { >>> + fprintf(stderr, "Error: failed to allocate tinfo(%d): %s\n", >>> + errno, strerror(errno)); >>> + assert(ret == 0); >>> + } >>> + args = calloc(num_threads, sizeof(*args)); >>> + if (!args) { >>> + fprintf(stderr, "Error: failed to allocate args(%d): %s\n", >>> + errno, strerror(errno)); >>> + assert(ret == 0); >>> + } >>> + token = calloc(num_threads, sizeof(*token)); >>> + if (!token) { >>> + fprintf(stderr, "Error: failed to allocate token(%d): %s\n", >>> + errno, strerror(errno)); >>> + assert(ret == 0); >>> + } >>> + if (num_threads == 1) { >>> + printf_verbose( >>> + "Running on a single cpu, cannot test anything\n"); >>> + return; >> >> This should return a value telling the caller that >> the test is skipped (not an error per se). >> > > Thanks for the review! > I'm not sure how to properly handle these, but it seems to me the > cleanest way is to use ksft_* functions to report failures and skipped > tests. Other tests in rseq don't use the library but it doesn't seem a > big deal if just one test is using it, for now. For the moment, we could do like the following test which does a skip: void test_membarrier(void) { fprintf(stderr, "rseq_offset_deref_addv is not implemented on this architecture. " "Skipping membarrier test.\n"); } We can revamp the rest of the tests to use ksft in the future. Currently everything is driven from run_param_test.sh, and it would require significant rework to move to ksft. > > It gets a bit complicated to return values since we are exiting from > the main thread (sure we could join the remaining /winning/ thread but > we would end up with 2 threads running). The ksft_* functions solve > this quite nicely using exit codes, though. Then thread_running should be marked with the noreturn attribute. test_mm_cid_compaction can indeed return if it fails in the preparation stages, just not when calling thread_running. So we want test_mm_cid_compaction to return errors so main can handle them, and we may want to move the call to thread_running directly into main after success of test_mm_cid_compaction preparation step. It's not like we can append any further test after this noreturn call. > >>> + } >>> + pthread_mutex_init(token, NULL); >>> + /* The main thread runs on CPU0 */ >>> + for (i = 0, j = 0; i < CPU_SETSIZE && j < num_threads; i++) { >>> + if (CPU_ISSET(i, &affinity)) { >> >> We can save an indent level here by moving this >> in the for () condition: >> >>  for (i = 0, j = 0; i < CPU_SETSIZE && >>       CPU_ISSET(i, &affinity) && j < num_threads; i++) { >> > > Well, if we assume the affinity mask is contiguous, which is likely but > not always true. A typical setup with isolated CPUs have one > housekeeping core per NUMA node, let's say 0,32,64,96 out of 127 cpus, > the test would run only on cpu 0 in that case. Whooops, yes, you are right. Scratch that. It would become an end loop condition, which is not what we want here. then to remove indent level we'd want: if (!CPU_ISSET(i, &affinity)) continue; in the for loop. > >>> + args[j].num_cpus = num_threads; >>> + args[j].tinfo = tinfo; >>> + args[j].token = token; >>> + args[j].cpu = i; >>> + args[j].args_head = args; >>> + if (!j) { >>> + /* The first thread is the main one */ >>> + tinfo[0] = pthread_self(); >>> + ++j; >>> + continue; >>> + } >>> + ret = pthread_create(&tinfo[j], NULL, thread_runner, >>> +      &args[j]); >>> + if (ret) { >>> + fprintf(stderr, >>> + "Error: failed to create thread(%d): %s\n", >>> + ret, strerror(ret)); >>> + assert(ret == 0); >>> + } >>> + ++j; >>> + } >>> + } >>> + printf_verbose("Started %d threads\n", num_threads); >> >> I think there is a missing rendez-vous point here. Assuming a >> sufficiently long unexpected delay (think of a guest VM VCPU >> preempted for a long time), the new leader can start poking >> into args and other thread's info while we are still creating >> threads here. >> > > Yeah, good point, I'm assuming all threads are ready by the time we are > done waiting but that's not bulletproof. I'll add a barrier. > > Thanks again for the comments, I'll prepare a V4. Thanks! Mathieu > Gabriele > -- Mathieu Desnoyers EfficiOS Inc. https://www.efficios.com