From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id D5EC943D18; Thu, 21 Mar 2024 22:12:32 +0100 (CET) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 77CAF42DF1; Thu, 21 Mar 2024 22:12:32 +0100 (CET) Received: from mail.lysator.liu.se (mail.lysator.liu.se [130.236.254.3]) by mails.dpdk.org (Postfix) with ESMTP id 3FF2942830 for ; Thu, 21 Mar 2024 22:12:31 +0100 (CET) Received: from mail.lysator.liu.se (localhost [127.0.0.1]) by mail.lysator.liu.se (Postfix) with ESMTP id E3DF315E17 for ; Thu, 21 Mar 2024 22:12:30 +0100 (CET) Received: by mail.lysator.liu.se (Postfix, from userid 1004) id C4B3215E16; Thu, 21 Mar 2024 22:12:30 +0100 (CET) X-Spam-Checker-Version: SpamAssassin 4.0.0 (2022-12-13) on hermod.lysator.liu.se X-Spam-Level: X-Spam-Status: No, score=-1.3 required=5.0 tests=ALL_TRUSTED,AWL, T_SCC_BODY_TEXT_LINE autolearn=disabled version=4.0.0 X-Spam-Score: -1.3 Received: from [192.168.1.59] (h-62-63-215-114.A163.priv.bahnhof.se [62.63.215.114]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by mail.lysator.liu.se (Postfix) with ESMTPSA id 7100C15D5E; Thu, 21 Mar 2024 22:12:26 +0100 (CET) Message-ID: Date: Thu, 21 Mar 2024 22:12:26 +0100 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH v2 38/45] bus/vmbus: use rte stdatomic API Content-Language: en-US To: Tyler Retzlaff , dev@dpdk.org Cc: =?UTF-8?Q?Mattias_R=C3=B6nnblom?= , =?UTF-8?Q?Morten_Br=C3=B8rup?= , Abdullah Sevincer , Ajit Khaparde , Alok Prasad , Anatoly Burakov , Andrew Rybchenko , Anoob Joseph , Bruce Richardson , Byron Marohn , Chenbo Xia , Chengwen Feng , Ciara Loftus , Ciara Power , Dariusz Sosnowski , David Hunt , Devendra Singh Rawat , Erik Gabriel Carrillo , Guoyang Zhou , Harman Kalra , Harry van Haaren , Honnappa Nagarahalli , Jakub Grajciar , Jerin Jacob , Jeroen de Borst , Jian Wang , Jiawen Wu , Jie Hai , Jingjing Wu , Joshua Washington , Joyce Kong , Junfeng Guo , Kevin Laatz , Konstantin Ananyev , Liang Ma , Long Li , Maciej Czekaj , Matan Azrad , Maxime Coquelin , Nicolas Chautru , Ori Kam , Pavan Nikhilesh , Peter Mccarthy , Rahul Lakkireddy , Reshma Pattan , Rosen Xu , Ruifeng Wang , Rushil Gupta , Sameh Gobriel , Sivaprasad Tummala , Somnath Kotur , Stephen Hemminger , Suanming Mou , Sunil Kumar Kori , Sunil Uttarwar , Tetsuya Mukawa , Vamsi Attunuru , Viacheslav Ovsiienko , Vladimir Medvedkin , Xiaoyun Wang , Yipeng Wang , Yisen Zhuang , Yuying Zhang , Ziyang Xuan References: <1710967892-7046-1-git-send-email-roretzla@linux.microsoft.com> <1711048652-7512-1-git-send-email-roretzla@linux.microsoft.com> <1711048652-7512-39-git-send-email-roretzla@linux.microsoft.com> From: =?UTF-8?Q?Mattias_R=C3=B6nnblom?= In-Reply-To: <1711048652-7512-39-git-send-email-roretzla@linux.microsoft.com> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit X-Virus-Scanned: ClamAV using ClamSMTP 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 On 2024-03-21 20:17, Tyler Retzlaff wrote: > Replace the use of gcc builtin __atomic_xxx intrinsics with > corresponding rte_atomic_xxx optional rte stdatomic API. > > Signed-off-by: Tyler Retzlaff > --- > drivers/bus/vmbus/vmbus_channel.c | 9 +++++---- > 1 file changed, 5 insertions(+), 4 deletions(-) > > diff --git a/drivers/bus/vmbus/vmbus_channel.c b/drivers/bus/vmbus/vmbus_channel.c > index 4d74df3..e96a4eb 100644 > --- a/drivers/bus/vmbus/vmbus_channel.c > +++ b/drivers/bus/vmbus/vmbus_channel.c > @@ -19,22 +19,23 @@ > #include "private.h" > > static inline void > -vmbus_sync_set_bit(volatile uint32_t *addr, uint32_t mask) > +vmbus_sync_set_bit(volatile RTE_ATOMIC(uint32_t) *addr, uint32_t mask) > { > /* Use GCC builtin which atomic does atomic OR operation */ Remove/rephrase this comment. > - __atomic_fetch_or(addr, mask, __ATOMIC_SEQ_CST); > + rte_atomic_fetch_or_explicit(addr, mask, rte_memory_order_seq_cst); > } > > static inline void > vmbus_set_monitor(const struct vmbus_channel *channel, uint32_t monitor_id) > { > - uint32_t *monitor_addr, monitor_mask; > + RTE_ATOMIC(uint32_t) *monitor_addr, monitor_mask; > unsigned int trigger_index; > > trigger_index = monitor_id / HV_MON_TRIG_LEN; > monitor_mask = 1u << (monitor_id % HV_MON_TRIG_LEN); > > - monitor_addr = &channel->monitor_page->trigs[trigger_index].pending; > + monitor_addr = > + (uint32_t __rte_atomic *)&channel->monitor_page->trigs[trigger_index].pending; Why is "pending" not RTE_ATOMIC()? > vmbus_sync_set_bit(monitor_addr, monitor_mask); > } >