From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from YT6PR01CU002.outbound.protection.outlook.com (mail-canadacentralazon11022129.outbound.protection.outlook.com [40.107.193.129]) (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 4CB73175A88 for ; Thu, 9 Jul 2026 02:45:28 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.193.129 ARC-Seal:i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1783565129; cv=fail; b=ss/4zDSh55je+TcH8YwootJlVYk9v4KdczcywDWXEJCojkrmc+M6OYbI80HwwXr8IpKxgk0Hek5jlaj9tcUbBoQCFYWZRo2Mrty0JpPXBhxjvFdfT1rXS77gNdZyckX6oUlqs02pcxlwikMQuhjqOdMrqDgYh7tsTZ8oI6IA2bo= ARC-Message-Signature:i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1783565129; c=relaxed/simple; bh=IKy8A88tMWCn8PSmWdU/wUbs8hT3ZmbWfOh42SxyiEI=; h=Message-ID:Date:Subject:To:Cc:References:From:In-Reply-To: Content-Type:MIME-Version; b=G9BI4jPE5zxNhtRho8mT5loA0EAgNc+nX2KXxG6LHA164Vu38hjq3ukoHvcVbIXNqgLfC9M/2sptAgS7lqUgQgYBYODZ2XngigTAo+2pykftaCVSlY7nzxrxyu7IBQifv1+PneaTWfh4CUfcHvjqUhk8ddFUufmK6Wiz/N/98Dk= 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=M+SJIuog; arc=fail smtp.client-ip=40.107.193.129 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="M+SJIuog" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=yh2wR+xbboaCYremNU3yk+idE/ZWaoV4rjOPNJiTrz+9eJiTcikYZYkiXHGyYCB1qKluRqu9rZ7J/G8XrbdyjmiOuUVfvv7ulJouJheE7AlQyUk9oeGvtdkvlZrSjwZkBeaVqIvD3lIOZ6viBOxV8zY0lK5TfRCdnE1HpDglYbmt0jn8ZnjMSELS0oSOJuJ14nG5oeZsGY1PClT3ObhTWResoBLgZBNqS0s2CnobYOnmNql5tNdotWQ1Bqu+7ykmfNC/ITFO2+FUX7L+FCQx5a4IuysHn6S421ovs8X06bka2PJGikue17VpDJhX0efxqadtv1lUxrYwjxe2r3qrtw== 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=2SUvZ1yQ/i6QMtKWsw38lBNLZvF0zRzIcUFWm8VRYhE=; b=Rh/ExwrFqhCP9gDNKykY0yo+HXGz/MEhTf6bEhMG7cBsbR49VjctDa6ol/aLAr5UnNUhhEkPGvuvA2C/oUNmaiZW/YhA7UZ7dvDhHPAjN+44bLiAfwj7GEOfVPABIHuRT476Qt60AtGKspytfQ7ng4BIDItM3zS9sLcZxjwRDENOZ7eT1fQgM2Nk4AknyjPLntiplxLQrcbBa2GXrJ6ufWMoG6yl9v5XQEDneAWCCBpq/5n6XDKHCq+eXJsV+pV871Z3FTHxOT4+F+zrnxtrKZFRZHvnbHPErEJ9p2mhXYfVao7ojeT8OELNSu8rR5vVBcJwdjSvaDhADy/g2NyxWg== 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=2SUvZ1yQ/i6QMtKWsw38lBNLZvF0zRzIcUFWm8VRYhE=; b=M+SJIuog8vIpat8bSJ1ufhPZyfwIdyKHTZTE3gSDfrUh4Vnl6jbDCpcC9IEuAwlI6mZ7PlgKuVvubEIi3ax0u5rG/iREkk/6SsRW7Jsz/Kjag/wBbqxXR+pmlYsBt9aLc2nAu4RYlzeb4yFkvGln6fmmJYxgMiBSRxzEI16QjMlsXDiYipmyOkeL2MnzuJgnbDquTQw9+CHgzcRSNQuff+3650FJg7PqgwFy4cXG/T7WvnhaSRduo8emHL4NVdgxoHMCzH4VbaK0fL+j+pj7rF2v3lXvk/vJZ2+SVH3f0n9uQCBqTV8MAjBuSs26hqPqKrqaCKSV88zLObwOGO/P8w== 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 YT1PR01MB9178.CANPRD01.PROD.OUTLOOK.COM (2603:10b6:b01:cd::9) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.181.15; Thu, 9 Jul 2026 02:45:24 +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.014; Thu, 9 Jul 2026 02:45:24 +0000 Message-ID: <68bb6ee9-d28b-4a1c-b5fe-578591a5f85d@efficios.com> Date: Wed, 8 Jul 2026 22:45:23 -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> <0d9f61c1-4a93-4f5a-a703-12ef4f325aa9@efficios.com> <8c12a0bf-68b8-4677-9745-c39b79d1f1c7@paulmck-laptop> <6623407f-8219-4a9a-8c6d-f17e0e73f828@efficios.com> <7741b89e-e36e-4288-ad85-83a413529526@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: YQBP288CA0011.CANP288.PROD.OUTLOOK.COM (2603:10b6:c01:6a::22) 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_|YT1PR01MB9178:EE_ X-MS-Office365-Filtering-Correlation-Id: d017bd61-16cd-4a94-ec0e-08dedd64205f X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|376014|10070799003|23010399003|1800799024|18002099003|22082099003|6133799003|56012099006|5023799004|4143699003; X-Microsoft-Antispam-Message-Info: qQVSPzXBLKwRlaUxQx2AoIek/T2TPLyqtWreydZy/rC+5FLz50tMDF+j6lBpiYU2Cjk7HMZBDzCvGYAgHMj0cNbV0Eg4JY9LDtKrW9UlOC2jvDfg5MKismvg8mqN+2AijD/wdhnXcbhXbfx6AFXcimOGAABcFQtRqmBHoryNxJmaxZJ9q/H4/rJCV+HBqmXuxx+/11nakHp95C57qdY9p6l8sR+ZNyMAq/kUvHtGZnPWy36DzmhIaQ7s6PIkxNkpcKVvWPC1fxzGYvCAVOR5dGkygVtAryF4FdvbcT9hLgmMcGlBsg5OROMTtxw0YkGuuKl83UL4M5UOzAnBLkz3Zik9i+mjvvrkncswMiPe8BO9q5cSjs3Dwu899b0QzW66D5UCquaYON7xfB9bOd5zIwFcvcq1UFhY3S9cIP9J/e17WRDPzOS/3tVYsiekzAXZMpWwdANndz4jQqBbcr7BWZftFyGwgs4xK/a9mGgYExKKvKGOvt4/0AJbTpXqw3WMu1zLC0qZFVEOvUxvP+//F4fjdgXOekUqMOsMAkodBgr2slTps9b6JpJ3jNVxdpePi0OEuHgdRwPCqv+X1JkDeG9BbrpBqYTmf7woTGLQGV4= 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)(366016)(376014)(10070799003)(23010399003)(1800799024)(18002099003)(22082099003)(6133799003)(56012099006)(5023799004)(4143699003);DIR:OUT;SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 2 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?a1Y0ZERnWm83UlRuYytXckJoSVZXQkZ2UnFHcVFNQXZuRGdsUkRRRzI3d1ZZ?= =?utf-8?B?cjlGbUVPYmMxbEdnYTNGZ1pITXNSSEphYjVLZ0JnQVBpVVpPS2tzejV0MTdW?= =?utf-8?B?c0xQZll1ZVZ2WnJkcWRsUzdSaUtMMk9kb005Yng5VTlSUjFqQlhzUjd5eG1Q?= =?utf-8?B?ZFNZV3ZEa0t4YXNkTE5RMUhvaXZzNjNLRHFab292M21la3NJSmRnMkJwYTQ0?= =?utf-8?B?NmNsdC83VGV2Y2UwTDV1MEY0SVNxZUlWMjQ0bWd0ZnNnQVNWTFVwdGdSVExV?= =?utf-8?B?aGhhRUwvWFg1WlZuVXM0bzNLZmVLV0loWTc2VTNBUnY0YkJ6M0JQayt3TENV?= =?utf-8?B?ZmxUemZ2VGdlTGE2Z3ovZ3ZYQmJMUkNLeGl1YjFlaGcyRUhxYUdtSmd5R2xw?= =?utf-8?B?WDZrOHRyUHhtdGVyTzBRL3RKME5sS2lOeUxOaTVqVDdiUWp2VnZzZTgvWC9G?= =?utf-8?B?QlhJWjZOSG9CTkZHckliS05UL0I1V3ZiWXBKUUJndFJiRStBT2dubUVxalNH?= =?utf-8?B?MWxuT1RvSW1iOTVOUmRXNkl6MGN6UmhvS1BqWnNSZXQvS0VyU2JaTVFSYklF?= =?utf-8?B?cjErQWpDZ2d3MXI1NnlNNi80MVJ1cjJZSk0zeHZDZmpoUGRJWXR3bjhMNGc2?= =?utf-8?B?Q2I0bm9oSW5KZ0FIWE1PdFN1eTA1YktqVFpLYzVGdDA2TVdOU05LSDVybWg5?= =?utf-8?B?VkRtZWhlTGg5QUdJblJGRDFTR2prbTVLQ0E1a0VHc3l5cnV4UDJRYk5FY2JH?= =?utf-8?B?Vi82OVd6cVpKdFM1V3hjemVwWTVSZ2tFanVTaVhvc1JlRjljNnJhaTBySVQr?= =?utf-8?B?Ris2UlREcmFBc0VsVnNMNzR6THIxSU9IQTIrSWlZN1BkeFRYWG81MGVPVUJJ?= =?utf-8?B?YlpwSUthcjB3Zjlhd3ZQNFBsbG8vTkRLN0RLTXh0UThHeFRSd2pFRUc1YjNq?= =?utf-8?B?STZhd2RJZk9UKzdtREdUR1owTlBaN0d1VEt2MmJaby9PbVRMMjl3VzFSb1ox?= =?utf-8?B?bWlVNjIwU3NKZkVmNlhyRzBRQ3BTSnU2MXl3NHkvS0VxQndEUGZMQ28wL2VE?= =?utf-8?B?b2s2R2VtUmlGaWRkWDBtV0VaZFQ3RG1xRVU0VkN1VUk0RE9sK0xZUURwWEVO?= =?utf-8?B?ZnhBWDl3Um9talhqeTl3UXkyaGFJT3EyTlR5NFdSRTI4VkpyT2YyemVYQm0w?= =?utf-8?B?VWRHTENUUVl2YUpxMnR6ZW5XeVFDK0gxL2hsZVpmMXBPQU9FZG4xZG9vd1hp?= =?utf-8?B?am1tUS9ubDhDNGsxQzlpV3NyL0djczVoclZ5cVdTTWFOY1RReStYVURYYmlE?= =?utf-8?B?TVd3QXVKVDZTMWZnSWFNeVpFdHArUHRObGljMWN3UDZlNzYxbGZ2cW5TSjF5?= =?utf-8?B?NU15czFDS1o3SmkwRHdzUFZCZHdBSDdPSndzWFJnaFR2RnFDYmtGclQ1YVRl?= =?utf-8?B?R3BpTDFyWmFlUXd5eWgrL3luaTdvOThod3VLbzlJS1hIRkN6dkNBU2RTU1F1?= =?utf-8?B?N29RSFR4dE96TTdHdlUxVTJleFRVcEdEdWh6V1dtcGpIVUJJNzhVbDRUemdh?= =?utf-8?B?NW5MVldnd3VZK0pVMkNkVTIxdU10Sk55ZlRvK0VOb1VVYWxIUEx4WEROa0I1?= =?utf-8?B?aGlhZ0Y2UkNnKzBkUzFMTU9pQUZFTDdTQWVwL2gvZ3hYYjdSUWh5MDR3WjR3?= =?utf-8?B?NXI5LzdMZTBmcmNiUUx6UWloL0VmQldmVTJPWHdBTWQvRkk1QWhFcjJMbVgv?= =?utf-8?B?cUhtejYzc3RzQTl1QnFhaGdTQVRxd0FQbEJqeHpWSDNPVzY0eEpkdU5oUzJu?= =?utf-8?B?WXhUaTMvajNlK0JGaytEQUEwYXhVd1hDdDF6bWZiU1NrUWV0WHhGZkp5b0Ix?= =?utf-8?B?eW5WQzdRcThUSjJMTE5kZGo3R1hDK0xSQ0tEdzNYK3FRaGdaUEwwZlgrN1h0?= =?utf-8?B?THFsTVhndjZSelE1MEhBR3AveU5icHNQdmhYY1d5dGpvMEJkYmdvbi93cENS?= =?utf-8?B?c1hhMlZyckRhOUJrTGFoNitOV3NKY0dnMmptTzhBbmZ2MEZVMjhlUHowOFFq?= =?utf-8?B?dHRvN2FIZWpqalBBU2kxTkJGdklYTmpSb0pFN2ZLUmF4aFNmSXlaejV3K1d0?= =?utf-8?B?cXphSWZiTXNrcE1pem1PSm1mL0dydy9Na2dPU3dHZUJkaVdzeFZJdnNsVDBM?= =?utf-8?B?TFpaZUdmcjhQT1U2ZjNaRDV6cm9EZVRBU2hlc3c0aWU5dGFOVXh2RExpZUxS?= =?utf-8?B?UVhXZ1lFSldUbDhaQndoQnVBSWNtWXdWSjlUdEtkL3R1YXRxeW16QUpVNW40?= =?utf-8?B?OU5NN0VPeWYxQ2FzQ0xOOUl4NGZORHI4bUlyNnZreDR1TW1ERGhDYTRXL1ZM?= =?utf-8?Q?kt3nmTqXasqu3bVlNoXLMaaEpstngVCRO5Jn1tyJSJNKN?= X-MS-Exchange-AntiSpam-MessageData-1: Xot7tgMs+J7oKEMsE3EGbyZxX8xO5bp83JU= X-OriginatorOrg: efficios.com X-MS-Exchange-CrossTenant-Network-Message-Id: d017bd61-16cd-4a94-ec0e-08dedd64205f X-MS-Exchange-CrossTenant-AuthSource: YT2PR01MB9175.CANPRD01.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 09 Jul 2026 02:45:24.4570 (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: fca4wb1uQoCzMuvye7IWcyBglZMMpbqSnlFfdA8WVb0kYKXB4LzYMpAevgTqVPjCedFV7ojwLiMDyi2yEJqhm8B80q0Ti8aWYuJX/dnxRCI= X-MS-Exchange-Transport-CrossTenantHeadersStamped: YT1PR01MB9178 On 2026-07-08 18:55, Paul E. McKenney wrote: [...] > OK, I did check, and all of the hazptr_torture_do_pending() function's > hazard pointers have been passed to hazptr_detach_from_task(). > > But sometimes a given hazard pointer might be passed to > hazptr_detach_from_task() twice, once just before that llist_add(), > and again if hazptr_torture_reader_tail() decides to release that hazard > pointer via smp_call_function_single(). > > Do I instead need to be careful to avoid detaching a given hazard pointer > more than once? That should be OK to call the "detach" more than once, because it checks if the hazptr is already detached with: + if (unlikely(hazptr_slot_is_backup(ctx, slot))) + return; (while under preempt off) My concern is about this worker thread: static int hazptr_torture_do_pending(void *arg) { int cpu = 0; DEFINE_TORTURE_RANDOM(rand); VERBOSE_TOROUT_STRING("hazptr_torture_do_pending task started"); do { if (stutter_will_wait()) { for_each_possible_cpu(cpu) hazptr_torture_do_one_pending(cpu, &rand); } else { cpu = cpumask_next_wrap(cpu, cpu_possible_mask); hazptr_torture_do_one_pending(cpu, &rand); } if (torture_must_stop()) torture_hrtimeout_ms(kthread_do_pending_ms, USEC_PER_MSEC, &rand); // Omit stutter_wait() because this function needs to do cleanup. } while (!torture_must_stop()); torture_kthread_stopping("hazptr_torture_do_pending"); return 0; } which as you will notice happily invoke "do_one_pending" on either all possible cpus or on a next cpu (non-local), which does: llhp = per_cpu_ptr(&hazptr_pending, cpu); llnp = llist_del_all(llhp); if (!llnp) return; llist_for_each_entry_safe(hppp, hppp1, llnp, hpp_node) { hazptr_torture_reader_tail(hppp, trsp); atomic_long_inc(per_cpu_ptr(&hazptr_torture_releases_undefer, raw_smp_processor_id())); kfree(hppp); } And here the reader_tail calls cur_ops->readunlock(hcp, htp); which does a hazptr_release from the wrong CPU without previously detaching the hazptr from its associated thread as it should. Does this line of thinking make sense ? Thanks, Mathieu -- Mathieu Desnoyers EfficiOS Inc. https://www.efficios.com