From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from smtpout.efficios.com (smtpout.efficios.com [158.69.130.18]) (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 73BFD1547E1 for ; Sat, 21 Dec 2024 16:28:39 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=158.69.130.18 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1734798521; cv=none; b=KLpgfwKikiMoc5S73eTIakgyJpiU6D95eEoDGAGx+sTf/LgdEke+rhwAJYwpPYw+VgZzQlvXGfEpvV91jnQQeJ8zmYMKSaLx0eV0+O4JtFgGhUYK8Lr+KA9ko+h/ag+S64rCp9HV7/zvUjVRQS07pbsCpes764ope6+wi3KuxXc= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1734798521; c=relaxed/simple; bh=Bpwkr2Wfgs01fG18GpUX1asamx7mvLL5ExJt+5w0Eqw=; h=From:To:Cc:Subject:In-Reply-To:References:Date:Message-ID: MIME-Version:Content-Type; b=KWTdpW9uqClKtBRV92SKc+1z5O0o4+rdGhm7QX+IfdzRYp/aePy5vBpHkKzuDeiENUHCktbPNSLmOgYUUyQqpOxnejQ0Fo155tOaGtFZpMonKCQZS5ITUuKeUqnWxF58bZhQHkbd8BQEBV565E8Hi0gb6/hAdd74oWN1rXrq1Ng= ARC-Authentication-Results:i=1; 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=PNFLewVt; arc=none smtp.client-ip=158.69.130.18 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="PNFLewVt" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=efficios.com; s=smtpout1; t=1734798160; bh=Bpwkr2Wfgs01fG18GpUX1asamx7mvLL5ExJt+5w0Eqw=; h=From:To:Cc:Subject:In-Reply-To:References:Date:From; b=PNFLewVt0a7VmTGIRxP5CXEf2+o5OXyUpxmvi++TP9PxDw4QSQKwBl927+c/u5Rts ZHhUTm81ByoSaZqOBqo3ydbp8EdVbG/lFORrwc4U3MKUXfNipSbEQDSIwEpQO2gQB/ 3am5x82mujluwNeBKg1sjqjhT4pgRiIrHSj5nbKIBFsGjh5ahdSb1v/Cu4yP8yIeV0 jjDs96Lhb/eAVnFyc599w3l1MzSF6Zoqc0K+MVjAwhUmYCRbcsq4uDHDynudN9OSCm jOdZFEYSiD/OWyyc+F80HA2fAsxPQ2v7/8k5ln7EtwsilrexFN/PQPveuacVKzSiJ6 Wph6zFWN3F2PA== 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) From: Olivier Dion 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> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain 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