From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from YQZPR01CU011.outbound.protection.outlook.com (mail-canadaeastazon11020125.outbound.protection.outlook.com [52.101.191.125]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 81F8D3F7ABE for ; Thu, 12 Mar 2026 16:09:07 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.191.125 ARC-Seal:i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1773331748; cv=fail; b=no2x1gmNAVP7J0mAjpJknMK7W8MQQq4V0sYwb3ZGuc6iPBjHrJC03j3wDn85hwQ5TK4rcjh2o5bTcrgwjLzvlyDp23JxErpNnXIBM3qQTQ8oYlltrbTpWjR9Zxk4isWYOOU/mqOj0ISAsWE0qbdzIrlezg4iCv94K0RkiffB+Xw= ARC-Message-Signature:i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1773331748; c=relaxed/simple; bh=HKLifthE6GYsoh68hsbRdwJh/hS/6izQN3lVNzvAHJ4=; h=Message-ID:Date:Subject:To:Cc:References:From:In-Reply-To: Content-Type:MIME-Version; b=Vi06qPO/USNUcx5tI7pC/w80UZEuvWX93oT5U29FN1W0Nt+y4A8jA3kVjnW+kOPVYn9Y7lKJma7EkMFaqFayi0Z4buhal7qQoK0cl6MgUR+X5RzasBf8aZf3f3iXiMnFoKfzqlDzAaDzvXNLHTTkrYet9hkHaBHK7mne14wGmY0= ARC-Authentication-Results:i=2; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=efficios.com; spf=pass smtp.mailfrom=efficios.com; dkim=pass (2048-bit key) header.d=efficios.com header.i=@efficios.com header.b=PukqB5Ff; arc=fail smtp.client-ip=52.101.191.125 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=efficios.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=efficios.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=efficios.com header.i=@efficios.com header.b="PukqB5Ff" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=foH49Rtt0ZKVjyTOkosHFN55KXf74tH/GBlOC3oSkGkaUM53Db67GXtRYQU0+YAXtVUrgf0zqn40UO0HTX/E6ueIfrBeuref7RFJkKThLctGxUqEKCLSHwW0GDsjhpsuhuLYI/RB2Vgwwiuxy6s/54/sDubKBQJnPeC+fKZzeiuWrPv5Xn5cqQxi5CvGL/Lw+9/+YvVbo1Eo6TGmugeUMiOJ7R+6MS976p3l3zYmvFivqgBdiUbbydBjCCz1wCQfjommfOlL00tWGGZX4yZuTpdzcAshU1NzNMlh8/ejaGWjKKg2qNBaTLDCU3dj7StjFwZCclyKnvEMY2ChCg4qxg== 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=L7Ev3qDx1qvAptgXtWk7HkzNBDxqJKuPMWHR9cYfDng=; b=dQIjoIgo+0saPI2D+t+xWKC7m65wGHKS2mHTPdfcekOOGxW7mK7KcnsqiRRwgqj3ar6pSYL5z51R2DD/ena4mKZ3PqRlxM8tE+Yz3w/YKG3heyZN/O6gx9Vqo8rslnF9SWrSu8+kkVIIfwT/T4W+/yrnXwizUxSDb8tEAVKVq5w3BUmxJsbLizz2PUC/cabebgRwFamEHWb6gC0dH5kxAAYGmq8UuwnFZnxz/+Hu+dxavj2a8RmMWRNBqZ6cBo4scrUUHb2FJb2HaOrfPtdqy6ShrKNxAABo4Js7wBTx+/fhUVcJ5OE4ITUr0/tlaoDu+jhUycbkqAk8VqkGFrQ0hg== 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=L7Ev3qDx1qvAptgXtWk7HkzNBDxqJKuPMWHR9cYfDng=; b=PukqB5FfHeLCTXWrlDTEodf2goZv+piAXdqszyGzwkBT/EkahgINeOLuYSh8/A/5PIsq3tZIDJryD5sYO+SUsvU+DPQq+uZr64zlEcf65wZKb41gTWPej1GxnFfz8YiGz2s9xStcpag7uqM11kw5j1TMvh5Sc+P7G9IPzV28op1pxcy3DydWE1eAk3+BI4r1IBN0GlJjU5zonpjgLK5rUmhbUcrFjxY3BSfmgho5N4k3CKcMJ2rrXboNVDhDoVqWuhVnHbWfcozLdgGe+sdJmJfI6REntPUu3/2U+PPvCsoVPuaX5l/Q27GD7Fd72P1Aml7xNy/t3X9d/5MM6amipg== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=efficios.com; Received: from YT2PR01MB9175.CANPRD01.PROD.OUTLOOK.COM (2603:10b6:b01:be::5) by YT1PR01MB9371.CANPRD01.PROD.OUTLOOK.COM (2603:10b6:b01:aa::16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9700.12; Thu, 12 Mar 2026 16:09:01 +0000 Received: from YT2PR01MB9175.CANPRD01.PROD.OUTLOOK.COM ([fe80::6004:a862:d45d:90c1]) by YT2PR01MB9175.CANPRD01.PROD.OUTLOOK.COM ([fe80::6004:a862:d45d:90c1%3]) with mapi id 15.20.9700.015; Thu, 12 Mar 2026 16:09:00 +0000 Message-ID: <2e9b6192-ffd3-4d8e-9430-763bbcf49e21@efficios.com> Date: Thu, 12 Mar 2026 12:09:01 -0400 User-Agent: Mozilla Thunderbird Subject: Re: [RFC PATCH] futex: Introduce __vdso_robust_futex_unlock To: =?UTF-8?Q?Andr=C3=A9_Almeida?= , Florian Weimer Cc: linux-kernel@vger.kernel.org, Carlos O'Donell , Sebastian Andrzej Siewior , Peter Zijlstra , Rich Felker , Torvald Riegel , Darren Hart , Thomas Gleixner , Ingo Molnar , Davidlohr Bueso , Arnd Bergmann , "Liam R . Howlett" References: <20260311185409.1988269-1-mathieu.desnoyers@efficios.com> <3c41d2d6-ccaa-4c09-83fe-f4c5ba898dbf@efficios.com> From: Mathieu Desnoyers Content-Language: en-US In-Reply-To: Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit X-ClientProxiedBy: YT1PR01CA0065.CANPRD01.PROD.OUTLOOK.COM (2603:10b6:b01:2e::34) To YT2PR01MB9175.CANPRD01.PROD.OUTLOOK.COM (2603:10b6:b01:be::5) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: YT2PR01MB9175:EE_|YT1PR01MB9371:EE_ X-MS-Office365-Filtering-Correlation-Id: 2cde1ef3-7517-41d9-7b30-08de8051ac3c X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|7416014|376014|366016|22082099003|56012099003|18002099003; X-Microsoft-Antispam-Message-Info: vIOX8mhhmJOCjRkrziyDP3C+7eSRbn4FOjd+itCAImlrEXureBt2Ej/dJ3FvDyxhbzvklHUck2JYkcDwbRaYyF9T4EOUY/IXKUww33kzob4w+1i0PBJcTdJbIyrrL2omjfeLi6IO/VpBodDkX0j6JcO0bQkAT5ZF5YUc4zkO/VZ/tauZzhBqsBd05pqPnBx6cvG9AvvUluHefJhWBiacN16PUj9o0Tcemlc17U02FQU3JzUhDupSvdLAYRhG1P00pDh3EwH4guqfcnoCxEnB+IHCYRKktZs6a9mwINty5IlvB42vG71w03JxmxkA+he13kUP0Y+hKojuFvv5AAz1MXMMIyh1Yt7eBcqiuacWSUtCQ/GXUC1qcs2gk/DhemGMg4amsRRg9qUVUJ2atBmfl/Aefmgor6JZJk1d4ejwbjsrLq+hmY1oP93wfA1pGz7onaAmPF09P3trNuJlQH0Q+UiwMAGnYmPSxHJ2zxvtm1AlJqOJHq6aI68VLyHVCacYrjhNnB+tM5AAsIg4dIK3507XDpceyMLu4MJ9A5jNAAKAyXR6HZlKdi3x2quB6Af7OupwMQvWrMb+H/+MGrsJmgQeV2zjJ1egG4LfULeyURjpvUwY8K7sgXEJw6MEJuWwoTck6bQLkVk3mufOBi3s0mox7gVoe7amMReoQyQIKNs= 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)(1800799024)(7416014)(376014)(366016)(22082099003)(56012099003)(18002099003);DIR:OUT;SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?SDhYQjM0bThNU3dFZXJ5QzNtV0V3M0p4ZzVEMzdMR2NqMzlJTDVwN2cyYmkx?= =?utf-8?B?bDRnYmM2VGVjK2ZUVVBQY2pqZmNyZjJhZjNBUmYzUGc1OGx1RktkenZ1MHQ4?= =?utf-8?B?U1JmSm1idHV2VUQzVlBUQktvMnJWc1JMSjRaU2xhbXdyWTBnOUxUYUN3aysv?= =?utf-8?B?RnpmNWVvMFBOdzlTNVNDMWdDRUwzMjFYVEVCVGFQdHNiNVI5YmpzTHVYK09q?= =?utf-8?B?N2lLZ0JzWkFjZFd1ck9TMmZaNXFCUzlLRGtYMU10TDlPb3FrSDJVVHJyZjVw?= =?utf-8?B?eUNNb0ZVZ3JjWGdFL2Zqb3llRHlsRmVzOU0yYnVPa1pBQm1raEUwcVlnU0pt?= =?utf-8?B?b0ZOWG1VakN4VEVTK3pDWG02UlE5UW1KTURyUnJ5cGNEK0RlZ20wdnNxejcy?= =?utf-8?B?U1lMM3FMK1IwenJUcG5GdEhzdzM3UFBJcGlOemYyaE1DRk1HU2ovTVZMbHpt?= =?utf-8?B?azFvaHAvSW9IMDBHZllCQkw0cVgyTFExdDd2bXZlRDMwT0YyVnd3YkdONGpy?= =?utf-8?B?d3RDR1hveG8zeGRIYTRxVE9ZdUF1RXhvdmlXWTg0SnFnV3JoUDg0Y3phbE1W?= =?utf-8?B?TkJ3dFB0ODhBbmxRb2lyRWlNOFF4U1pHbnhFRnlhMWpxamcvcFJPVm5zS2FQ?= =?utf-8?B?VW5IUmJZZUQ4bTBPSzdYaGhuYTR0UWg3eEVRS1JNcjl4Rm9raGJoS0dyb1hT?= =?utf-8?B?UTNZVksrQy93bW5OcTBxV3Fsdlp0MUpvYUVpU0xCMG1GU09QdTR3NGZKTnc5?= =?utf-8?B?UkZtUlgwd0RpY0xWbEpvYXFZbmpSZnovRkcrR0xueWZLTWZqaWk2amxtNWRo?= =?utf-8?B?c0NsNHFxSnJLUmorblZpc2dUMk11RCtrbmN0aEJ2T3IzL3MvVE9BMExnRmdV?= =?utf-8?B?OCs1MktSeTFNOWdna0VhaW8zMG5kRk9ncWdNdGF0K25iS2tlV3M5RVBSUkdm?= =?utf-8?B?T1VtNUl2eHd0VWtxcldlT0xNQnBuYnUxN21yQlAyVnNJTzh5ajlHdDlLdU1s?= =?utf-8?B?THVPWXIrcGRHQmt3NmhGT2ZwQ1JMV0I1bmUzZ2lOREx6VXZoSE1pL3dtL2pW?= =?utf-8?B?N0FpdHlRdTNtNHZuQzBvdWZmdW91M2xlcGRGWktCY3MzSytiQ3kyeU5aWFFC?= =?utf-8?B?MVU0ZURvL2x2VDUwZHhTSlgyUnBCbjlzbUZsajRhQSswaGY3TDJMYThGSjZu?= =?utf-8?B?OEx3d0JOMDNjdWx1VmlCMVRIRkk0N011bWVrNXFSeUk3VFVLdnJXckQzSm54?= =?utf-8?B?SnNPZm5JMGhPM29teldFWnM4aS92RDcvSDFMcVp3UytKQ3lYZm12S1E1Vm4v?= =?utf-8?B?Mi9yQktOOW9UMm5HQ3JadTB0dXRjUTk5T2FpamoyTE9tRnk4a1N1OTcwRkFE?= =?utf-8?B?QlhPOStweU1sWCtzZGJvbGN4Vk11eXEwZmE2Sk5pRVgyN0x6R3ZiR3J6KzNQ?= =?utf-8?B?a1N2VHJ2Z1dhMEVPeHJSdkRkd0VOMEw3SzV3b3k1YWFBd0RlWklyRU8rQW9J?= =?utf-8?B?WTVRUTRvcEp4aVFGUllPeVpTZzU0RGQwc2tSRVQvYW1aMXlJUC94eTBOZldC?= =?utf-8?B?aUJJOVhWN3lmVnVEQVhITWh3V1pHbUtMNERpUTZvaEd4c1VTbTU5TGc4ekl3?= =?utf-8?B?a09OaGNUUUozdUtGbkdqdW5KZnFBTkx1NkIySVRXQ2RpWnlPRnM3MVNGenlV?= =?utf-8?B?Q3lBODErN0hGc1VrUThuQXRRSXBDN1ZpZU52MG44NXlkYTlZLzhiYXNsSEhj?= =?utf-8?B?SGJMTEFKZ2ZxNTlaZExlcDFjSmZYbXk0Q3hYOEFkTUFWTEh3QzNrV25rbk9t?= =?utf-8?B?Z2hHdWlJUjA1S2sySno3Qjg1YXA4bVdRQm42RE5QQjdmd2pqbU0xQ2o2NHpK?= =?utf-8?B?UGVsODZaSlF1RzNTbFdndzVMY2w2Y09KUkIraFh5a2M2YWI2ZVhON0FhelZJ?= =?utf-8?B?aXduSzJIbFVxanNEcVVqNk9yRzJnMkNZTkhXNjkyMUxqeGh2UUc0Z1oreVJz?= =?utf-8?B?dkJSOWFtWkpnZEhBbElKUHR2Y0pwUHVLZDBsclZJZlcxYmdsYVBSanRUdWxQ?= =?utf-8?B?NVAyMjIwbzJZWUZ2WCs5cVNCWENsbzNBMGZLMDAvZTlnQ0JJQi9vRGNoY2hU?= =?utf-8?B?K0VUVWdEVmZUeUVkZDhjTjJQNTN1WElacTF0QmptZDRYQkpwTnpyVnRDclor?= =?utf-8?B?RjdyRmp0SVFvUFptb2liSVZSWE43ZkZ5dnh6ZHdCNXc3TDc5QWFPUjR6K3V0?= =?utf-8?B?ejBCdjlsL2RxYk5OcXZXTFNyTG5aUTdXQ3NvWTk2T0hWZlFJVUtKMFJicHE3?= =?utf-8?B?S0V0VFJJNkhDSHRPSUpVM0lTb25ueGFxczB6S0ZRS1JSWVB3UWNtWnVFY3FJ?= =?utf-8?Q?lLhEYbyxaFx1KYIs=3D?= X-OriginatorOrg: efficios.com X-MS-Exchange-CrossTenant-Network-Message-Id: 2cde1ef3-7517-41d9-7b30-08de8051ac3c X-MS-Exchange-CrossTenant-AuthSource: YT2PR01MB9175.CANPRD01.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 12 Mar 2026 16:09:00.7246 (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: JumVUcrZty8eRLQf1vWtB7QyFNjzJeafjAMH/ker3/Ude6dlJ7R/kemj8xE7eE4YRYslzaaYR1U0uS1N8rLU3jz8pPbQvVo6ps2pj1eR6tE= X-MS-Exchange-Transport-CrossTenantHeadersStamped: YT1PR01MB9371 On 2026-03-12 10:14, André Almeida wrote: > > > Em 12/03/2026 11:12, Florian Weimer escreveu: >> * Mathieu Desnoyers: >> >>> On 2026-03-12 04:49, Florian Weimer wrote: >>>> * Mathieu Desnoyers: >>>> >>>>> + * This vDSO unlocks the robust futex by exchanging the content of >>>>> + * *uaddr with 0 with a store-release semantic. If the futex has >>>>> + * waiters, it sets bit 1 of *op_pending_addr, else it clears >>>>> + * *op_pending_addr. Those operations are within a code region >>>>> + * known by the kernel, making them safe with respect to asynchronous >>>>> + * program termination either from thread context or from a nested >>>>> + * signal handler. >>>>> + * >>>>> + * Expected use of this vDSO: >>>>> + * >>>>> + * if ((__vdso_robust_futex_unlock((u32 *) &mutex->__data.__lock, >>>>> &pd->robust_head.list_op_pending) >>>>> + *     & FUTEX_WAITERS) != 0) >>>>> + *         futex_wake((u32 *) &mutex->__data.__lock, 1, private); >>>>> + * WRITE_ONCE(pd->robust_head.list_op_pending, 0); >>>> The comment could perhaps say that pd->robust_head is the >>>> thread-specific robust list that has been registered with >>>> set_robust_list. >> >>> Good point. Considering that "robust_head" is the thread-specific >>> robust list registered with set_robust_list, I wonder if passing >>> &robust_head->list_op_pending is the right ABI choice there, >>> or if we should rather pass the robust_head pointer and offset it >>> within the vDSO. >> >> I think set_robust_list has pointer and size arguments, so we should >> pass those two at least. >> > > The size argument for set_robust_list() has never been useful it seems, > it just checks if (size == sizeof(*head)). I believe it was added in > case the struct would ever be expanded, but that never happened and with > set_robust_list2() in the horizon this is even less likely to ever happen. I'd prefer not passing an extra parameter which would require the caller to perform error validation unless it's really necessary. The field we need to access (list_op_pending) is part of the original structure, so it would be there even of this structure is extended in the future. Thanks, Mathieu -- Mathieu Desnoyers EfficiOS Inc. https://www.efficios.com