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 A556DC021AB for ; Mon, 17 Feb 2025 19:46:18 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 1C0A2280099; Mon, 17 Feb 2025 14:46:18 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 0FB16280098; Mon, 17 Feb 2025 14:46:18 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id EB607280099; Mon, 17 Feb 2025 14:46:17 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0016.hostedemail.com [216.40.44.16]) by kanga.kvack.org (Postfix) with ESMTP id C3C42280098 for ; Mon, 17 Feb 2025 14:46:17 -0500 (EST) Received: from smtpin23.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay01.hostedemail.com (Postfix) with ESMTP id 398121C753C for ; Mon, 17 Feb 2025 19:46:17 +0000 (UTC) X-FDA: 83130467994.23.CE385C9 Received: from YT6PR01CU002.outbound.protection.outlook.com (mail-canadacentralazon11022143.outbound.protection.outlook.com [40.107.193.143]) by imf27.hostedemail.com (Postfix) with ESMTP id 356BF40005 for ; Mon, 17 Feb 2025 19:46:14 +0000 (UTC) Authentication-Results: imf27.hostedemail.com; dkim=pass header.d=efficios.com header.s=selector1 header.b="VYCDEA//"; spf=pass (imf27.hostedemail.com: domain of mathieu.desnoyers@efficios.com designates 40.107.193.143 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=1739821574; 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=GpUQoiZI9uW6eRQDmtNm88ybGpJzlkHR2Uxbk5HS+pU=; b=EAWbF5iXyYwm2XC35mAGMBKzfI2QjfPmESi9ahONISfiCsMvPUcCiVfpHGOblFWYzRws4p qIrjy502ymKnC7vI0NycPzpIYWGrQtZwzTi7X8tp/yVt13Jy2+Lm6gpZWoBhWDeN7V5+zf hK1UcB2HaBT16fX51v/2rMJmnVRr9Dk= ARC-Authentication-Results: i=2; imf27.hostedemail.com; dkim=pass header.d=efficios.com header.s=selector1 header.b="VYCDEA//"; spf=pass (imf27.hostedemail.com: domain of mathieu.desnoyers@efficios.com designates 40.107.193.143 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=1739821574; a=rsa-sha256; cv=pass; b=PL2Y7oFNd2SqC0Jn9mgMBZ2U74CosqUm+pmwmA8WDbCCN20gIFO6I6I5+CWLFqHV3kBrr3 lz0yI6OUHSpAy4qcDKVCVaSKdHbZBRCPcurhsUArjqDne5O99dC3Qz/5O3GNQHVt8GKruR sm6jLi20efDkFaEPjzjFUOAn5rTbVNs= ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=YQZmNVNQzYzXquJWygVzw81hp0OgKkzMbhtNnO8R/kNBlYQ34Ikdo1qstzwtWq/wHDzmZ3SOMY7JQjBny49bY5xi6g34D2W095nHcyQeGOu1hgzYPVmHc0EExsWoG40Gbg2d6N2OjDU4dWe7VhBeaKJEuaaVl0LnIzG48kDaFjSgRDdOY6Jy5mcCZRIUUPVsLPIfWjHkY64SqR1DZLns0VtoPFj2ZDYsjCu9H8Qvk1q75DdJV/r8wNIRAgq2KMfk26KD7l78/TZQibhBRUjf6c1QnoyXaQhT6Iv3RrLmTjm8zy8XUDaK28jWjWzo/95eLIWinLI12mAeiwOXHxruUw== 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=GpUQoiZI9uW6eRQDmtNm88ybGpJzlkHR2Uxbk5HS+pU=; b=MMtH/EbqfWf9yvWlaocViwYUicpn5fqOGdGABm5IULrNEWT1eim2L8XEHnhKWXCHDQa21vrICj9HiXyIsMLginDmFx1Wuv3ObODMdJeytaHFgaQihFwUe36JTbY6gFLejdN9+i2riYUCEvmTkQwn73ZahA8Vk6d94Et1CPdJ1yzu/cotrmV+M0Nr4kp6FdZgMuLGTGub89r/rlhu6Dpg02CgijzxoiBMlDj3nNX8xQZXiC5HsEHwkRWgFDv6xrJUfFggF/Id3Ipnl68Oyj4lthF39AvsBvH6QwE75q2iojes5KOtoAg1RvBnXaFC1QV06TkEdfYOSKpAf2I5/waJHw== 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=GpUQoiZI9uW6eRQDmtNm88ybGpJzlkHR2Uxbk5HS+pU=; b=VYCDEA//24AwFzw0GtpQBAaPrHlYjeZ2+HxNA9uJx5VYb9EhNK+7ADlS1eO3B0S6RbAJBFXZn2DUbR9+oHp5IWSMGe1UkeHPkW0uqw01JSPAMjt4VTHuizb2eqG11rioTp7hKrDqlTWUqa3dq0VBTAGktQ/FZahIhkjxzlCD4l8Vn7465wiHCw8T/oRBMQFpOfDrUaK/wvhZ4erFyIQsJNFMPvlHaJSdg7lp6kflbin5QiSDcxeWBhn9pUFqpH6e/FREhqkH0zApshLm5Xe95TUkHpd36cZXlbFqh6VyI8/exjPSKdTXg5d65YOhWRy12ew+9BHGfe6AwSITyw8ozA== Received: from YT2PR01MB9175.CANPRD01.PROD.OUTLOOK.COM (2603:10b6:b01:be::5) by YT1PPFC07946807.CANPRD01.PROD.OUTLOOK.COM (2603:10b6:b08::581) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8445.20; Mon, 17 Feb 2025 19:46:12 +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.8445.017; Mon, 17 Feb 2025 19:46:12 +0000 Message-ID: <6a86f095-4f3b-46e8-8a42-51bff3d03405@efficios.com> Date: Mon, 17 Feb 2025 14:46:10 -0500 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH 1/2] sched: Compact RSEQ concurrency IDs in batches To: Gabriele Monaco , linux-kernel@vger.kernel.org, Andrew Morton , Ingo Molnar , Peter Zijlstra , linux-mm@kvack.org Cc: Ingo Molnar , "Paul E. McKenney" References: <20250217112317.258716-1-gmonaco@redhat.com> <20250217112317.258716-2-gmonaco@redhat.com> From: Mathieu Desnoyers Content-Language: en-US In-Reply-To: <20250217112317.258716-2-gmonaco@redhat.com> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit X-ClientProxiedBy: YQZPR01CA0027.CANPRD01.PROD.OUTLOOK.COM (2603:10b6:c01:86::8) To YT2PR01MB9175.CANPRD01.PROD.OUTLOOK.COM (2603:10b6:b01:be::5) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: YT2PR01MB9175:EE_|YT1PPFC07946807:EE_ X-MS-Office365-Filtering-Correlation-Id: 84c46d9e-7f02-42f1-0169-08dd4f8bbb54 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|1800799024|366016|7053199007; X-Microsoft-Antispam-Message-Info: =?utf-8?B?c3ZmUmdONHBSRE9BdDRIRmpQcnBmM3FGNkpUdVdEdjcvV0NBNmtRbGMxMHhx?= =?utf-8?B?eXJHSy9zeVBQWVNESHB1aE1wTDNkV0pFQVhhbkVJajVXbzIwVktzN2QvY1Vl?= =?utf-8?B?aDNvbG5JRzdlSVhPaXlUZVVubHpuMjRKMjdzbUlJNzBxNSsvVWROajVnUUZP?= =?utf-8?B?SHFobjZRUFIvWFFJSlI1R1ZzRnd1eHpnUDF5MG1qeUZjRkRlSkdhaUtHbU91?= =?utf-8?B?RHh3Rm1zeGdYTWRhbFhpMFBSRWNPaEtiWFkyS0FqZkJxeEh0QzJubnlrLy9Y?= =?utf-8?B?b1NTOEl3a1gybDRNQlJoazR0S2xLMThvcmx5L0ROcUdlR21ROGpoNWN4Q2kx?= =?utf-8?B?ZGdhdzRVQXZBcW4yTTltYzNHRko3anBwVTQxa0NJQjB4R2tSdEtnTUZ6SHh1?= =?utf-8?B?NHJsMkZZM25OL01nSDREbjdKWS9ZMnlObnRLb3ZabmVLUElxbld0dE5ZNGEz?= =?utf-8?B?Y09aY3hFZFBsZXNXOGhsL2VLdUppeFRMSm9DQWlkZlYwd2dUdElVOFFKVjgw?= =?utf-8?B?ME8xcG11ZXJQQzJLMFZFUmlkN1FKS1pRVkNMTzFrR3lYSWpPZmtPWWp2dUd2?= =?utf-8?B?NC9FRDZFZDRZVGpGTHY0OHZMSHpSMVI5STZldUhsUCtVRllFd2FaTGhqMThW?= =?utf-8?B?OE5aUS9ydi9VVzJ6dEM3MHpqbGtkcjFCS3VubGZYSktqeTA1ZlhlVHpYcUl6?= =?utf-8?B?SE82eWVyZnFldlgyeklRNGo4UjRTOHlQMGVqd3BSaWkvV3dqYzlYVS9NOWcy?= =?utf-8?B?WmJvd0M0NllMVmZsUTlXZEN3eWJoUFhnQ21kY2dNWThTdXl3U1pkZkxyREZG?= =?utf-8?B?czd1ejFBWjkwVCtvVmh5T0d1eVhtWldQczNwUEVVYk01ZFMzMGhtbmRpYUMz?= =?utf-8?B?TzdKN0RBakw0RFFMZ29rcm9iOXYrSi82N292ajVOeUMwUWN0MTJOZEhDWStq?= =?utf-8?B?NFNmeTVTbXlVbnE0MDB5TCtWNjdsK3E1NjdMcW9HMlI4ZlZRT1BjK1IwZy9l?= =?utf-8?B?dWxwNFYxb2FHY3RHdjJnbWtXcGlaUXRabXBOL3hMSVFoMWtaeG9yR1kvbzVm?= =?utf-8?B?c2FsMEJ2VHAweTNubEVNaS9jTnByQmQ5eXkyb3V6M0JJTWxKUmNiUE5IL1pD?= =?utf-8?B?a05vVWVKditEUEpVdEZrc3dldjg2bElZZFphejZ2aVc5Q3ZFK05IRDlsN09H?= =?utf-8?B?dVV0NnVRSmJXMUFHcGVWZmh0YjgzenNCZ051MXczR2ZrZFhsM3QvTTNrQ1NB?= =?utf-8?B?QUd4VEovUUtBUzFoSW9rZU80RHgrVURLR1dTRnFHR3NPdUNnRlFTOUNSVXM5?= =?utf-8?B?UHlSVFlVbVcwVE53azZzNjNJVUsyU09td01qQTVhUk1IdG9BZXFQV21nL0lL?= =?utf-8?B?a0grajErTERwZmRsaVdLSmxQUktJdkhnT21WVWNUa0x3OThsN2Ewc1BSOVRh?= =?utf-8?B?Qi8vRWxTMjVXUm10OXBIK2pPd0d3OVpQQVZ4WCtqb2ttRnNhK3FGbnNFN1Ba?= =?utf-8?B?b3NoVXJmZHVsanBBUFp3TUFWcWxXUWRzNE8zYktmOHJwRWRWSXZDVzZzV1Vz?= =?utf-8?B?WUtNSGVQQmJkTkh0aTRrUFZEMFZWaTFZUld2TUJIVUc1OEN0VmZwZXVzZlhU?= =?utf-8?B?TnpyWE90d0hlUTFndERRQ3Vhb0ZUQ3ZPTFZDdDYwVzBveFV2SzZKOEp4OVk4?= =?utf-8?B?d1RlakJiRStyODlta2tWSnZuMlFPdnk4WEVyQnBrZlBHaUwxdmp6UHlvcVhW?= =?utf-8?Q?SqE47d8t2Ec5Sw4Sfu1gADHvA0Urcuqqrb6hEoG?= 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)(376014)(1800799024)(366016)(7053199007);DIR:OUT;SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?MkltTGxmbDZweUxZUGFRNnV6SFRFT00rVE1uenp4MG5zcGlmaW5JbGNPNXJn?= =?utf-8?B?LzlmZGRvTWpMRy9VWHdwKzNNYUUreUtReUpQL3V3WTBEVnRNc29tSk1seVFj?= =?utf-8?B?OGk5YzhxL0NjWWtmczNPNXYxZE5OQlpGMzNXYXBPTUo4bGhGTzlrcmNmYjBP?= =?utf-8?B?VmNCY1dka3dOOUNZYVpxOTFkT0xhUGZBSkJxbDB2MU90UmEveU1GY2pkM0dP?= =?utf-8?B?cXc5TDVHNm1rbzZoaEtneHdaZnU1NVNOSi9JY1FzNEcvTjJLMkpYRHFtOFVD?= =?utf-8?B?WkQ1OWFWNmhsc0s3WGFGeTBuV0NYUkNCd0UzaFpiMlUya0xUMkF3RXRWNW9E?= =?utf-8?B?TWwwOHdBQkVFUnFTVVdLL0RnSWRoTmUwUFNBU1FjbzFLK1FzTGZFZ3pHWDF0?= =?utf-8?B?NC9LN1lGYU5OSUdCbXgzQ2lMUkZEYnIrSTg0RUtzUWVndjgwUkdBODBPTWZi?= =?utf-8?B?UXAvVm9pVzAvZEZJSVJNR29nSm1yTjlHK2VZdUNQdmQvWWcrY1FsajA0bHlD?= =?utf-8?B?UUhJcEtCSklXS1VneDc3WnNMbEkwVTEvNkM5YThiemRxVVdIazRRaGZtci9v?= =?utf-8?B?OFNQbVpPb0gwbFkvTE81M1JjSWZMY0tCRllZY2xpa3I1QTgzbVJTVUg1RWI2?= =?utf-8?B?bE1TRnAwU25hZUd5T1Q0WFpEOWdONUhtQVZiVEhRajg1V2hUdHkwZ1hQRjZV?= =?utf-8?B?TGE1Z0x0b0JNVGFqYjU1c2xrRWl5bjZqYTgzdHFSYStTcE1ubDlZK2lhTmNL?= =?utf-8?B?YThhakZYWUhEaUVHZmI0ZVdCU1pWSDNEYjhQcCs4dUhNUXd6d2pqbWZZYzE2?= =?utf-8?B?QkRvS2pvMVRETk4wYTFNTXdjR3A4YW0zTFJMZjJmRkpWUGRCTVhJNC9abEVI?= =?utf-8?B?aHFsVXdLRGtXdVVLZUREZk1kdVp6ZW1xNnJ3MlA3bmYyeXdLeE54TEZDbCtK?= =?utf-8?B?dFBYdzR4dmZGMEJPTUFhTXFVSXpQWUxMbHFiWHk3SVRRcWt4TVBGRityRld2?= =?utf-8?B?WFlIK1JIbEhRd1FPRjArVHFEMDJyWGMvaWpSWUExVmJCWFJWL3dyQldRbklx?= =?utf-8?B?NlBKUUhIKzEwVm9BdWxib28yOHNLcG92a05RQmpaQUJhelNQZEw3NDN3RFBD?= =?utf-8?B?R3FaUkY3b0d0cnFwSXp4ZTJIeHZIZUpSQW8rRnBPOFNMQ0RUdmlTODgyN29q?= =?utf-8?B?MitpWUlsS2YxYjBhM0IzVnZSTE80Ym1ERW93TkV2YTAyWXQ1QlVKaHBlRnFK?= =?utf-8?B?cWhLS01ZdENSVjdyalJ5UVE4d0JKWE50QU9ycTJrY2Z6M2JuK1BYcTBFR0hI?= =?utf-8?B?aUl2WWdpYVFlNFlqcTZoMVM3T3lWUll4ejFSNUtSUzB3aUEwdkh2TWZRYjA0?= =?utf-8?B?VzlqQjlzSnJMZERZTE9TTjFZZFpQTzkwOFllRGs5dVRya2prYmxlUzZUUjhy?= =?utf-8?B?RkZUT2p3SU9EMitsYTNPcXFyZXA0Wkd6Vy8yYVJka0ZzWG9SZXYrOFYzR3Fr?= =?utf-8?B?RDV3a3RHTkcyRUZtRHR0b0t0Uk96aUhCdVk3OGl3YmRxWVBVcktjbFVEMVF0?= =?utf-8?B?TEFrcnhMZkFUWmU1dFFHSUVpbmYrNWIxeExrR0xRK3c4ZHd0eUpXYXRzL1dn?= =?utf-8?B?QklMV1cwWTJBMnh4U0VVSk1lL0s4VDNMWFlLbVAzdFoxVWR3LzJsOURYZSt4?= =?utf-8?B?enFwV2xBWUo2SlpnQmFsL05oMVpoRkUyU0p3Tnl3VXFjV0NDcUdPRzVBZFI3?= =?utf-8?B?cDhncEFDU21FUGhpS1pxa21hNkRxNDQwZldJS0pRSFMvOWpCUUk0dnJHdXVP?= =?utf-8?B?blV1blNOY3ovUnhGTHl5TWtVN1hSMFc4ZnJReVRlR003Q3VxN0FyTEV1QVlU?= =?utf-8?B?VXhib3ZSTzdRZFVYZGVqU01nQXFWVmFPa3lsaUV1aGxsUDdrM2RUNHQ0bXI2?= =?utf-8?B?TnlyRzJGZTdIUnlkSW9wV1NuS3FGVFluYU90TS9zcm0wMDB0SmJHWHAwMkNI?= =?utf-8?B?SE53ZUFwUndMNktSU3YvMWVscU9ia241WEp2YklNQURzc1pLek5yeFBaZ3M3?= =?utf-8?B?cEhncnRNNURvOU5aL1pQeHBmRjJ4OUlZYUFocHVLVlhoYkFpQXBoVmxZWHZ1?= =?utf-8?B?TnJUN1JldmhGNUVsT2hOa2N3WlUrL00zVUNzL0hRRHByU1hKVVpqNTlNUGRx?= =?utf-8?Q?Jh9Nsln5pZEW37Md5zP+kCA=3D?= X-OriginatorOrg: efficios.com X-MS-Exchange-CrossTenant-Network-Message-Id: 84c46d9e-7f02-42f1-0169-08dd4f8bbb54 X-MS-Exchange-CrossTenant-AuthSource: YT2PR01MB9175.CANPRD01.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 17 Feb 2025 19:46:12.0291 (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: NrvcUWQsUHOWATQLU7uB+FNh9ids3+fFmaejIUn9xnWidHfCixU2frZbWu7m9sATq3BpyCDFZFQZ16RsXcbURzqv7R82IwSyVABz6NbW5VM= X-MS-Exchange-Transport-CrossTenantHeadersStamped: YT1PPFC07946807 X-Rspam-User: X-Rspamd-Server: rspam09 X-Rspamd-Queue-Id: 356BF40005 X-Stat-Signature: mdsf6xyac9f913tmhx343q3mxaw5ttbm X-HE-Tag: 1739821574-184045 X-HE-Meta: U2FsdGVkX1+tlkekouyELDv9gby6UyT6f33PV0sbQ3jWhniSjCoo3hi9pbALWwsp/86LT1Ngz8raXW0NiIoyz+iiqynybKAF0P+HqQl1+OSlFQe1ig22xVS+VXy6T1kOSKnLeh1kh4XEcsojV6/oCcmZj4RZ2GPbmfFJESAptcTBiQbL7IYK9/riaCgWm7Mh0cDlZnuI+dpRJvJELI1DbNhw4wf62fN7um0J8xeCoqeDPHp0cOD0//nLBax8WbBWy/o1YSHhyPzBTv5FOmoxLVnr89+GUHMSWladfzX7xifHPkH2rt3pvO7ciJSaaV/nbRNYzwxA1uwOWaA6+8UfF3ESH6wpSd0mIZ49bazUyJDorD4+ul/4KDygxv/2XaVp437Koc08ksulD4Ol0tmR2PfUbNwx36UOEJm2SPEXNnGQMh7TRMLQVCZQ5xCXymu+9/gRUMN+ndUbc8f6WgnyRHsy3yrkJUKjRX7oqlzkF/9yeEdDUvHx39gg5RvtmY5SD+NrjHXhSj8ISNlmhTrP+oro1wdzz4b7LJbVSV+PNzfElWZeZhb61F5Fn0tL0JEF6O9QQgY04F9ll+OwTi88CZ5GjxQeTFHvywrgdsWX6daffw/nYhuXYlSUmHwZs6uar23yd9J7Y1dWutqMPYZ4Qf0xJ9VVy4jIuhDn4gSBR9yneC3GKx39Q6mWoCfoByZR4co/Sa/365GTU8rmo0iUlqgjRVkQDY5Fa0xwzFhOB1lXyy/vB2YhVVhXBCJoKspEm99/NSekdgL5VyhJcGRQooCVvaG3a+JBcKd/wP/JgCVOiW5Dvi62kcrV9Poeqxh6JDUinZpSF0CtempIKsq4nbRnNQV3vcayclPr/hJhbX01m5Z7jFXA0aIG9UqXz4EAsdOxc11Gi2zWa/PllGOSjpcYqM/a2Ncy5nd6rvK8qv7SU7CLHNo9PKhUsdoxnlpkMza1DxB8cs2tkTUKsn7 lKveVLRA CmL5kUE8nL8SIqWLMri0T+eAsdGCV91xUSg4m2sHrFf4zNOSBA9JVKCwwRc/J8sRtmx5gdG0vg0cD0hfhySiaxiV/5Km+E6taCpgj/bSL8z/71waY/Y4Dr41FmepP/2QHdYVsFEWy6PVcVAkSSRyVdxMRXRt8BnzwnsRGDnpwphlIMWQfBJnxEWBzUBavPwQ5ulddkR6xjwlfyALxEVlBvuctV1YrgM42tNthpFkKsf39V3tFsA2//IpnauSdJxayzVSFwWqj+HnBlBZKb19ZQf0BusR3aC70obkngueCOSpA15C1HqDY+aQBucneJBE1DGBVnonQm4P67+U4jSNmrOOqemJo4hrpRQh8bXqdUKxszsuRR8A4LMZUQzPAbUO0XJ3egm+BqK6FfNeZGFWrsCo+HVxAfRWOSPZFEe4gbc3GLjzNES3rutO60iC+zlBWiNfWomMoofZI2L8= 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 2025-02-17 06:23, Gabriele Monaco wrote: > Currently, the task_mm_cid_work function is called in a task work > triggered by a scheduler tick to frequently compact the mm_cids of each > process for each core. This can delay the execution of the corresponding > thread for the entire duration of the function, negatively affecting the > response in case of real time tasks. In practice, we observe > task_mm_cid_work increasing the latency of 30-35us on a 128 cores > system, this order of magnitude is meaningful under PREEMPT_RT. > > Run the task_mm_cid_work in batches of up to CONFIG_RSEQ_CID_SCAN_BATCH > cpus, this contains the duration of the delay for each scan. > Also improve the duration by iterating for all present cpus and not for > all possible. Iterating only on present cpus is not enough on CONFIG_HOTPLUG=y, because ACPI can dynamically add/remove CPUs from the set. If we end up iterating only on present cpus, then we need to add a cpu hotplug callback to handle the removal case, and I'm not sure the added complexity is worth it here. > > The task_mm_cid_work already contains a mechanism to avoid running more > frequently than every 100ms, considering the function runs at every > tick, assuming ticks every 1ms (HZ=1000 is common on distros) and > assuming an unfavorable scenario of 1/10 ticks during task T runtime, we > can compact the CIDs for task T in about 130ms by setting > CONFIG_RSEQ_CID_SCAN_BATCH to 10 on a 128 cores machine. > This value also drastically reduces the task work duration and is a more > acceptable latency for the aforementioned machine. > > Fixes: 223baf9d17f2 ("sched: Fix performance regression introduced by mm_cid") > Signed-off-by: Gabriele Monaco > --- > include/linux/mm_types.h | 8 ++++++++ > init/Kconfig | 12 ++++++++++++ > kernel/sched/core.c | 27 ++++++++++++++++++++++++--- > 3 files changed, 44 insertions(+), 3 deletions(-) > > diff --git a/include/linux/mm_types.h b/include/linux/mm_types.h > index 0234f14f2aa6b..1e0e491d2c5c2 100644 > --- a/include/linux/mm_types.h > +++ b/include/linux/mm_types.h > @@ -867,6 +867,13 @@ struct mm_struct { > * When the next mm_cid scan is due (in jiffies). > */ > unsigned long mm_cid_next_scan; > + /* > + * @mm_cid_scan_cpu: Which cpu to start from in the next scan Other similar comments have a "." at end of line. > + * > + * Scan in batches of CONFIG_RSEQ_CID_SCAN_BATCH after each scan > + * save the next cpu index here (or 0 if we are done) Suggested rewording: Scan in batches of CONFIG_RSEQ_CID_SCAN_BATCH. This field holds the next cpu index after each scan, or 0 if all batches are done. > + */ > + unsigned int mm_cid_scan_cpu; > /** > * @nr_cpus_allowed: Number of CPUs allowed for mm. > * > @@ -1249,6 +1256,7 @@ static inline void mm_init_cid(struct mm_struct *mm, struct task_struct *p) > raw_spin_lock_init(&mm->cpus_allowed_lock); > cpumask_copy(mm_cpus_allowed(mm), &p->cpus_mask); > cpumask_clear(mm_cidmask(mm)); > + mm->mm_cid_scan_cpu = 0; > } > > static inline int mm_alloc_cid_noprof(struct mm_struct *mm, struct task_struct *p) > diff --git a/init/Kconfig b/init/Kconfig > index d0d021b3fa3b3..39f1d4c7980c0 100644 > --- a/init/Kconfig > +++ b/init/Kconfig > @@ -1813,6 +1813,18 @@ config DEBUG_RSEQ > > If unsure, say N. > > +config RSEQ_CID_SCAN_BATCH > + int "Number of CPUs to scan every time we attempt mm_cid compaction" Reword without "we". > + range 1 NR_CPUS > + default 10 > + depends on SCHED_MM_CID > + help > + CPUs are scanned pseudo-periodically to compact the CID of each task, > + this operation can take a longer amount of time on systems with many > + CPUs, resulting in higher scheduling latency for the current task. > + A higher value means the CID is compacted faster, but results in > + higher scheduling latency. > + > config CACHESTAT_SYSCALL > bool "Enable cachestat() system call" if EXPERT > default y > diff --git a/kernel/sched/core.c b/kernel/sched/core.c > index 9aecd914ac691..8d1cce4ed62c6 100644 > --- a/kernel/sched/core.c > +++ b/kernel/sched/core.c > @@ -10536,7 +10536,7 @@ static void task_mm_cid_work(struct callback_head *work) > struct task_struct *t = current; > struct cpumask *cidmask; > struct mm_struct *mm; > - int weight, cpu; > + int weight, cpu, from_cpu, to_cpu; > > SCHED_WARN_ON(t != container_of(work, struct task_struct, cid_work)); > > @@ -10546,6 +10546,15 @@ static void task_mm_cid_work(struct callback_head *work) > mm = t->mm; > if (!mm) > return; > + cpu = from_cpu = READ_ONCE(mm->mm_cid_scan_cpu); > + to_cpu = from_cpu + CONFIG_RSEQ_CID_SCAN_BATCH; > + if (from_cpu > cpumask_last(cpu_present_mask)) { See explanation about using possible rather than present. > + from_cpu = 0; > + to_cpu = CONFIG_RSEQ_CID_SCAN_BATCH; If the cpu_possible_mask is sparsely populated, this will end up doing batches that hit very few cpus. Instead, we should count how many cpus are handled within each for_each_cpu_from(cpu, cpu_possible_mask) loops below and break when reaching CONFIG_RSEQ_CID_SCAN_BATCH. > + } > + if (from_cpu != 0) > + /* Delay scan only if we are done with all cpus. */ > + goto cid_compact; > old_scan = READ_ONCE(mm->mm_cid_next_scan); > next_scan = now + msecs_to_jiffies(MM_CID_SCAN_DELAY); > if (!old_scan) { > @@ -10561,17 +10570,29 @@ static void task_mm_cid_work(struct callback_head *work) > return; > if (!try_cmpxchg(&mm->mm_cid_next_scan, &old_scan, next_scan)) > return; > + > +cid_compact: > + if (!try_cmpxchg(&mm->mm_cid_scan_cpu, &cpu, to_cpu)) > + return; > cidmask = mm_cidmask(mm); > /* Clear cids that were not recently used. */ > - for_each_possible_cpu(cpu) > + cpu = from_cpu; > + for_each_cpu_from(cpu, cpu_present_mask) { > + if (cpu == to_cpu) > + break; > sched_mm_cid_remote_clear_old(mm, cpu); > + } > weight = cpumask_weight(cidmask); > /* > * Clear cids that are greater or equal to the cidmask weight to > * recompact it. > */ > - for_each_possible_cpu(cpu) > + cpu = from_cpu; > + for_each_cpu_from(cpu, cpu_present_mask) { > + if (cpu == to_cpu) > + break; > sched_mm_cid_remote_clear_weight(mm, cpu, weight); > + } Here set mm->mm_cid_scan_cpu to the new next position which is the result from the "for each" loop. Thanks, Mathieu > } > > void init_sched_mm_cid(struct task_struct *t) -- Mathieu Desnoyers EfficiOS Inc. https://www.efficios.com