From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from YT5PR01CU002.outbound.protection.outlook.com (mail-canadacentralazon11021135.outbound.protection.outlook.com [40.107.192.135]) (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 0D2C22931F8 for ; Tue, 14 Jul 2026 19:17:03 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.192.135 ARC-Seal:i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1784056626; cv=fail; b=qNbqVI/95oc6FgHCIeAhEorz4rFuozDp3aCS5LmQqLdrDhhbAqRhDdiPLxlzyCmybYTDD9jQPQwiwRFP3ch4EMSF3n6n8C+Ka3nofcC5M1KdJoxADOu4ukMqVVeDvQWjpLTTCX9OlJqgoY6KrvOZnPIuG1ia3WNzqSbMN4dMsOY= ARC-Message-Signature:i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1784056626; c=relaxed/simple; bh=2EkT9+eVeH3k503r3Vzm0aSFwiZET3WPSKo6w+mnL9E=; h=Message-ID:Date:Subject:To:Cc:References:From:In-Reply-To: Content-Type:MIME-Version; b=b739GIxqChCIo7oaIp8OgAKs+XlE0d9kMY+39RR3iLkbw3l3UvwmCi2j67kgiEv0s3Fj0rZK+g1VOn0Cg0eTK2y0J6mvF1WJ/SdBiGYIadIvojiEM7SB6UvtnUTavThMiO857wpu+SZQFuGLRmTkUMBadYDYFvssDuEtpIaKf6E= 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=IDoSa8kB; arc=fail smtp.client-ip=40.107.192.135 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="IDoSa8kB" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=ivbyQ/4wEzMbU3cC4qTFmVobMpc4f7w0IgXPSQdbuHNdlks1ACl/Ql2OGbglZlGHRUT28sXpKIP3FHgRfsN1m/bjc0LI64bJK+yyx0q9j+RARR9GP4MT1dpQEM0jONrtfys4edJG5BjI1yQw4BUXkC/N3Gp4ebgD1x1vKETe5dWCwmUwz/IDo3RuJRa5nqqDJCP4doQBkKHf9TYH1NLA3SqwJSGgG16FFnRb0UTnpf4f9REn+hn5BvFJgqrt6HVyQPMex8jEB8N824iNlYVSr3NTjdkbKHXjEFqPhEAtUio/DKAGBRC4HfeM603rXC5dgNo/jOW7sKCqCrIqLHSA+w== 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=g2AMGRehNE/v2C8cel7nMlLH9zMF0zY27Athjpi6KyI=; b=Eu5WJhUaaWC+KAaSB4Xpe/e0aEWDFxH64Ju36mc7b86bZ/PlgX4BGcKi5lWKfqe1oazuT1P1pM3sDfzPbqWjVbaBJ0jah/l1ZhM4SKD94SoiW0A3tBKyUOw5xYmIRyOnob/t3a3d010OpLL/Bwdi0uUh/E6uyLhWRTCXlL+B4td8Hvl7gBWmSFLF9E+3qIx6VDmj4Z79h4ygZxMbxnKGd16ihL2PFH2OHHrRiuF8cL/bjSCiW2h+Er8XA5at658huSqFmCclYtgRvLe2DuN5/M2226GzhEMo1MLwDAk1321Lg6hVvUNd0h3rP5w/ztbAxt7UXMuwT2NhZ3MvJRj3EQ== 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=g2AMGRehNE/v2C8cel7nMlLH9zMF0zY27Athjpi6KyI=; b=IDoSa8kB2UxOs2Er2Z5ZQxmGL6RPRI1WjYRLtVepguz1G5/CX2u0Z1NwO073Ok7THn9I9KAsQX2Z5VexhCML6lykvfrbRsmK1QFht2rpEFjt2Ddx48GEbLs00vlcUOikFr26b6lsKUR1jHIRTQEgIzfWXMxN/cTEH+mQ8GnyziJ+zS1+XNiNnG+311XzYecNHz92auoHbVyBBYl8b9XCLKqQ++H/lHlWt4UWOZTAS9lDLs/0M2oCsAAQ1plznYKZuPMXRFSNtfZh8hLSuVG6GUy+vtnd+vahMMKHSyxXZhDaCbCObSxjEb+DlnPbi7KrmJIkQboX9OWPji+Bo/KZZA== 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 YT4PR01MB11626.CANPRD01.PROD.OUTLOOK.COM (2603:10b6:b01:152::10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.202.18; Tue, 14 Jul 2026 19:17:00 +0000 Received: from YT2PR01MB9175.CANPRD01.PROD.OUTLOOK.COM ([fe80::6004:a862:d45d:90c1]) by YT2PR01MB9175.CANPRD01.PROD.OUTLOOK.COM ([fe80::6004:a862:d45d:90c1%4]) with mapi id 15.21.0223.008; Tue, 14 Jul 2026 19:17:00 +0000 Message-ID: Date: Tue, 14 Jul 2026 15:16:58 -0400 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH 2/2] hazptr: Introduce CONFIG_HAZPTR_DEBUG misuse detection To: paulmck@kernel.org Cc: Boqun Feng , linux-kernel@vger.kernel.org References: <2402b90a-7f26-4ef8-b5ff-b3c92d1be9d0@paulmck-laptop> <55079bd3-b049-4e0f-9225-ad41e3562500@efficios.com> <222ca62f-a39f-4b6e-b5b4-7e40bb5ceb36@paulmck-laptop> <2c7f97fa-8429-4fbb-bb33-53e015629f01@paulmck-laptop> <2d801522-6a77-47ad-8daf-d23cc85cbb7a@efficios.com> <9282757b-8b73-4f40-ae8b-239a587d36f9@paulmck-laptop> <64b9de0c-a620-493a-bec7-a2f617149d36@efficios.com> <7394f8f9-7b49-4d8a-8a24-c1074f4242be@paulmck-laptop> <8179f07b-e6c5-4e77-869d-a5cbb0201662@efficios.com> <1c9cf8b3-19d9-44b5-ab75-e745d6af48c2@paulmck-laptop> From: Mathieu Desnoyers Content-Language: en-US In-Reply-To: <1c9cf8b3-19d9-44b5-ab75-e745d6af48c2@paulmck-laptop> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit X-ClientProxiedBy: YQZPR01CA0157.CANPRD01.PROD.OUTLOOK.COM (2603:10b6:c01:8c::6) 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_|YT4PR01MB11626:EE_ X-MS-Office365-Filtering-Correlation-Id: 92956c06-7a98-4e4c-d652-08dee1dc7a7d X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|23010399003|366016|1800799024|4143699003|5023799004|56012099006|18002099003|22082099003; X-Microsoft-Antispam-Message-Info: ljXyVUF/1Nmt3t+RTTmPozEiM8+l2NaEGc6erBi11eXnurA3ycT0TimeQVJSFC5FAAgKk60isfVQTAZ1rFonPMvGB3QRGgZSMHOuPVWMAkcCZ/CopV+z4Vs3Q0LMuj6WCGMoi2dg2o6nAYp7cdHvdQclLcPOEmoWsR6YZqjGgAZyA+kSJK1dTC76xGKJklDhx7+kAnf06YrofS4R/Q/kgnMIBVdAC8f/oLwz77cBHWsyfIW77HXjivcUiwnoeNZ2pPwsI4zbW1Xu/Knf2mUts8wQinVKdpiQHOyqd5d+Ckey4gTWuMHdnF3ixkK7w/bOFAB5/ZTIqZIxOZO1YeEH1ugjCahZrVB84vDFVv69HO2UcfHOPr7m4HBHSUx/zqfKrw0OZ8m+rjOTm7b9mSbmVb97yoaYCouhw8eq2OtsPqNu7AHcUdkOuO1DwBWz6LKK2jrXHQdpG/W4Yg1EqedJXJOJ2Lj5Ao1AFvxwjzFN1ZvZ3v7Km67bap/euGUMRkt0WiRlpZvphrqu5rWaOkFmIkEiIqL7HIeRAGFJizlQ+Dm7swkbcu+7wZ+lJ5I/K+ovNkLYdFLRrgYjOTJ1XmgMNhtFr5/LdPvCkpiT6o8wv8I= 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)(23010399003)(366016)(1800799024)(4143699003)(5023799004)(56012099006)(18002099003)(22082099003);DIR:OUT;SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?akRBN3FXN25aMlRmSzg2TFk5N1NpOHRLMjhjR0plRVFYZXpPdkVZNHd0QXIz?= =?utf-8?B?V2htakdacXRFOEtMdytHQ2M0NTZ6cE4zaU55akpQbmlvNWxnUGVnTEhOQk5v?= =?utf-8?B?Q3ZNWXBIMFI5eVp5NVh6VWY4UnV2aWpGdmtjWW80UG1aTVZNdE1Sb1dIU3g2?= =?utf-8?B?eUZsRUVKemVocXA5R0dLWFZQTTBWaTVvTlQrYkFLS2I0K1dGR0k0Y3Uyb2VH?= =?utf-8?B?dFRuZ0xnWXR2WnZCU3R6ZVd4SFp4cFBTS1VDc3VzS1o0RW1wYngyOUduMDZW?= =?utf-8?B?YXJXT2loM0tQMWtMZzNEeFUzSWJXcFVlT1Z4Q2R5OW1GV2JrVS90eGdPbGhT?= =?utf-8?B?OCtjOC83SzRxTVljMThtRWdNMW9hdGJlNFliY05ncG91cHp2MS9IZHVnelBX?= =?utf-8?B?em9QdGpqYlFSU01iMWZObDBDeW1MS0hmbkFxdUZyU2M1em84bVZieS92cHha?= =?utf-8?B?YlB5TUFPMGVUSUdYc00zVHladHJjYkY1NVJsT2VRZ3cxZGZTZzdGL1VvcC9n?= =?utf-8?B?aXl5RU44THVsYkF0Wm84VGlOaVJ4dlh2d1RXbEpsOWE0cGJDdU1MTEx0Y0VR?= =?utf-8?B?eHc5T0Ezb0kyWGt5aS9sRVZMU3RoMTVHQ2VuSnUzTnV3aDkveCtmMUtTNkMr?= =?utf-8?B?Q0J3dWpHekU3QWtQUG5RYlk2bW1xSmxSTVRjQWMveUlFQkVLeVBtSnh2T0Qw?= =?utf-8?B?VG5oVGxITStQUFZuUkorSzBMc2RqMWI2K0FVTjRMblpvTHRJTXY1VDJYRDhB?= =?utf-8?B?di9zdzdwWWxCajRpRWQ2TUNNWkxnTDhzNjBqTDZxY3VUR0oxdzFqOGNqMUlj?= =?utf-8?B?Mmx5SHA1MDViUi9CWDd0cDNhMXFMT0pWZkhvMW9uc01abkdHR3R1cDhNM3lp?= =?utf-8?B?TmNCdGZnM2I2Qldla0FBM2F5ZGhqVHM2RkV6OXB6aWdGY2dOa0wyZlNwY09n?= =?utf-8?B?UDhyQU15TllmNm1mM3hUSmw0eUYyc0wyUFphYjh6ZUoweHRmb2dxUzVweEN6?= =?utf-8?B?U2RuUDJGWEh1ZTk3SzNtdkZCOWFvN05pUjl5Rkh5N1c5SjFENTJNMUp3QWJx?= =?utf-8?B?TG1yMEk2L3NIZU5WaHN6QTdJMGFia0pSODF4ZncxRXRUeHRab2VRZkhONkly?= =?utf-8?B?YnhnbSt6REhyT2Iza0lZQXhlL0VUYVBWSWZMTTZRN1dsQWxXb3JpVHIwdDRI?= =?utf-8?B?WXdDdk9XeGNjaEtqS0tsc2R1MTVYTi9rRWlmZnNBblh6ZnhMOExLbzUvT0NK?= =?utf-8?B?T20zVjN5OUlVcjFvTnlSQ3NteGR1dCtmS3NlUThNS2ZONHRDWS80TUR6YVEr?= =?utf-8?B?RUVqY291U0RJWnQvRUp6TGU5WGk1Qys5b0xwT21YWjNXS24vM1ZMUDRxMzVa?= =?utf-8?B?R1ZoSWdYZ0Mybm1aLzlCUjIwd3ZXQXJMWU9wcGtxd3FBRlJNN081Zm5CRkJJ?= =?utf-8?B?b2RZOG1iMzl4aDRyVkxveGZ4R3hrMzBPaHJ6VGluNUlYNmFWUDZVVENFV3Yv?= =?utf-8?B?Z0NtYzFRY3dxa1psUXVlQWRtLzNSMVVuMFBVSEZHTlFDNzQ1eXFmNXQ5UC9u?= =?utf-8?B?Z1hwdzdHdlRzQjR0ekdMVWJxWk9BYlFrM1VHMjhpQm01QWVSSU9wVkVyUDF4?= =?utf-8?B?OVpIRVhrUjhMY1Z4Mkl1U056TkFDd0xRNWxVdG8zYlBUTDkvSXh5Y2Y0VFM2?= =?utf-8?B?QkxqMmJnNEZPYitHL3V4ZkhiNlFQZE56SXNJOVBXcTN4R1d0Zm9MMWZyVEV1?= =?utf-8?B?UnFnSHhKU21uRjhFa2E2MGNhVzBqNExvMlZidnZVWGg1QmV3SWZJc0pSeDhj?= =?utf-8?B?cFUwTmR5RHdDSlhsOHRGc2lWZUJjV0lLZDJoT2dhQ3BCRElmeElIOEhWVmpM?= =?utf-8?B?UjhnRmFFcFQ5K2RUNU9GTWFROEVPSmlpY3hsN0RBb01qNEQ4RUVET3ZLSVMv?= =?utf-8?B?dTRXYWVUdkdDY0lFYXpMenZodEl6akhHeFJ1cTBmRXFtTDROb0R2eWVKU2JO?= =?utf-8?B?Rnl3SUtaY09MbUcyYUQ2eXM2ZVNQVEVHRGFCa2N4QnNKZmUzRWZjWTVuTW9s?= =?utf-8?B?ajNkSk5BOFEvNGJDUmFpTUFqbWdrVkR6cU1yWkZ1aHppaXpucEZjdG5ZUW1u?= =?utf-8?B?Y1prY0p3RjZENEdVeEsrbnhWcENMbjZvRGFaWExmY2lxTy9XeUtESklDMGJ2?= =?utf-8?B?S3I5SUNyU09mU0plUHk5MzhreWwwNWpBK2FVNERUQThrZ1k3MHVIWHhtdVNN?= =?utf-8?B?K2NOUmtoYUt5MlZWU09PSFVObWRKUTNPWlo4L1hvVDcwNzdhaGRDcElvN1lR?= =?utf-8?B?Q3BlTmFsMW03QkxTVGJyWno5OVFEbHQrWDZpYWZGS2E1UDZBQ2J6UlgrdnBK?= =?utf-8?Q?wrm73Bbhl/xQ+ISk=3D?= X-OriginatorOrg: efficios.com X-MS-Exchange-CrossTenant-Network-Message-Id: 92956c06-7a98-4e4c-d652-08dee1dc7a7d X-MS-Exchange-CrossTenant-AuthSource: YT2PR01MB9175.CANPRD01.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 14 Jul 2026 19:17:00.0819 (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: m4JUaVrrJ/MJ53/WUP/++Jz5URgXHigN531KJoLWv7hCcdS96+kKcH10tOd/kMx0nx3ecYD6XrLifqdI34YIUCsTFq70hdVUpeQ+ZBZM3dg= X-MS-Exchange-Transport-CrossTenantHeadersStamped: YT4PR01MB11626 On 2026-07-11 19:55, Paul E. McKenney wrote: > On Sat, Jul 11, 2026 at 09:48:18AM -0400, Mathieu Desnoyers wrote: >> On 2026-07-10 15:07, Paul E. McKenney wrote: >>>> >>>> We should really rename this given that it detaches the hazptr ctx from >>>> the execution _context_ (irq handler or thread). Not sure how to name it >>>> though. >>> >>> hazptr_detach_from_context()? >>> >>> I am leaving this alone for the moment, easy to change later. >> >> I just wonder if that name brings confusion. Is "context" the >> execution context or the "hazptr ctx" context ? I fear this is >> really a good opportunity to confuse everyone. >> >> [...] >> >>> >>>> Maybe just call it hazptr_detach() ? >>> >>> That would be your choice, not mine. ;-) >> >> I find that hazptr_detach is probably better here. It does not >> state it detaches "what", but at least there is no shortcut >> confusion with the overloaded "context" wording. > > Fair enough. > > Would you like me to make this change? Since you're actively working in that area, please go ahead :) >>> + */ >>> static inline >>> void hazptr_detach_from_task(struct hazptr_ctx *ctx) >>> { >>> @@ -160,12 +182,26 @@ void hazptr_note_context_switch(void) >>> } >>> } >>> -/* >>> - * hazptr_acquire: Load pointer at address and protect with hazard pointer. >>> +/** >>> + * hazptr_acquire - Load pointer at address and protect with hazard pointer. >>> + * >>> + * @ctx: The hazard-pointer context to be passed to hazptr_release(). >>> + * @addr_p: Pointer to the pointer that is to be hazard-pointer protected. >>> * >>> * Load @addr_p, and protect the loaded pointer with hazard pointer. >>> - * When using hazptr_acquire from interrupt handlers, the acquired slots >>> - * need to be released before returning from the interrupt handler. >>> + * This protection is roughly similar to that of a reference counter, and >>> + * ends with a later call to hazptr_release(). >> >> Perhaps worthwhile to hint at the vast performance/scalability/memory >> footprint/cache line footprint difference between hazptr and refcount >> to justify why both exist here ? > > Like this? > > * Load @addr_p, and protect the loaded pointer with hazard pointer. > * This protection is roughly similar to (but way faster than) that of a > * reference counter, and ends with a later call to hazptr_release() works for me! > >> AFAIU there is partial overlap between refcount, hazptr, and RCU, each >> with their own strengths and weaknesses. We should prepare a summary >> table for the end users wondering which is the right tool for their >> use-case. > > We have lots of such tables of varying sizes and levels of detail in > numerous C++ Working Papers, to say nothing of Section 9.6 of perfbook. ;-) > > One short text distinguishing them is: "RCU is a fast and scalable > replacement for many reader-writer locking use cases, hazard pointers is > a fast and scalable replacement for many reference-counting use cases, > reader-writer locking provides mutual exclusion, and reference counting > provides instant notice when the counter reaches zero." lgtm Thanks! Mathieu -- Mathieu Desnoyers EfficiOS Inc. https://www.efficios.com