From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from simark.ca by simark.ca with LMTP id tvuxIFnrZme3lScAWB0awg (envelope-from ) for ; Sat, 21 Dec 2024 11:22:49 -0500 Authentication-Results: simark.ca; dkim=pass (2048-bit key; unprotected) header.d=lists.lttng.org header.i=@lists.lttng.org header.a=rsa-sha256 header.s=default header.b=w4RTmVZD; dkim-atps=neutral Received: by simark.ca (Postfix, from userid 112) id 7334B1E097; Sat, 21 Dec 2024 11:22:49 -0500 (EST) X-Spam-Checker-Version: SpamAssassin 4.0.0 (2022-12-13) on simark.ca X-Spam-Level: X-Spam-Status: No, score=-3.0 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,MAILING_LIST_MULTI,RCVD_IN_DNSWL_NONE autolearn=ham autolearn_force=no version=4.0.0 Received: from lists.lttng.org (lists.lttng.org [158.69.130.29]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (prime256v1) server-digest SHA256) (No client certificate requested) by simark.ca (Postfix) with ESMTPS id 9AF891E091 for ; Sat, 21 Dec 2024 11:22:48 -0500 (EST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=lists.lttng.org; s=default; t=1734798168; bh=Bpwkr2Wfgs01fG18GpUX1asamx7mvLL5ExJt+5w0Eqw=; h=To:Cc:Subject:In-Reply-To:References:Date:List-Id: List-Unsubscribe:List-Archive:List-Post:List-Help:List-Subscribe: From:Reply-To:From; b=w4RTmVZDd/SBjYJad7pqgdfn/8/dzYY/VMyByBon/okH5FGEy02zBCr9fwEV415JR laMt4hfiEIS8bufqE7CpEz5wT5SxIh8IzFM7KYndOGDkfcAncXXmqfKkVFafM4UmrM MQj3z+SIsuBQV2ZylN2taQMYS1+ThDeOrdcgPiFVLUL7xL0clNd1ItCg5AkQ9elMcG FuiCHpfK1Vwh5WAXbDP1exeUKeZebuGBtgYeYNV0izoE4bhvvrx1z826xUw62tx502 gS4Om8RGOokeewq3pALtbnKcewlOuYlvMw060NSjEUxIN2Ec4m0OCsydQ2K/e4Oer9 ImeJ9RzAr6iZA== Received: from lists-lttng01.efficios.com (localhost [IPv6:::1]) by lists.lttng.org (Postfix) with ESMTP id 4YFqMD266fzyvM; Sat, 21 Dec 2024 11:22:48 -0500 (EST) Received: from smtpout.efficios.com (smtpout.efficios.com [158.69.130.18]) by lists.lttng.org (Postfix) with ESMTPS id 4YFqMC49rYzyvL for ; Sat, 21 Dec 2024 11:22:47 -0500 (EST) Received: from localhost (157-208-8-209.mc.derytele.com [157.208.8.209]) by smtpout.efficios.com (Postfix) with ESMTPSA id 4YFqM45MKyz1Mlw; Sat, 21 Dec 2024 11:22:40 -0500 (EST) To: Mathieu Desnoyers , linux-kernel@vger.kernel.org, lttng-dev@lists.lttng.org Cc: =?utf-8?B?T25kxZllaiBTdXLDvQ==?= , paulmck , Alan Stern , Lai Jiangshan , Brad Smith , lwn@lwn.net Subject: Re: [RELEASE] Userspace RCU 0.15.0 In-Reply-To: <51160e24-389a-41b6-871b-ba522d427220@efficios.com> Organization: EfficiOS References: <51160e24-389a-41b6-871b-ba522d427220@efficios.com> Date: Sat, 21 Dec 2024 11:22:40 -0500 Message-ID: <87ed21hupb.fsf@laura> MIME-Version: 1.0 Content-Type: text/plain X-BeenThere: lttng-dev@lists.lttng.org X-Mailman-Version: 2.1.39 Precedence: list List-Id: LTTng development list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , From: Olivier Dion via lttng-dev Reply-To: Olivier Dion Errors-To: lttng-dev-bounces@lists.lttng.org Sender: "lttng-dev" On Fri, 20 Dec 2024, Mathieu Desnoyers wrote: > Hi, [...] > * Introduction of the CMM memory model with the following new primitives: > > - uatomic_load(addr, memory_order) > > - uatomic_store(addr, value, memory_order) > - uatomic_and_mo(addr, mask, memory_order) > - uatomic_or_mo(addr, mask, memory_order) > - uatomic_add_mo(addr, value, memory_order) > - uatomic_sub_mo(addr, value, memory_order) > - uatomic_inc_mo(addr, memory_order) > - uatomic_dec_mo(addr, memory_order) > > - uatomic_add_return_mo(addr, value, memory_order) > - uatomic_sub_return_mo(addr, value, memory_order) > > - uatomic_xchg_mo(addr, value, memory_order) > > - uatomic_cmpxchg_mo(addr, old, new, > memory_order_success, > memory_order_failure) > > The uatomic API was extended to support explicit memory ordering. > For instance, the previous uatomic_cmpxchg() now has a > uatomic_cmpxchg_mo() counterpart, which takes a memory ordering > argument. It is worth mentioning that the `*_mo' variants are not public API. Instead, the current uatomic API is extended by adding an optional memory odring parameter for the various atomic operation. For example, uatomic_xchg(addr, value) is equivalent to uatomic_xchg(addr, value, CMM_SEQ_CST_FENCE). But user can choose a different memory ordering. For example: uatomix_xchg(addr, value, CMM_RELEASE). [...] Thanks, Olivier -- Olivier Dion EfficiOS Inc. https://www.efficios.com