[v5,22/45] raw/ifpga: use rte stdatomic API

Message ID 1715018306-13741-23-git-send-email-roretzla@linux.microsoft.com (mailing list archive)
State Superseded
Delegated to: David Marchand
Headers
Series use stdatomic API |

Checks

Context Check Description
ci/checkpatch success coding style OK

Commit Message

Tyler Retzlaff May 6, 2024, 5:58 p.m. UTC
  Replace the use of gcc builtin __atomic_xxx intrinsics with
corresponding rte_atomic_xxx optional rte stdatomic API.

Signed-off-by: Tyler Retzlaff <roretzla@linux.microsoft.com>
Acked-by: Stephen Hemminger <stephen@networkplumber.org>
---
 drivers/raw/ifpga/ifpga_rawdev.c | 9 +++++----
 1 file changed, 5 insertions(+), 4 deletions(-)
  

Comments

Xu, Rosen May 7, 2024, 10:06 a.m. UTC | #1
Hi,

> -----Original Message-----
> From: Tyler Retzlaff <roretzla@linux.microsoft.com>
> Sent: Tuesday, May 7, 2024 1:58 AM
> To: dev@dpdk.org
> Cc: Mattias Rönnblom <mattias.ronnblom@ericsson.com>; Morten Brørup
> <mb@smartsharesystems.com>; Sevincer, Abdullah
> <abdullah.sevincer@intel.com>; Ajit Khaparde
> <ajit.khaparde@broadcom.com>; Alok Prasad <palok@marvell.com>;
> Burakov, Anatoly <anatoly.burakov@intel.com>; Andrew Rybchenko
> <andrew.rybchenko@oktetlabs.ru>; Anoob Joseph <anoobj@marvell.com>;
> Richardson, Bruce <bruce.richardson@intel.com>; Marohn, Byron
> <byron.marohn@intel.com>; Chenbo Xia <chenbox@nvidia.com>;
> Chengwen Feng <fengchengwen@huawei.com>; Loftus, Ciara
> <ciara.loftus@intel.com>; Power, Ciara <ciara.power@intel.com>; Dariusz
> Sosnowski <dsosnowski@nvidia.com>; Hunt, David <david.hunt@intel.com>;
> Devendra Singh Rawat <dsinghrawat@marvell.com>; Carrillo, Erik G
> <erik.g.carrillo@intel.com>; Guoyang Zhou <zhouguoyang@huawei.com>;
> Harman Kalra <hkalra@marvell.com>; Van Haaren, Harry
> <harry.van.haaren@intel.com>; Nagarahalli, Honnappa
> <Honnappa.Nagarahalli@arm.com>; Jakub Grajciar <jgrajcia@cisco.com>;
> Jerin Jacob <jerinj@marvell.com>; Jeroen de Borst <jeroendb@google.com>;
> Jian Wang <jianwang@trustnetic.com>; Jiawen Wu
> <jiawenwu@trustnetic.com>; Jie Hai <haijie1@huawei.com>; Wu, Jingjing
> <jingjing.wu@intel.com>; Joshua Washington <joshwash@google.com>;
> Joyce Kong <joyce.kong@arm.com>; Guo, Junfeng
> <junfeng.guo@intel.com>; Laatz, Kevin <kevin.laatz@intel.com>; Konstantin
> Ananyev <konstantin.v.ananyev@yandex.ru>; Liang Ma
> <liangma@liangbit.com>; Long Li <longli@microsoft.com>; Maciej Czekaj
> <mczekaj@marvell.com>; Matan Azrad <matan@nvidia.com>; Maxime
> Coquelin <maxime.coquelin@redhat.com>; Chautru, Nicolas
> <nicolas.chautru@intel.com>; Ori Kam <orika@nvidia.com>; Pavan Nikhilesh
> <pbhagavatula@marvell.com>; Mccarthy, Peter
> <peter.mccarthy@intel.com>; Rahul Lakkireddy
> <rahul.lakkireddy@chelsio.com>; Pattan, Reshma
> <reshma.pattan@intel.com>; Xu, Rosen <rosen.xu@intel.com>; Ruifeng
> Wang <ruifeng.wang@arm.com>; Rushil Gupta <rushilg@google.com>;
> Gobriel, Sameh <sameh.gobriel@intel.com>; Sivaprasad Tummala
> <sivaprasad.tummala@amd.com>; Somnath Kotur
> <somnath.kotur@broadcom.com>; Stephen Hemminger
> <stephen@networkplumber.org>; Suanming Mou
> <suanmingm@nvidia.com>; Sunil Kumar Kori <skori@marvell.com>; Sunil
> Uttarwar <sunilprakashrao.uttarwar@amd.com>; Tetsuya Mukawa
> <mtetsuyah@gmail.com>; Vamsi Attunuru <vattunuru@marvell.com>;
> Viacheslav Ovsiienko <viacheslavo@nvidia.com>; Medvedkin, Vladimir
> <vladimir.medvedkin@intel.com>; Xiaoyun Wang
> <cloud.wangxiaoyun@huawei.com>; Wang, Yipeng1
> <yipeng1.wang@intel.com>; Yisen Zhuang <yisen.zhuang@huawei.com>;
> Ziyang Xuan <xuanziyang2@huawei.com>; Tyler Retzlaff
> <roretzla@linux.microsoft.com>
> Subject: [PATCH v5 22/45] raw/ifpga: use rte stdatomic API
> 
> Replace the use of gcc builtin __atomic_xxx intrinsics with corresponding
> rte_atomic_xxx optional rte stdatomic API.
> 
> Signed-off-by: Tyler Retzlaff <roretzla@linux.microsoft.com>
> Acked-by: Stephen Hemminger <stephen@networkplumber.org>
> ---
>  drivers/raw/ifpga/ifpga_rawdev.c | 9 +++++----
>  1 file changed, 5 insertions(+), 4 deletions(-)
> 
> diff --git a/drivers/raw/ifpga/ifpga_rawdev.c
> b/drivers/raw/ifpga/ifpga_rawdev.c
> index f89bd3f..78d3c88 100644
> --- a/drivers/raw/ifpga/ifpga_rawdev.c
> +++ b/drivers/raw/ifpga/ifpga_rawdev.c
> @@ -73,7 +73,7 @@
> 
>  static struct ifpga_rawdev ifpga_rawdevices[IFPGA_RAWDEV_NUM];
> 
> -static int ifpga_monitor_refcnt;
> +static RTE_ATOMIC(int) ifpga_monitor_refcnt;
>  static rte_thread_t ifpga_monitor_start_thread;
> 
>  static struct ifpga_rawdev *
> @@ -512,7 +512,7 @@ static int set_surprise_link_check_aer(
>  	int gsd_enable, ret;
>  #define MS 1000
> 
> -	while (__atomic_load_n(&ifpga_monitor_refcnt,
> __ATOMIC_RELAXED)) {
> +	while (rte_atomic_load_explicit(&ifpga_monitor_refcnt,
> +rte_memory_order_relaxed)) {
>  		gsd_enable = 0;
>  		for (i = 0; i < IFPGA_RAWDEV_NUM; i++) {
>  			ifpga_rdev = &ifpga_rawdevices[i];
> @@ -549,7 +549,7 @@ static int set_surprise_link_check_aer(
> 
>  	dev->poll_enabled = 1;
> 
> -	if (!__atomic_fetch_add(&ifpga_monitor_refcnt, 1,
> __ATOMIC_RELAXED)) {
> +	if (!rte_atomic_fetch_add_explicit(&ifpga_monitor_refcnt, 1,
> +rte_memory_order_relaxed)) {
>  		ret =
> rte_thread_create_internal_control(&ifpga_monitor_start_thread,
>  				"ifpga-mon", ifpga_rawdev_gsd_handle,
> NULL);
>  		if (ret != 0) {
> @@ -573,7 +573,8 @@ static int set_surprise_link_check_aer(
> 
>  	dev->poll_enabled = 0;
> 
> -	if (!(__atomic_fetch_sub(&ifpga_monitor_refcnt, 1,
> __ATOMIC_RELAXED) - 1) &&
> +	if (!(rte_atomic_fetch_sub_explicit(&ifpga_monitor_refcnt, 1,
> +	    rte_memory_order_relaxed) - 1) &&
>  		ifpga_monitor_start_thread.opaque_id != 0) {
>  		ret =
> pthread_cancel((pthread_t)ifpga_monitor_start_thread.opaque_id);
>  		if (ret)
> --
> 1.8.3.1

Reviewed-by: Rosen Xu <rosen.xu@intel.com>
  

Patch

diff --git a/drivers/raw/ifpga/ifpga_rawdev.c b/drivers/raw/ifpga/ifpga_rawdev.c
index f89bd3f..78d3c88 100644
--- a/drivers/raw/ifpga/ifpga_rawdev.c
+++ b/drivers/raw/ifpga/ifpga_rawdev.c
@@ -73,7 +73,7 @@ 
 
 static struct ifpga_rawdev ifpga_rawdevices[IFPGA_RAWDEV_NUM];
 
-static int ifpga_monitor_refcnt;
+static RTE_ATOMIC(int) ifpga_monitor_refcnt;
 static rte_thread_t ifpga_monitor_start_thread;
 
 static struct ifpga_rawdev *
@@ -512,7 +512,7 @@  static int set_surprise_link_check_aer(
 	int gsd_enable, ret;
 #define MS 1000
 
-	while (__atomic_load_n(&ifpga_monitor_refcnt, __ATOMIC_RELAXED)) {
+	while (rte_atomic_load_explicit(&ifpga_monitor_refcnt, rte_memory_order_relaxed)) {
 		gsd_enable = 0;
 		for (i = 0; i < IFPGA_RAWDEV_NUM; i++) {
 			ifpga_rdev = &ifpga_rawdevices[i];
@@ -549,7 +549,7 @@  static int set_surprise_link_check_aer(
 
 	dev->poll_enabled = 1;
 
-	if (!__atomic_fetch_add(&ifpga_monitor_refcnt, 1, __ATOMIC_RELAXED)) {
+	if (!rte_atomic_fetch_add_explicit(&ifpga_monitor_refcnt, 1, rte_memory_order_relaxed)) {
 		ret = rte_thread_create_internal_control(&ifpga_monitor_start_thread,
 				"ifpga-mon", ifpga_rawdev_gsd_handle, NULL);
 		if (ret != 0) {
@@ -573,7 +573,8 @@  static int set_surprise_link_check_aer(
 
 	dev->poll_enabled = 0;
 
-	if (!(__atomic_fetch_sub(&ifpga_monitor_refcnt, 1, __ATOMIC_RELAXED) - 1) &&
+	if (!(rte_atomic_fetch_sub_explicit(&ifpga_monitor_refcnt, 1,
+	    rte_memory_order_relaxed) - 1) &&
 		ifpga_monitor_start_thread.opaque_id != 0) {
 		ret = pthread_cancel((pthread_t)ifpga_monitor_start_thread.opaque_id);
 		if (ret)