[1/2] net/mana: enable 32 bit build for mana driver

Message ID 20230921083442.2104530-2-weh@microsoft.com (mailing list archive)
State Accepted, archived
Delegated to: Ferruh Yigit
Headers
Series net/mana: 32 bit support |

Checks

Context Check Description
ci/checkpatch warning coding style issues

Commit Message

Wei Hu Sept. 21, 2023, 8:34 a.m. UTC
  Enable 32 bit build on x86 Linux. Fixed build warnings and errors
when building in 32 bit.

With this patch, mana will be able to build into 32 bit. However,
another patch for mana short doorbell support is needed to make
mana fully functional for 32 bit applicatons.

Cc: stable@dpdk.org

Signed-off-by: Wei Hu <weh@microsoft.com>
---
 drivers/net/mana/mana.c      |  2 +-
 drivers/net/mana/meson.build |  4 ++--
 drivers/net/mana/mr.c        | 18 +++++++++---------
 3 files changed, 12 insertions(+), 12 deletions(-)
  

Comments

Ferruh Yigit Sept. 21, 2023, 10:58 a.m. UTC | #1
On 9/21/2023 9:34 AM, Wei Hu wrote:
> Enable 32 bit build on x86 Linux. Fixed build warnings and errors
> when building in 32 bit.
> 
> With this patch, mana will be able to build into 32 bit. However,
> another patch for mana short doorbell support is needed to make
> mana fully functional for 32 bit applicatons.
> 

s/applicatons/applications/

can fix while merging
  
Long Li Sept. 21, 2023, 8:53 p.m. UTC | #2
> Subject: [PATCH 1/2] net/mana: enable 32 bit build for mana driver
> 
> Enable 32 bit build on x86 Linux. Fixed build warnings and errors when building in
> 32 bit.
> 
> With this patch, mana will be able to build into 32 bit. However, another patch for
> mana short doorbell support is needed to make mana fully functional for 32 bit
> applicatons.
> 
> Cc: stable@dpdk.org
> 
> Signed-off-by: Wei Hu <weh@microsoft.com>

Acked-by: Long Li <longli@microsoft.com>

