From patchwork Mon Jun 26 07:12:40 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ruifeng Wang X-Patchwork-Id: 128986 X-Patchwork-Delegate: thomas@monjalon.net Return-Path: X-Original-To: patchwork@inbox.dpdk.org Delivered-To: patchwork@inbox.dpdk.org Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id 6E4FA42D56; Mon, 26 Jun 2023 09:12:53 +0200 (CEST) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id E4D854067B; Mon, 26 Jun 2023 09:12:52 +0200 (CEST) Received: from foss.arm.com (foss.arm.com [217.140.110.172]) by mails.dpdk.org (Postfix) with ESMTP id 5E5E840223 for ; Mon, 26 Jun 2023 09:12:51 +0200 (CEST) Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14]) by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id 891361FB; Mon, 26 Jun 2023 00:13:34 -0700 (PDT) Received: from net-arm-n1amp-02.shanghai.arm.com (net-arm-n1amp-02.shanghai.arm.com [10.169.210.108]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPA id A02193F73F; Mon, 26 Jun 2023 00:12:47 -0700 (PDT) From: Ruifeng Wang To: thomas@monjalon.net, david.marchand@redhat.com Cc: dev@dpdk.org, roretzla@linux.microsoft.com, hofors@lysator.liu.se, konstantin.v.ananyev@yandex.ru, honnappa.nagarahalli@arm.com, nd@arm.com, Ruifeng Wang Subject: [PATCH v2] eal: add notes to SMP memory barrier APIs Date: Mon, 26 Jun 2023 15:12:40 +0800 Message-Id: <20230626071240.615611-1-ruifeng.wang@arm.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20230621064420.163931-1-ruifeng.wang@arm.com> References: <20230621064420.163931-1-ruifeng.wang@arm.com> MIME-Version: 1.0 X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org The rte_smp_xx() APIs are deprecated. But it is not mentioned in the function header. Added notes in function header for clarification. Signed-off-by: Ruifeng Wang --- v2: Made the notes more specific. lib/eal/include/generic/rte_atomic.h | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/lib/eal/include/generic/rte_atomic.h b/lib/eal/include/generic/rte_atomic.h index 58df843c54..35e0041ce6 100644 --- a/lib/eal/include/generic/rte_atomic.h +++ b/lib/eal/include/generic/rte_atomic.h @@ -55,6 +55,11 @@ static inline void rte_rmb(void); * Guarantees that the LOAD and STORE operations that precede the * rte_smp_mb() call are globally visible across the lcores * before the LOAD and STORE operations that follows it. + * + * @note + * This function is deprecated. It provides fence synchronization + * primitive but doesn't take memory order parameter. + * rte_atomic_thread_fence() should be used instead. */ static inline void rte_smp_mb(void); @@ -64,6 +69,11 @@ static inline void rte_smp_mb(void); * Guarantees that the STORE operations that precede the * rte_smp_wmb() call are globally visible across the lcores * before the STORE operations that follows it. + * + * @note + * This function is deprecated. It provides fence synchronization + * primitive but doesn't take memory order parameter. + * rte_atomic_thread_fence() should be used instead. */ static inline void rte_smp_wmb(void); @@ -73,6 +83,11 @@ static inline void rte_smp_wmb(void); * Guarantees that the LOAD operations that precede the * rte_smp_rmb() call are globally visible across the lcores * before the LOAD operations that follows it. + * + * @note + * This function is deprecated. It provides fence synchronization + * primitive but doesn't take memory order parameter. + * rte_atomic_thread_fence() should be used instead. */ static inline void rte_smp_rmb(void); ///@} @@ -122,6 +137,10 @@ static inline void rte_io_rmb(void); /** * Synchronization fence between threads based on the specified memory order. + * + * @param memorder + * The memory order defined by compiler atomic builtin at: + * https://gcc.gnu.org/onlinedocs/gcc/_005f_005fatomic-Builtins.html */ static inline void rte_atomic_thread_fence(int memorder);