From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from YT6PR01CU002.outbound.protection.outlook.com (mail-canadacentralazon11022126.outbound.protection.outlook.com [40.107.193.126]) (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 519CD33CE88 for ; Mon, 23 Feb 2026 18:22:24 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.193.126 ARC-Seal:i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1771870945; cv=fail; b=P8KyBo+tPIpH8R4D50edU546ZWD6BByxX1PeSxaFcPxfmNGcK2sc9aLhZq00YlAKA6pVx9IAs7g5G2KZ4bTmeQn3T+HIVEOYvnMHVGdjLeJgcK88YjCvOGZxtBmFyv7a50d84/M+vaRGKoWet+dGIvldMWRwbbLiUTrO3gLf8Tg= ARC-Message-Signature:i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1771870945; c=relaxed/simple; bh=kepg0sjUbuyw3c4S8svuENaq0x0xrKzu1uwJoKMeJAs=; h=Message-ID:Date:Subject:To:Cc:References:From:In-Reply-To: Content-Type:MIME-Version; b=ucTHaLxqlOwAelY27y2xC5JMtMR18TN145lLu4Bgh8esjOb8bVVJvmGuYgN/6RTs6CfIaR6xHI6myzM8g+R+cl0nyKSt7zkqVglkw11Msjjsoyo5zF7v0nndoKbO49zB26iczYa2d1q2G8fElXBeSWjPrH7cObypkVNBz0YVz3A= 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=nGMXb4pw; arc=fail smtp.client-ip=40.107.193.126 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="nGMXb4pw" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=cwrBcQS/MWaBuTEBmjBd7lPAPZbyLgr8MQrmCsYcFLGGw0Ql+U2XI+Vfb1J1b6FCqg/q/s79x2gS6o2VtzZTNP5KyrKv6DtJH5WpzdondP834FD8U3MjKmI2o+I63AaMHImG+grAL4LmCssp6FzG5EYcX6wjlO2YF96ghu3oG1lrgZjfBPPaM6ejNaqQlDII4y9pQyKPkpd3aOMJXev0Yjdqt5LDwddOkSCMIf3qmBst77faTWuCyN5iKNe1AVgYeoPCiwnU0k8Zf8CVjJzrI/93C8lQZpLomvqPtk4PgXIrQj06BuI5SjM4A24IdOYVoWp2dDCR9HrFv8K7G0wtaw== 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=VkE5wc8+qrGwzxkxR4D+NhRfsJ2FXg9nTeafhrTZTMM=; b=bDtR47Oe4xSWHJ226cOxa57OfvKoJY9fzekO8eNZj7VNCGAVW4/WI2Li5tmLu+wf39jhSeCa/2sb9pcCB5XV680vo69fkFsouQwKaQGkYBCO8hqAqAerkTuWcfWwghLk/2zoJdHtP0DC3glE/Z/fxWn82zVgtDg9R73JjetTBjdf7+fZpjZXqpXPztzSxjOKaVvKQ/UbNcYTI6XtRVASpQyZpF8aZdvQoQlY6/BlrU/589sx2BrSpHpidMP/f4W+ZAIf7WHgOjuDwfWPZCEQNTQ25CdyGa5o5YH1WV8zuYRfEmNvltQ2IDDf7vnhR94javvH1IipCfvR8LFxxtLpJQ== 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=VkE5wc8+qrGwzxkxR4D+NhRfsJ2FXg9nTeafhrTZTMM=; b=nGMXb4pwqrG4HaWdCzENeNUnu7QYa4PVA7Dplfvc1I1du9gJO2BshkRVTqPFHBUHynpXi0ZX5RvuUwAFhxRyxHz2aX/7qqojFQ8EEz+NErSyGhejtCnGRijAMuNINgdUpN8Uv1RK4AynR7QSd14cU6VDDLwVyrLOF95kH/8GxlCKbLWyVTfBL7bSni8H4ThR7Au8T+YypxvCxjcoYG4YLwtk8AYufnginw2dX9zdC9U/XLDQ1WaKEwk/IF2GWJKGXmg/E+HGT5SFLBsn4qtQA9bdV9/66ZYuFv1WAGTBhPx1YK2+PVaoCmKG+nCSMKuaf93/uxYJOFa/A1BYF0jJZQ== 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 YT4PR01MB10726.CANPRD01.PROD.OUTLOOK.COM (2603:10b6:b01:101::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9632.16; Mon, 23 Feb 2026 18:22:20 +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.9632.017; Mon, 23 Feb 2026 18:22:20 +0000 Message-ID: Date: Mon, 23 Feb 2026 13:22:18 -0500 User-Agent: Mozilla Thunderbird Subject: Re: [RFC] in-kernel rseq To: David Laight , Peter Zijlstra Cc: linux-kernel@vger.kernel.org, Thomas Gleixner , Mark Rutland , cmarinas@kernel.org, maddy@linux.ibm.com, hca@linux.ibm.com, ryan.roberts@arm.com References: <20260223163843.GR1282955@noisy.programming.kicks-ass.net> <20260223175357.481c161e@pumpkin> From: Mathieu Desnoyers Content-Language: en-US In-Reply-To: <20260223175357.481c161e@pumpkin> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit X-ClientProxiedBy: YQBP288CA0024.CANP288.PROD.OUTLOOK.COM (2603:10b6:c01:6a::28) 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_|YT4PR01MB10726:EE_ X-MS-Office365-Filtering-Correlation-Id: 470de321-2885-4d0c-6aa8-08de73087b99 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|366016|376014; X-Microsoft-Antispam-Message-Info: =?utf-8?B?ZXp1dFhUK01QdWZqYlFYcmpLUnZSNUZZbE1BVCtqRDg1cnhDekNRSG5oeEFk?= =?utf-8?B?ZEVReTZ6enVhTndhUGcyK3Zvdi9yYzRXZVk4WDNyOGxpUGsyOVVhYUZpWEd6?= =?utf-8?B?S3paZThtUVVIL2JreXo2RjUxTGVpak9YVFJtRTJkL0ZMWFV2aVVjbHZ3L290?= =?utf-8?B?VG5qZG5NM1FwcGdoN1NRRHJIMnFmTUhoQ2hzY3ZBMUdpV1pyZWFHVUkxa091?= =?utf-8?B?Q25ickRqczdYRG84OTJ4VmtjYlN0TVZXUzZQYTNBMmFkeTYxSzNhZVF3bDJs?= =?utf-8?B?TTljNjlGUnExczQwbHBBYWkxTGhJbUNQT2pYS1hsR0JidnQ0dXh4aW93Yjlm?= =?utf-8?B?bzduVnhCTjNwR0trVk5nVVNEcnQxaEY3K3RwWlYweGtnbDAxUndEMnpNMmUy?= =?utf-8?B?LzNEVzkxcUVPZXdtV3RQdkUvZ2ZnK0EzdnBpNTY0dUZNVTUxQm9OL3RtWXR1?= =?utf-8?B?anRrcjRPM3ZTa0JNeGt3UldLL1dNUVJ4blloZEk3eHJabHBvNndHc2lRR1FC?= =?utf-8?B?eUhFUjgySnNYTnVmbG95RXhIN01iL2M2ekZLNlFGTThseWh6ekMyUUt0TGdG?= =?utf-8?B?UTBuZUhwV1NoU1c5QUU0VlhBVnZEU2lxZWowenpxb2V5cXlGcklYMmJMVzhI?= =?utf-8?B?MVRXSGJGSEFQWWVDMVN4OVlHTEpoejloa0RTR08zclBGTExSaWZ5UHVwS05a?= =?utf-8?B?L1NZQkFRMy9mWUVoU2EvVzNEUnRHaDZRcmVYNFZ0K3lqaC9NZlZkWjFXRmhl?= =?utf-8?B?elpVdkxmY29WNUhsRDJQQVlxVDBYZ0ZJNm9wZGg1b1h4eTkzRHVxWmZXZU4r?= =?utf-8?B?RC9sYXFHMWd4cHUrRTE4cEtSSEFERnR3T2tBNXBqZzQ3TTZEZ2VFenBVUHcy?= =?utf-8?B?QVRCKzlqY2dBM1RiVithajI3Z1RmbjJnU0ZLVmgxMHY5d1ZuOUlwS0EvSmZw?= =?utf-8?B?VjgzUlhlR2NGOXdCR0hBbjVWMXBHMWdQUmlUOEEyb2JwSEJqTzE2dXgrMXhF?= =?utf-8?B?eGh6a1BZcEUxdDBoRUZOa1lFbFVmS2V1MFBFN3NWRGllOVFyQUVua1MyZm5z?= =?utf-8?B?Mms5MzV3dHh5alV1SjFtZjZVbDNHNlExSDV2ZmFXRVhZVDNkL2RiSmlNZXNL?= =?utf-8?B?WS9YNmlScFpjVXJ4ZENDQzN6QW80QmFZLzFTZ3VvVjRjNGc4c2FTNlJzQ1g4?= =?utf-8?B?UVRObWZ3T3gxNjVMSzJPYW91LzN2cWE5U0xvMlRrK0FjOFlFaGZGNVgrWmZB?= =?utf-8?B?aVcrOExMaE5vY0g3WDczajZFS0F5Y1ZWYitNbENVT2VZRWZpRCtKaE00SEtF?= =?utf-8?B?SUxGdFZCdit1TC9CWVNwMS9NWXM1a3MyVDN6QStUZXhuWFdnall0aW5mdi92?= =?utf-8?B?SkJyWG9UVUR3SnlRZnpZaC9nVmx3MDdaL3dPYzBob0t4YU9hNlRyZk9xdHVh?= =?utf-8?B?N3BRejZFbTd1b1c1QkRITHVDUjlYYzFYQ0lSQmFUQWVHdVlUTTVKeUQwalZX?= =?utf-8?B?VzQxNjg4N2FUVjVxeDFGeitwOXB4aXRqK2Vwd0hxQVExcjNvY1lwRjQ4TS82?= =?utf-8?B?SElrY1M5Q3dvdEhsOXQxNytnc05ydkIzRGs5SlRpcXFxZnBnQUEzMS9QL2xk?= =?utf-8?B?Mi9LbG5jbm9FeTRQTktydXZTL2h6UXZtbGIxNVFhdmpYWGhRZERheVVzaEJP?= =?utf-8?B?ZkJTczFUb01MY3N1alZhL0Fvcndna0RPWXhRSUw5L1lNVXlWSUI2TDAyc082?= =?utf-8?B?STg4bEJ2dEROMjQrcVQ3QXNNNWp3Q1pUdFFWVWRLZEY4d083RWlyTmw1VlFy?= =?utf-8?B?OUE5QUlOVW5ZbW5sSU12WTJVY0pVMW94N2dQY29pNCtTTmhGYUFyZ0YreW5j?= =?utf-8?B?NVRIb0tlMmZLb2ljeW4yeVh1M2R2VDVYRGJMd2VyOGVDeUF3cHFzekxFbUJx?= =?utf-8?B?ODhFRzNQZGU0Q3E2VWM1TXBZSlN0VjFHVnNVQjQvclo5K2doQXRTem90NWMy?= =?utf-8?Q?zhUdIdPX/wCXXc6cCTUtYcOtGby/YA=3D?= 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)(366016)(376014);DIR:OUT;SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?Sko5M2ZyVG5JRzF1L0xLRkZCbnFlckR4TnRRU0dqR1ZXZDA4TjI5bm13TnFV?= =?utf-8?B?OXRLbEEwVUhzenVLSmVVR3RtMGErdjlNZ2FnNFU4YmVCRUg4RitieUxxdEVu?= =?utf-8?B?Y2lZazJML3JoOTF3OW1GYjFmb3RJQ1RpYmMwZkRQUFVpRmMvZEtqNDZWRUF6?= =?utf-8?B?NWhJQktld1VKVFVmem9SMms0Y1Z5QklrTTdiNkIxanRuM3pqNVVvY0Y3THY5?= =?utf-8?B?UzYvNjFlQ3FTRDdITWk2a1BLSm9rcXUyOVB4Z0lpMmNpcTZCb2VLSUE1Q3ZJ?= =?utf-8?B?VVVhYlhqVW01WnZKeHNHZnMvSHJIVUoySDgyVkdvNmpzWGVLL2V5VHZjU1gv?= =?utf-8?B?NVFlQ1J5Zm5mTnpiVDh2TTJjemthT2lJbmZFS1hNbmF2L1ArQ29QUE5JL0FF?= =?utf-8?B?ZnNpd2ROeG1RKythMk5uMGNNcENVK2p0RVNMUm9kaGF0TjNaaFIzb0RIK25a?= =?utf-8?B?WXprT2cxSit2NkpmeWJadEZXbjFINmdMVlRncTBVZW5vMHp2VU5KTkxQRUIw?= =?utf-8?B?UFZWOGlHVk1TenBNUU8yemtta0MvSFFVZndBem10eWFmTWpMSTFjbW1aRFNx?= =?utf-8?B?TzNOdFYzQVlUeVh6Ym1WYXVJRFlTaXZyNjc5SjJjeDlKNjNXV0wyUE12Mkk0?= =?utf-8?B?dCswbjFvNGpnaVhBaDZuWVBRQzlvVDZScjFBbVcvOFR1Qk9sL2xZUXdrc3Jh?= =?utf-8?B?R1dxeDBIRjRpYXdzV3FpWVNMWnJWM1hoMXdiNVR2TVpYQzJ1WU5OdHVRL3lX?= =?utf-8?B?ZURLZzZkNmpnYVhJUUNHbTlEb0VYdUpWZHJSckE4K0NZWTNpVDN2YUpPeER4?= =?utf-8?B?Um44dHJlZHYzRnhnTnJSd0doSWQ0c2NHd2xKZmp6UXN3dndmU3czcFEvK091?= =?utf-8?B?VVVQSkxkcDRueVo3bjA2S1MrQU5FN28za1ozQnRnNnBoVGVacHBJUkVicjJU?= =?utf-8?B?WG5hSTY5NWcwdzUvUWdyaEd1SnNxN3VTTklnS3N0dDVXM016UkhvM3JZRjNL?= =?utf-8?B?M09UQjIwZmtBbUREVS9nYlFMVmwzVkRYbEtiZTBkK0hHS0V1TmRUbnhSTTdT?= =?utf-8?B?QTZxQzhaSll2bDZqUG5SRW1vL1JZa08zN2ZnZFl0WnZ2eVM3cEJXMkgvTHBC?= =?utf-8?B?QXZNSkNheHF4V2luU0F3c2NUK25pRVdJOFVjV1pEVHdpUmloNlF6T2t0K1lx?= =?utf-8?B?UXYwaEx4OU0rbkIxb2E4Wkh1aVZIemNEdkR3eUQxTlJmaXE4RDZtV01mMnpQ?= =?utf-8?B?dTZFL0RocVpsQ3dlU3NjQjdoL1ZCRnYvRS9NZlowdUZSWHB4V2pRaFQ2NkxI?= =?utf-8?B?SWV4c2R2TG5MZzltdU1Uamt2Z3dWaE9BS2lyQzJzVTBMTzZyenFkZkV6RTNn?= =?utf-8?B?OUQ1S2V2bkpIY2dZdmJXdnFXd2YyVlJreWtZVmdld2t5a2h3bERNTkhOTVpG?= =?utf-8?B?VmhRRG96dDhqUVQ2akFRdjE5Z0Q3Tzg2UTBOVkZBSGtsMTVJa09qNTY0TXJh?= =?utf-8?B?VVdISTMzUzdNcmN0cXFSRW5Sc2tlR0pabm13ZG5uMzJweXE0ZTc0QTMzN0dn?= =?utf-8?B?cHhOaG9Ic3lCbktJSWl6WlAzcTRyTTdWUHJMaVJCMjZmbDJnbHNFRGZuai92?= =?utf-8?B?d0JVdzhpcW02dDB3a04yVXUzVDB6a0NVajhXd3c3RWJhOGpVOXlVMjQ2UnI2?= =?utf-8?B?S2tNMnp3eHZzRWFBcXNXRjBIbjQvY2Vla1BUV3hOTm8vQ2w1Q0QzS1M4bEZ6?= =?utf-8?B?aHNGQkh3U1lqUXplYitqYjJ4RnZuMEJhZEo2bFBoVUFoU0czeWhqQ1VaKzhq?= =?utf-8?B?V3FwbUpIc2t1WnlQVFZsa1lyb0VtM0FFVFZsYkdzck5ZRERESGNUN2ZBWmhz?= =?utf-8?B?OGJmSytiNHJ6Qk8veGNKRzF4L216Q3AyTlBhTFd4a0hhNTNoK3BuWU5mQkx5?= =?utf-8?B?ZnQxR05RR3ozOEpxRzdjMFFjYlVaWjlJRnlqS1hxZnNYZWRwd3hCTTF5REF1?= =?utf-8?B?V1RXL3VwOVJ5UUN1TDBPd3QrOU9waDJEYmh0aFpWdWlVdGlBd1ZxWUp3UjVU?= =?utf-8?B?QTB6Zml3TVhxOVVrMk1zSjgwQUtnSERIVHg3Q0I3Tm9jbUd0ZVltem1LMWRW?= =?utf-8?B?RzJ5MXMrc3h3NHlQbmtnMFVrRG1ENlhESXl0YU1HNFAyeGNORjZ2ckNVb3cr?= =?utf-8?B?V1VxQ2hGMDBpOUpSVGNkUkpUTDVYd1Iya0NwcitGc2tmcGFSdFIybkg0VmRF?= =?utf-8?B?YUFmUEFzVG10YjZZdDV3ZjdSNnJmR0k2S1RVNHhGbS9YbTk1Zm1DMGVHbWxZ?= =?utf-8?B?bWRkYnkvY1hjZE14akg3cEx3VzYwUHhUUGVGK24ycGlDZm54T1cyUTNNNTFS?= =?utf-8?Q?wNUyZAfU08VZP4fpu2iDL+0zPb7S1TYP6mOv0?= X-OriginatorOrg: efficios.com X-MS-Exchange-CrossTenant-Network-Message-Id: 470de321-2885-4d0c-6aa8-08de73087b99 X-MS-Exchange-CrossTenant-AuthSource: YT2PR01MB9175.CANPRD01.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 23 Feb 2026 18:22:20.6656 (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: TGBz6NTAYoOmjfAsLab+OmvgPhkPZMPRB+V5H9bOqarDuuMcD7YHXFBl2uy+h+mRSTIwbuRDVyW5X1bsmCwu1hnqIdwh/+D69+99r7AOzic= X-MS-Exchange-Transport-CrossTenantHeadersStamped: YT4PR01MB10726 On 2026-02-23 12:53, David Laight wrote: > On Mon, 23 Feb 2026 17:38:43 +0100 > Peter Zijlstra wrote: > >> Hi, >> >> It has come to my attention that various people are struggling with >> preempt_disable()+preempt_enable() costs for various architectures. >> >> Mostly in relation to things like this_cpu_ and or local_. >> >> The below is a very crude (and broken, more on that below) POC. >> >> So the 'main' advantage of this over preempt_disable()/preempt_enable(), >> it on the preempt_enable() side, this elides the whole conditional and >> call schedule() nonsense. >> >> Now, on to the broken part, the below 'commit' address should be the >> address of the 'STORE' instruction. In case of LL/SC, it should be the >> SC, in case of LSE, it should be the LSE instruction. > > I think it would be better as the address of the instruction after > the 'store'. That's indeed what we do for userspace rseq. > You probably don't need separate 'begin' and 'restart' addresses. It's not needed as long as the abort behavior is only restart. It becomes useful if another behavior is wanted on abort. But since this is kernel code and not ABI, it can change if the need arise. > It might be enough to save the 'restart' address and a byte length > directly in 'current', much simpler code. That would make it two stores to the task struct. Those would not be single-instruction, so we'd have to deal with preemption coming between those two stores. Also this would be more code: two stores compared to a single pointer store to the task struct to begin the critical section. AFAIU Peter's proposed approach is more efficient. We could turn the end address into a length if we want, this would make it more alike the userspace rseq ABI counterpart. > > How much it helps is another matter. > I'm sure I remember something about per-cpu data being used for something > because it was faster then using 'current' - not sure of the context. The problem with per-cpu data for this is how to handle migration ? The whole point of this is to replace preempt disable. > > The real problem with rseq is they don't scale. Not sure what you mean. They don't scale with respect to what ? > At least this against the context switch code - which a slow path. This adds a task struct field load + NULL check on the scheduler fast path. Is it what you are concerned about ? [...] > I think that is just unlocked RMW of a per-cpu/thread variable. It is quite similar to LL/SC, but mitigated by the scheduler rather than hardware, so it can use a sequence of cheaper load/store instructions on the fast path. Also, based on prior benchmarks, a short sequence of loads/stores was faster than a unlocked RMW instruction (at least on x86-64). Thanks, Mathieu -- Mathieu Desnoyers EfficiOS Inc. https://www.efficios.com