> ---
>  drivers/net/mana/mana.c      |  2 +-
>  drivers/net/mana/meson.build |  4 ++--
>  drivers/net/mana/mr.c        | 18 +++++++++---------
>  3 files changed, 12 insertions(+), 12 deletions(-)
> 
> diff --git a/drivers/net/mana/mana.c b/drivers/net/mana/mana.c index
> 7630118d4f..896b53ed35 100644
> --- a/drivers/net/mana/mana.c
> +++ b/drivers/net/mana/mana.c
> @@ -1260,7 +1260,7 @@ mana_probe_port(struct ibv_device *ibdev, struct
> ibv_device_attr_ex *dev_attr,
>  	/* Create a parent domain with the port number */
>  	attr.pd = priv->ib_pd;
>  	attr.comp_mask = IBV_PARENT_DOMAIN_INIT_ATTR_PD_CONTEXT;
> -	attr.pd_context = (void *)(uint64_t)port;
> +	attr.pd_context = (void *)(uintptr_t)port;
>  	priv->ib_parent_pd = ibv_alloc_parent_domain(ctx, &attr);
>  	if (!priv->ib_parent_pd) {
>  		DRV_LOG(ERR, "ibv_alloc_parent_domain failed port %d", port);
> diff --git a/drivers/net/mana/meson.build b/drivers/net/mana/meson.build index
> 493f0d26d4..2d72eca5a8 100644
> --- a/drivers/net/mana/meson.build
> +++ b/drivers/net/mana/meson.build
> @@ -1,9 +1,9 @@
>  # SPDX-License-Identifier: BSD-3-Clause  # Copyright(c) 2022 Microsoft
> Corporation
> 
> -if not is_linux or not dpdk_conf.has('RTE_ARCH_X86_64')
> +if not is_linux or not dpdk_conf.has('RTE_ARCH_X86')
>      build = false
> -    reason = 'only supported on x86_64 Linux'
> +    reason = 'only supported on x86 Linux'
>      subdir_done()
>  endif
> 
> diff --git a/drivers/net/mana/mr.c b/drivers/net/mana/mr.c index
> fec0dc961c..b8e6ea0bbf 100644
> --- a/drivers/net/mana/mr.c
> +++ b/drivers/net/mana/mr.c
> @@ -53,7 +53,7 @@ mana_new_pmd_mr(struct mana_mr_btree *local_tree,
> struct mana_priv *priv,
>  		}
> 
>  		DP_LOG(DEBUG,
> -		       "registering memory chunk start 0x%" PRIx64 " len %u",
> +		       "registering memory chunk start 0x%" PRIxPTR " len %u",
>  		       ranges[i].start, ranges[i].len);
> 
>  		if (rte_eal_process_type() == RTE_PROC_SECONDARY) { @@ -
> 62,7 +62,7 @@ mana_new_pmd_mr(struct mana_mr_btree *local_tree, struct
> mana_priv *priv,
>  						    ranges[i].len);
>  			if (ret) {
>  				DP_LOG(ERR,
> -				       "MR failed start 0x%" PRIx64 " len %u",
> +				       "MR failed start 0x%" PRIxPTR " len %u",
>  				       ranges[i].start, ranges[i].len);
>  				return ret;
>  			}
> @@ -72,7 +72,7 @@ mana_new_pmd_mr(struct mana_mr_btree *local_tree,
> struct mana_priv *priv,
>  		ibv_mr = ibv_reg_mr(priv->ib_pd, (void *)ranges[i].start,
>  				    ranges[i].len, IBV_ACCESS_LOCAL_WRITE);
>  		if (ibv_mr) {
> -			DP_LOG(DEBUG, "MR lkey %u addr %p len %" PRIu64,
> +			DP_LOG(DEBUG, "MR lkey %u addr %p len %zu",
>  			       ibv_mr->lkey, ibv_mr->addr, ibv_mr->length);
> 
>  			mr = rte_calloc("MANA MR", 1, sizeof(*mr), 0); @@ -
> 99,7 +99,7 @@ mana_new_pmd_mr(struct mana_mr_btree *local_tree, struct
> mana_priv *priv,
>  				return ret;
>  			}
>  		} else {
> -			DP_LOG(ERR, "MR failed at 0x%" PRIx64 " len %u",
> +			DP_LOG(ERR, "MR failed at 0x%" PRIxPTR " len %u",
>  			       ranges[i].start, ranges[i].len);
>  			return -errno;
>  		}
> @@ -141,7 +141,7 @@ mana_find_pmd_mr(struct mana_mr_btree
> *local_mr_btree, struct mana_priv *priv,
>  	mr = mana_mr_btree_lookup(local_mr_btree, &idx,
>  				  (uintptr_t)mbuf->buf_addr, mbuf->buf_len);
>  	if (mr) {
> -		DP_LOG(DEBUG, "Local mr lkey %u addr 0x%" PRIx64 " len %"
> PRIu64,
> +		DP_LOG(DEBUG, "Local mr lkey %u addr 0x%" PRIxPTR "
> len %zu",
>  		       mr->lkey, mr->addr, mr->len);
>  		return mr;
>  	}
> @@ -162,7 +162,7 @@ mana_find_pmd_mr(struct mana_mr_btree
> *local_mr_btree, struct mana_priv *priv,
>  		}
> 
>  		DP_LOG(DEBUG,
> -		       "Added local MR key %u addr 0x%" PRIx64 " len %" PRIu64,
> +		       "Added local MR key %u addr 0x%" PRIxPTR " len %zu",
>  		       mr->lkey, mr->addr, mr->len);
>  		return mr;
>  	}
> @@ -266,7 +266,7 @@ mana_mr_btree_lookup(struct mana_mr_btree *bt,
> uint16_t *idx,
>  		return &table[base];
> 
>  	DP_LOG(DEBUG,
> -	       "addr 0x%" PRIx64 " len %zu idx %u sum 0x%" PRIx64 " not found",
> +	       "addr 0x%" PRIxPTR " len %zu idx %u sum 0x%" PRIxPTR " not
> +found",
>  	       addr, len, *idx, addr + len);
> 
>  	return NULL;
> @@ -316,7 +316,7 @@ mana_mr_btree_insert(struct mana_mr_btree *bt,
> struct mana_mr_cache *entry)
>  	uint16_t shift;
> 
>  	if (mana_mr_btree_lookup(bt, &idx, entry->addr, entry->len)) {
> -		DP_LOG(DEBUG, "Addr 0x%" PRIx64 " len %zu exists in btree",
> +		DP_LOG(DEBUG, "Addr 0x%" PRIxPTR " len %zu exists in btree",
>  		       entry->addr, entry->len);
>  		return 0;
>  	}
> @@ -340,7 +340,7 @@ mana_mr_btree_insert(struct mana_mr_btree *bt,
> struct mana_mr_cache *entry)
>  	bt->len++;
> 
>  	DP_LOG(DEBUG,
> -	       "Inserted MR b-tree table %p idx %d addr 0x%" PRIx64 " len %zu",
> +	       "Inserted MR b-tree table %p idx %d addr 0x%" PRIxPTR " len
> +%zu",
>  	       table, idx, entry->addr, entry->len);
> 
>  	return 0;
> --
> 2.34.1
  
Ferruh Yigit Sept. 22, 2023, 9:35 a.m. UTC | #3
On 9/21/2023 9:53 PM, Long Li wrote:
>> Subject: [PATCH 1/2] net/mana: enable 32 bit build for mana driver
>>
>> Enable 32 bit build on x86 Linux. Fixed build warnings and errors when building in
>> 32 bit.
>>
>> With this patch, mana will be able to build into 32 bit. However, another patch for
>> mana short doorbell support is needed to make mana fully functional for 32 bit
>> applicatons.
>>
>> Cc: stable@dpdk.org
>>
>> Signed-off-by: Wei Hu <weh@microsoft.com>
> 
> Acked-by: Long Li <longli@microsoft.com>
> 

Series applied to dpdk-next-net/main, thanks.
  

Patch

diff --git a/drivers/net/mana/mana.c b/drivers/net/mana/mana.c
index 7630118d4f..896b53ed35 100644
--- a/drivers/net/mana/mana.c
+++ b/drivers/net/mana/mana.c
@@ -1260,7 +1260,7 @@  mana_probe_port(struct ibv_device *ibdev, struct ibv_device_attr_ex *dev_attr,
 	/* Create a parent domain with the port number */
 	attr.pd = priv->ib_pd;
 	attr.comp_mask = IBV_PARENT_DOMAIN_INIT_ATTR_PD_CONTEXT;
-	attr.pd_context = (void *)(uint64_t)port;
+	attr.pd_context = (void *)(uintptr_t)port;
 	priv->ib_parent_pd = ibv_alloc_parent_domain(ctx, &attr);
 	if (!priv->ib_parent_pd) {
 		DRV_LOG(ERR, "ibv_alloc_parent_domain failed port %d", port);
diff --git a/drivers/net/mana/meson.build b/drivers/net/mana/meson.build
index 493f0d26d4..2d72eca5a8 100644
--- a/drivers/net/mana/meson.build
+++ b/drivers/net/mana/meson.build
@@ -1,9 +1,9 @@ 
 # SPDX-License-Identifier: BSD-3-Clause
 # Copyright(c) 2022 Microsoft Corporation
 
-if not is_linux or not dpdk_conf.has('RTE_ARCH_X86_64')
+if not is_linux or not dpdk_conf.has('RTE_ARCH_X86')
     build = false
-    reason = 'only supported on x86_64 Linux'
+    reason = 'only supported on x86 Linux'
     subdir_done()
 endif
 
diff --git a/drivers/net/mana/mr.c b/drivers/net/mana/mr.c
index fec0dc961c..b8e6ea0bbf 100644
--- a/drivers/net/mana/mr.c
+++ b/drivers/net/mana/mr.c
@@ -53,7 +53,7 @@  mana_new_pmd_mr(struct mana_mr_btree *local_tree, struct mana_priv *priv,
 		}
 
 		DP_LOG(DEBUG,
-		       "registering memory chunk start 0x%" PRIx64 " len %u",
+		       "registering memory chunk start 0x%" PRIxPTR " len %u",
 		       ranges[i].start, ranges[i].len);
 
 		if (rte_eal_process_type() == RTE_PROC_SECONDARY) {
@@ -62,7 +62,7 @@  mana_new_pmd_mr(struct mana_mr_btree *local_tree, struct mana_priv *priv,
 						    ranges[i].len);
 			if (ret) {
 				DP_LOG(ERR,
-				       "MR failed start 0x%" PRIx64 " len %u",
+				       "MR failed start 0x%" PRIxPTR " len %u",
 				       ranges[i].start, ranges[i].len);
 				return ret;
 			}
@@ -72,7 +72,7 @@  mana_new_pmd_mr(struct mana_mr_btree *local_tree, struct mana_priv *priv,
 		ibv_mr = ibv_reg_mr(priv->ib_pd, (void *)ranges[i].start,
 				    ranges[i].len, IBV_ACCESS_LOCAL_WRITE);
 		if (ibv_mr) {
-			DP_LOG(DEBUG, "MR lkey %u addr %p len %" PRIu64,
+			DP_LOG(DEBUG, "MR lkey %u addr %p len %zu",
 			       ibv_mr->lkey, ibv_mr->addr, ibv_mr->length);
 
 			mr = rte_calloc("MANA MR", 1, sizeof(*mr), 0);
@@ -99,7 +99,7 @@  mana_new_pmd_mr(struct mana_mr_btree *local_tree, struct mana_priv *priv,
 				return ret;
 			}
 		} else {
-			DP_LOG(ERR, "MR failed at 0x%" PRIx64 " len %u",
+			DP_LOG(ERR, "MR failed at 0x%" PRIxPTR " len %u",
 			       ranges[i].start, ranges[i].len);
 			return -errno;
 		}
@@ -141,7 +141,7 @@  mana_find_pmd_mr(struct mana_mr_btree *local_mr_btree, struct mana_priv *priv,
 	mr = mana_mr_btree_lookup(local_mr_btree, &idx,
 				  (uintptr_t)mbuf->buf_addr, mbuf->buf_len);
 	if (mr) {
-		DP_LOG(DEBUG, "Local mr lkey %u addr 0x%" PRIx64 " len %" PRIu64,
+		DP_LOG(DEBUG, "Local mr lkey %u addr 0x%" PRIxPTR " len %zu",
 		       mr->lkey, mr->addr, mr->len);
 		return mr;
 	}
@@ -162,7 +162,7 @@  mana_find_pmd_mr(struct mana_mr_btree *local_mr_btree, struct mana_priv *priv,
 		}
 
 		DP_LOG(DEBUG,
-		       "Added local MR key %u addr 0x%" PRIx64 " len %" PRIu64,
+		       "Added local MR key %u addr 0x%" PRIxPTR " len %zu",
 		       mr->lkey, mr->addr, mr->len);
 		return mr;
 	}
@@ -266,7 +266,7 @@  mana_mr_btree_lookup(struct mana_mr_btree *bt, uint16_t *idx,
 		return &table[base];
 
 	DP_LOG(DEBUG,
-	       "addr 0x%" PRIx64 " len %zu idx %u sum 0x%" PRIx64 " not found",
+	       "addr 0x%" PRIxPTR " len %zu idx %u sum 0x%" PRIxPTR " not found",
 	       addr, len, *idx, addr + len);
 
 	return NULL;
@@ -316,7 +316,7 @@  mana_mr_btree_insert(struct mana_mr_btree *bt, struct mana_mr_cache *entry)
 	uint16_t shift;
 
 	if (mana_mr_btree_lookup(bt, &idx, entry->addr, entry->len)) {
-		DP_LOG(DEBUG, "Addr 0x%" PRIx64 " len %zu exists in btree",
+		DP_LOG(DEBUG, "Addr 0x%" PRIxPTR " len %zu exists in btree",
 		       entry->addr, entry->len);
 		return 0;
 	}
@@ -340,7 +340,7 @@  mana_mr_btree_insert(struct mana_mr_btree *bt, struct mana_mr_cache *entry)
 	bt->len++;
 
 	DP_LOG(DEBUG,
-	       "Inserted MR b-tree table %p idx %d addr 0x%" PRIx64 " len %zu",
+	       "Inserted MR b-tree table %p idx %d addr 0x%" PRIxPTR " len %zu",
 	       table, idx, entry->addr, entry->len);
 
 	return 0;