From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from YQZPR01CU011.outbound.protection.outlook.com (mail-canadaeastazon11020138.outbound.protection.outlook.com [52.101.191.138]) (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 062B5191 for ; Sat, 27 Jun 2026 03:56:18 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.191.138 ARC-Seal:i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1782532580; cv=fail; b=RU1uMMTJyRzBf61sE2jGosYU2KejuUB7msE9Al82OK1pQTZFXzWplTociptSRgToMUiCMsbus0HiASX/Vy9nukEhhQqDsO/BxUso+RlJS/yjqYmiUYiyBjPx0Qf6qXIFIaykUG8G+l+UJ8i30SpgdH+gVDsBf5OImExMuVPYPW0= ARC-Message-Signature:i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1782532580; c=relaxed/simple; bh=w30QoGkjyJn5gcxTDg/jbA4UzZPaTkz0/tYwLb3EHb0=; h=Message-ID:Date:Subject:To:Cc:References:From:In-Reply-To: Content-Type:MIME-Version; b=Hc56SdMUP4ebnLRVan0run49b5/tD/AjnviOby7KP4+J6xzJzA1wiWZM+DSLw8iMkAwj6Qb5RCrqul8i80LEzRAEFwQzu0VRyUFFVcWR/AFGBMNeE61Hg6/7PwDhAgTy9jN0igOfmxdmnrlbh76Hz8dZ2ixahHCY1cQNIhlXPNs= 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=WIMP7zVg; arc=fail smtp.client-ip=52.101.191.138 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="WIMP7zVg" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=a8UxJ4BY+UFy3DBcrAIyKNVAQVzWXcJDrhnj2whAmaAEbudAT/J0SyGl2tCGrmCUivn+zD3EgzjaxYu83fVgtWk08APgYMW6yq71Gmo8+UI/57ZCKCfWIvSGPs4cw2BnO22yUDHdKQrG25BIS9R8dsUw8Tky6AEk+bPyy9bMaIvp51ZTrp4eElAHyL5Zdh7TKcMR0ihvMiwceMFBmyZVsRUaTGm6lTUH3rm3rs6Mx8mucTwILD+Hmz/bffZKmqx/gy8kBkv53QbTz4+bOviVhRPNaXYLOgCG/RqdnVjtOtTVzLOTSFdNT+nxyFCVxbDJJSduRGr5aeEklfHzjPlYCg== 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=mSeQSRLQ+byjIjymxvX0uXWqb9CL1QXnEQlNbfRNqN8=; b=yqfXtV0A7RHSxYMP/mWaqbr03B6ca6yWnrlMMcjReX3eWFwZzwyEGpbFh2pu0voApEd2+TOULN9YoLY+66jdFDTJvS0owcR9zwCF+XcooaAYdC32lrYS10ehJwX2YGyOazCH7pmkWY3XWTjmv1eqmVroN4WMg3SAQg5wJNy8BiMJDtQYo2z5wQA43tXf2DxUaNwsPDslRu6G7wRGND4/LbW+7Bu//jPMn3BrRPJc47hVoZEAjXnHxVmLfOOXwY/8U8KXLNJEdqtT1ovKGy3+Qp9Z+kUBqN+fyL8neQoBmZBRTFxRZrWh7UJpHnQI4YGjAqSLzOLUeJ9CgwIbuOeroQ== 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=mSeQSRLQ+byjIjymxvX0uXWqb9CL1QXnEQlNbfRNqN8=; b=WIMP7zVgrd6Ab6Qco/B6fSYjaqRIhxr3metzOOkpTwt0yqWt0IxFElBpqpWNBF6jV880MM7oo+rvNHa8farH07joUcoTBzcjd61Qb3JWj+7LIyBZh0zQuE1HvLE4eyIfh0c9f0SmAi3CZvkD8BvPBef3IXO3eA4GeV3ssLAXSckRz4UuNZubIXd/NPdo5/R4KXXLoJx08KA+C2fSZwKC/1DjDwAdtDhyXe252bG/MzBYS4oi52qHuhhfAfhe92Adp3t/Tc7nuHpAFo5M5tEH7TskPiBkfuWdk2ivXD7USoYXMh7iQhX/4FV3ZHRrp6UgvpUgIHN2XyIaB/VnxuYgBw== 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 YQBPR0101MB8477.CANPRD01.PROD.OUTLOOK.COM (2603:10b6:c01:54::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.181.8; Sat, 27 Jun 2026 03:56:15 +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.0181.008; Sat, 27 Jun 2026 03:56:14 +0000 Message-ID: <0d9f61c1-4a93-4f5a-a703-12ef4f325aa9@efficios.com> Date: Fri, 26 Jun 2026 23:56:13 -0400 User-Agent: Mozilla Thunderbird Subject: Re: [RFC PATCH v5 1/2] hazptr: Implement Hazard Pointers To: paulmck@kernel.org Cc: Boqun Feng , linux-kernel@vger.kernel.org References: <20260223204418.1429025-1-mathieu.desnoyers@efficios.com> <20260223204418.1429025-2-mathieu.desnoyers@efficios.com> From: Mathieu Desnoyers Content-Language: en-US In-Reply-To: Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit X-ClientProxiedBy: YQBPR0101CA0264.CANPRD01.PROD.OUTLOOK.COM (2603:10b6:c01:68::11) 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_|YQBPR0101MB8477:EE_ X-MS-Office365-Filtering-Correlation-Id: 12ef2ccb-2872-422a-67e9-08ded40008c8 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|23010399003|366016|1800799024|3023799007|18002099003|22082099003|4143699003|56012099006; X-Microsoft-Antispam-Message-Info: S9KWuYwr3d8HNSlp7T+5Md7oPmANWmCEFkaOo6jtgjBN7UgUDOQWolghM369ZLMwLwQzx/Ykcw/VBt4RPT61qlg4Na2KmzRDCv/vH3CT6IB5MPn39kI6N5D8FLPySS/5KanU8Mo7a5SgtnPeHdyiOai3runUOWjYQ1+oYKBu5ymSkDLjrQObUQNEh26A4wYkMbFO8DHqyvQYoBxRxoB/jquO8stKOGBPRdpI1EbEx8jY8xIB+GJ3fncorACHhkEWC0WQt5OSpPkUpOcZc59+kBuXjtQBV2SMO5G/7bJ8KUAbzcVDoW+cmlf4DZcpZQ0eJq65ZqwT82OuOwF7FujfjLD1yLo0wfL3/l3HajHNG7SoI44urpBbfYsgkRYwdIu+X9eHyMqgX42bvbX90nMzrbCQvprm9XyLtb11dW8CekyKco983aPca9Pl1dLhWwRuEVRU/m1qjkvktfBoW8mCjtDrABAXitS7d9m+4s0LzDctlA8DYvjiwAjKeeROZ0gwc8Uv6ivK5uNW0gS0kBIhoiptnASY8g5Zy5C4LZgq+8Uq+pwcjdwMYpSoaI90lYINgXGgJOgA6Xiu9MfIDUD7u4dKOI/RTqfBO3czk2fo+F4= 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)(3023799007)(18002099003)(22082099003)(4143699003)(56012099006);DIR:OUT;SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?QnYrU2pXMlBBWU14ay9kVjgzS3ljbjdhM0MxSnhtT2VWeTNNcjF4emtHU0Ir?= =?utf-8?B?YVo1cHZkL3JLSTB6MG56U0lqOFF6WFlaaDFEeEVTQUN1dERMTmUyclV3UGcr?= =?utf-8?B?aXpITUgwbW9LaU5uVmRsMml1dXhJYmhzY0FEQW4rdVFwZVYzQWpEU3VmcVZR?= =?utf-8?B?dkR1N3VJNU93Y2duaDZzZXVudlRESkhqQnNVTHdaTExBT3ZHT1RzQ2V5Q1RW?= =?utf-8?B?aERjZGFxNVdzeWt4dDhib3FJVmU1U3RKK1FwVWp2WHVNdEFRaFpmS0N0cDBQ?= =?utf-8?B?WTl4c1dUdDBXUFlkeUdmaldhd1kxNWxzbCt4OXd5a21NZGtkTjYybnhiVTBi?= =?utf-8?B?U21MSXVzY0djVDlLUC9VV0hmalQ3WGFPeVFRMEZJaG1ua2JpTzdpbGdvMExO?= =?utf-8?B?OENzUFdZSmdjWnVRdnpldko5bk51dWNKMDY0WjJDUmh6OEZSQmVwVlpBdnFY?= =?utf-8?B?RFBrMFNtSzF4aE5QeXFHcjNrNlFUNFVZemh6OTl1MTN4ZVpsR2JadG15V0F5?= =?utf-8?B?dGx4dFZZaS9TNFJtbGYzQWVPdHBBOHFSbFVCNkZnVWN5OFpxWGlJSXlGQVhF?= =?utf-8?B?dG0wZEZrUGdNUU5iUGJTTjQvSGJHemJwSGlDeVZhcUtLbDd5T0N2aE0wS1A5?= =?utf-8?B?TlU3N1dYUmlkS3FFNnl6TWR1U0crRGdEaFBBR3Z4ZEJoU3NSaDdsaUQ5S1Q2?= =?utf-8?B?MXRNWUdKMzJVOVNuV2llcGhNUnYza3BOV0IxcitwSXlMR1NPcUkvQi9kRFEx?= =?utf-8?B?cjlKdUV3aUw2a1d2QWthT3UvZ09NTzJKMDZ3VDdnOGtHS0k1ejRmeEsrdWpP?= =?utf-8?B?WjhkS0RUK3poODZXQWwxMTY0VFF6VmQxUmJWUzlMOG0xYXhnZlIyelFweVdm?= =?utf-8?B?RURBMzlITFVrQ3FzOWUrd0dNeDNpSGRqcVJKYWdETmMzOStqL1Z0bHY3c0g4?= =?utf-8?B?b1hsN1dMVVEwc2YwQ3ErQWRGb3VSWDJFY1RKQ0ZJVHlrWlJtSHhxTGZqVzRn?= =?utf-8?B?QWpvZy9vOUR2TG5FOTJqYnc1bDBkcGE4OEFBVk9FRHBMWERRdC96c2tYMWpS?= =?utf-8?B?c1JveVYzYjY3dmM0RTZEV05MbW14K09LTnBIR0cxV1U1WHlPWUdrL1lVTUZh?= =?utf-8?B?bHI4MVk3T1dHZ1NVYm1zdHJpbEZ2emhpNVhZeUM3S1R4VEhSY1pZa2dFRTJn?= =?utf-8?B?QklmOHJ6Z0pGQ3g2T2pzSUtpRzlyMlZHZkhKTmV1TXplSGZpbWxuMnRHVGpi?= =?utf-8?B?U2REaVp6WU4zVGt6NmJtT3ZCUU80RU5Rc2Z0YXYwMGNPUUNOaUlPK1Q0cTND?= =?utf-8?B?K3lIbkl5QkZnbHl2aUI2bmVHZ3gyaHpIQkljTFVlVUF0SEZaTmNLTVpGenI4?= =?utf-8?B?NEFNUHBvdlNQbW9VcXFLR2NZL1I0Yit2RndOMGV4eG1sR0ZXaTRhM2JVMjBx?= =?utf-8?B?MnREUE40Q2VyQzNVd0gva0pCMXNmcVp2SGVKV1NOODFDRzlROTFHRjZ1MUpU?= =?utf-8?B?ekZCMHo1L041WkYwK3RmTHhEZ3VQZGthc1MycEZGNnJNZmRXL1FwSEx6VDJ4?= =?utf-8?B?anRzT1hZZzZRUkN5enNIQjNsTkY3dlRhQS9JK2UrWWY4RzdmL2oxSEVZeUQy?= =?utf-8?B?L3RoVjFTUnlJd1h4U2FnQytPdVdqemdJRUt3MUdGb2xWZlhKQ2RHTmxvZ3VR?= =?utf-8?B?ZWRzRi9Tc09GdkhJSHpmNEszUkVOMEJGRDlhZjNmU3RqWVZ4aFN4VzQ1Q0M2?= =?utf-8?B?UHJWSmxJNGNvRzVKcUFmdy9xSmRkUXo0ODV3bVB0VENsRkZ0SUo5YkhVNDF1?= =?utf-8?B?STRJN0ZxSFdRdkxmSFhOZFlDaytFNU82NEJaQ1NEY1MzRWpLa0VmRnpyWkxZ?= =?utf-8?B?UzJnanZ4UDJRSzZlMElya0U0WEVRVDZxY3EyWU9MRVpZdEJ4bWpNR1VwdFRQ?= =?utf-8?B?QVU4SDdsTy9RamZFM0RwN0NJa3AzSFd2eXE3K0NJVFU0Z3YrZ0h2S3JlL3pV?= =?utf-8?B?bnZIaWQrWnN6Tkc3Sk5vQzJQakUwcFg1RHdlQUd4RmQrakRHaVhyKzdxTHF2?= =?utf-8?B?UUdkWjJjeGtRc0JWdWJxWDBUVy9MOU9OOURMUENFVXZHNGtERUt5SDZOUWlT?= =?utf-8?B?dFVoQTl5V2tycjEzSXdaaysxM1dtTmkyTUFjVFV1VGpCNlRzT2dLS1RBanZ5?= =?utf-8?B?NHBZdVB3MHlYbUZlb09HSzFKbGt5UmxaeVBDOFhHM0RianNnT0xoTGJ5TUZH?= =?utf-8?B?WHF3RXFhRUFyV2tLS0owSk96QWZkL3haSFpUdlNoc0hUQnJibkZWOWxjdnRk?= =?utf-8?B?VGcvTHlQTDVEaVdOL3JvaW5ybmMzNHZ4bERYMyttcUJGanBZRzk2dGkrSklm?= =?utf-8?Q?sCtrE5R8qgdzO9oQ=3D?= X-OriginatorOrg: efficios.com X-MS-Exchange-CrossTenant-Network-Message-Id: 12ef2ccb-2872-422a-67e9-08ded40008c8 X-MS-Exchange-CrossTenant-AuthSource: YT2PR01MB9175.CANPRD01.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 27 Jun 2026 03:56:14.7390 (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: QTGzI9XVTLpAThCeKNmGUO03I+Nwoy45zRD1dzQfDYb6RrAjZl490nXvfcTrT85eZkN+/ZUheV3QU46Y5RFyLi846fe6JmKmmkdjh1BACdc= X-MS-Exchange-Transport-CrossTenantHeadersStamped: YQBPR0101MB8477 On 2026-06-26 19:06, Paul E. McKenney wrote: > [ Trimming CC. ] > > On Mon, Feb 23, 2026 at 03:44:17PM -0500, Mathieu Desnoyers wrote: >> This API provides existence guarantees of objects through Hazard >> Pointers [1] (hazptr). >> >> Its main benefit over RCU is that it allows fast reclaim of >> HP-protected pointers without needing to wait for a grace period. >> >> This implementation has 4 statically allocated hazard pointer slots per >> cpu for the fast path, and relies on a on-stack backup slot allocated by >> the hazard pointer user as fallback in case no per-cpu slot is >> available. >> >> It integrates with the scheduler to migrate per-CPU slots to the backup >> slot on context switch. This ensures that the per-CPU slots won't be >> used by blocked or preempted tasks holding on hazard pointers for a long >> time. >> >> References: >> >> [1]: M. M. Michael, "Hazard pointers: safe memory reclamation for >> lock-free objects," in IEEE Transactions on Parallel and >> Distributed Systems, vol. 15, no. 6, pp. 491-504, June 2004 > > I (finally) put together a stress test for this, which is the following > commits on -rcu: > > bfb239e036d616 torture: Add a hazptrtorture.c torture test > adda38c3cffcd6 hazptrtorture: Add testing of on-stack hazptr_ctx structures > 311e199e482873 hazptrtorture: Add microsecond-scale sleep in readers > 21ccb41f79a45b hazptrtorture: Enable system-independent CPU overcommit > 82e8c141265c81 torture: Add a stutter_will_wait() function > 9ad8169bd3a367 hazptrtorture: Use mnemonic local variables for context information > cd541d5eb7347f hazptrtorture: Split hazptr_torture_reader_tail() from hazptr_torture_reader() > 0de8bda6b00051 hazptrtorture: Add kthread to release deferred hazard pointers > 3deefef00acb22 hazptrtorture: Defer release of hazard pointers > 65b2cf3c6ea34e hazptrtorture: Add irq_acquire to acquire hazptr from irq > 98d334c04b58fe hazptrtorture: Use task_state_to_char() for task-state reporting > 1e89aae50a3fde hazptrtorture: Pass hazptr_pending to hazptr_torture_reader_tail() > 4b1a177190e2e1 hazptrtorture: Add the ability to disable the writer kthread > 2c966f58358329 hazptrtorture: Add irq_release to release hazptr from irq > 16258269b41ed3 hazptrtorture: Accumulate operation statistics > c090e2659abcb3 doc: Add hazptrtorture module parameters > > Initial runs suggest that hazard pointers cannot be acquired by one > task and released by another. Is that expected behavior, or is my test > improperly passing the hazard pointers? If the latter, we should of > course document the proper hazard-pointer-passing mechanism. This is unexpected. I've looked at your test code quickly and could not figure out what's wrong though. But it's late. How do you observe that it fails ? Thanks, Mathieu -- Mathieu Desnoyers EfficiOS Inc. https://www.efficios.com