net/mana: enable 32 bit build for mana driver
Subsystems (2)
PATCH v2 1/1 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.
---
v2: change port casting from size_t to uintptr_t.
--- 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(-)
drivers/net/mana/mana.c +1 -1
@@ -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);
drivers/net/mana/meson.build +2 -2
@@ -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
drivers/net/mana/mr.c +9 -9
@@ -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 ;
Signature · 1 line
2.34.1
Quoted 5 lines · Wei Hu
Enable 32 bit build on x86 Linux. Fixed build warnings and errors when building in 32 bit.
This is not a fix, but adding 32bit support to the driver, so not sure about backporting. cc'ed Kevin & Luca for guidance.
I will drop the tag while merging unles otherwise suggested by LTS maintainers.
Quoted 2 lines
Signed-off-by Wei Hu <[email protected]>
Hi Wei,
Patch looks good, but it basically fixes the format specifiers that will cause build error for 32 bit.
Is there any other change required to make driver functional for 32 bit, or does it become functional with this change?
And if it does can you please confirm explicityly that driver tested on 32 bit with this patch?
Quoted 13 lines
-----Original Message-----
From: Ferruh Yigit <[email protected]>
Sent: Tuesday, September 19, 2023 1:41 AM
To: Wei Hu <[email protected]>; [email protected]; Long Li <[email protected]>
Cc: [email protected]; Kevin Traynor <[email protected]>; Luca Boccassi <[email protected]>
Subject: Re: [PATCH v2 1/1] net/mana: enable 32 bit build for mana driverQuoted 3 lines · Wei Hu
Enable 32 bit build on x86 Linux. Fixed build warnings and errors when building in 32 bit.
Quoted 8 lines
Quoted 2 lines
This is not a fix, but adding 32bit support to the driver, so not sure about backporting. cc'ed Kevin & Luca for guidance.
I will drop the tag while merging unles otherwise suggested by LTS maintainers.
Hi Ferruh,
We have a customer who needs it to be on 22.11.x. That is why I put "Cc: [email protected]" in it.
Quoted 6 lines
Quoted 3 lines
Signed-off-by Wei Hu <[email protected]>Hi Wei,
Quoted 7 lines
Patch looks good, but it basically fixes the format specifiers that will cause build error for 32 bit.
Is there any other change required to make driver functional for 32 bit, or does it become functional with this change?
And if it does can you please confirm explicityly that driver tested on 32 bit with this patch?
Another patch, " net/mana: add 32 bit short doorbell", is required to make mana fully functional with 32 bit applications. This patch is to fix some build time errors and warnings when build in 32 bit. These patches can be independently built and they are addressing two different issues. So, I put them into two independent patches.
I have tested it on 32 bit applications. They can run with this patch. Just mana would not work as the applications still use 64 bit long door bells, which do not work for 32 bit apps.
Thanks,
Wei
Quoted 19 lines · Wei Hu
Quoted 19 lines
-----Original Message-----
From: Ferruh Yigit <[email protected]>
Sent: Tuesday, September 19, 2023 1:41 AM
To: Wei Hu <[email protected]>; [email protected]; Long Li <[email protected]>
Cc: [email protected]; Kevin Traynor <[email protected]>; Luca Boccassi <[email protected]>
Subject: Re: [PATCH v2 1/1] net/mana: enable 32 bit build for mana driverQuoted 5 lines · Wei Hu
Enable 32 bit build on x86 Linux. Fixed build warnings and errors when building in 32 bit.
This is not a fix, but adding 32bit support to the driver, so not sure about backporting. cc'ed Kevin & Luca for guidance.
Quoted 7 lines
Quoted 2 lines
I will drop the tag while merging unles otherwise suggested by LTS maintainers.
Hi Ferruh,
We have a customer who needs it to be on 22.11.x. That is why I put "Cc: [email protected]" in it.
Got it, lets get comment from the LTS maintainers.
Quoted 14 lines
Quoted 6 lines
Quoted 3 lines
Signed-off-by Wei Hu <[email protected]>Hi Wei,
Quoted 7 lines
Patch looks good, but it basically fixes the format specifiers that will cause build error for 32 bit.
Is there any other change required to make driver functional for 32 bit, or does it become functional with this change?
And if it does can you please confirm explicityly that driver tested on 32 bit with this patch?
Quoted 8 lines
Another patch, " net/mana: add 32 bit short doorbell", is required to make mana fully functional with 32 bit applications. This patch is to fix some build time errors and warnings when build in 32 bit. These patches can be independently built and they are addressing two different issues. So, I put them into two independent patches.
I have tested it on 32 bit applications. They can run with this patch. Just mana would not work as the applications still use 64 bit long door bells, which do not work for 32 bit apps.
Thanks Wei, for clarification.
As this patch enables the 32bit build of driver in meson, can you please add comment log that 32bit driver is not functional yet?
Or maybe meson update can be moved to short doorbell patch, where driver becomes functional for 32 bit, this patch can mention in commit log that is preparation for 32 bit support, what do you think?
Quoted 67 lines
-----Original Message-----
From: Ferruh Yigit <[email protected]>
Sent: Tuesday, September 19, 2023 7:05 PM
To: Wei Hu <[email protected]>; [email protected]; Long Li <[email protected]>
Cc: [email protected]; Kevin Traynor <[email protected]>; Luca Boccassi <[email protected]>
Subject: Re: [PATCH v2 1/1] net/mana: enable 32 bit build for mana driverQuoted 20 lines · Wei Hu
Quoted 20 lines
-----Original Message-----
From: Ferruh Yigit <[email protected]>
Sent: Tuesday, September 19, 2023 1:41 AM
To: Wei Hu <[email protected]>; [email protected]; Long Li <[email protected]>
Cc: [email protected]; Kevin Traynor <[email protected]>; Luca Boccassi <[email protected]>
Subject: Re: [PATCH v2 1/1] net/mana: enable 32 bit build for mana driverQuoted 5 lines · Wei Hu
Enable 32 bit build on x86 Linux. Fixed build warnings and errors when building in 32 bit.
This is not a fix, but adding 32bit support to the driver, so not sure about backporting. cc'ed Kevin & Luca for guidance.
Quoted 6 lines
Quoted 2 lines
I will drop the tag while merging unles otherwise suggested by LTS maintainers.
Hi Ferruh,
We have a customer who needs it to be on 22.11.x. That is why I put "Cc:
[email protected]" in it.
Quoted 1 line
Got it, lets get comment from the LTS maintainers.
Quoted 15 lines
Quoted 6 lines
Quoted 3 lines
Signed-off-by Wei Hu <[email protected]>Hi Wei,
Quoted 8 lines
Patch looks good, but it basically fixes the format specifiers that will cause build error for 32 bit.
Is there any other change required to make driver functional for 32 bit, or does it become functional with this change?
And if it does can you please confirm explicityly that driver tested on
32 bit with this patch?Quoted 4 lines
Another patch, " net/mana: add 32 bit short doorbell", is required to make mana fully functional with 32 bit applications. This patch is to fix some build time errors and warnings when build in 32 bit. These patches can be independently built and they are addressing two different
issues. So, I put them into two independent patches.
Quoted 3 lines
I have tested it on 32 bit applications. They can run with this patch. Just mana would not work as the applications still use 64 bit long door bells,
which do not work for 32 bit apps.
Quoted 1 line
Quoted 8 lines
Thanks Wei, for clarification.
As this patch enables the 32bit build of driver in meson, can you please add comment log that 32bit driver is not functional yet?
Or maybe meson update can be moved to short doorbell patch, where driver becomes functional for 32 bit, this patch can mention in commit log that is preparation for 32 bit support, what do you think?
Thanks Ferruh. I would like to add comment log that 32bit driver is not fully functioning yet until short doorbell support is added. Meanwhile still keep the meson update in within this patch to keep it complete. Hope this works for you.
Wei
Quoted 72 lines · Wei Hu
Quoted 72 lines
-----Original Message-----
From: Ferruh Yigit <[email protected]>
Sent: Tuesday, September 19, 2023 7:05 PM
To: Wei Hu <[email protected]>; [email protected]; Long Li <[email protected]>
Cc: [email protected]; Kevin Traynor <[email protected]>; Luca Boccassi <[email protected]>
Subject: Re: [PATCH v2 1/1] net/mana: enable 32 bit build for mana driverQuoted 20 lines · Wei Hu
Quoted 20 lines
-----Original Message-----
From: Ferruh Yigit <[email protected]>
Sent: Tuesday, September 19, 2023 1:41 AM
To: Wei Hu <[email protected]>; [email protected]; Long Li <[email protected]>
Cc: [email protected]; Kevin Traynor <[email protected]>; Luca Boccassi <[email protected]>
Subject: Re: [PATCH v2 1/1] net/mana: enable 32 bit build for mana driverQuoted 5 lines · Wei Hu
Enable 32 bit build on x86 Linux. Fixed build warnings and errors when building in 32 bit.
This is not a fix, but adding 32bit support to the driver, so not sure about backporting. cc'ed Kevin & Luca for guidance.
Quoted 6 lines
Quoted 2 lines
I will drop the tag while merging unles otherwise suggested by LTS maintainers.
Hi Ferruh,
We have a customer who needs it to be on 22.11.x. That is why I put "Cc:
[email protected]" in it.
Quoted 1 line
Got it, lets get comment from the LTS maintainers.
Quoted 15 lines
Quoted 6 lines
Quoted 3 lines
Signed-off-by Wei Hu <[email protected]>Hi Wei,
Quoted 8 lines
Patch looks good, but it basically fixes the format specifiers that will cause build error for 32 bit.
Is there any other change required to make driver functional for 32 bit, or does it become functional with this change?
And if it does can you please confirm explicityly that driver tested on
32 bit with this patch?Quoted 4 lines
Another patch, " net/mana: add 32 bit short doorbell", is required to make mana fully functional with 32 bit applications. This patch is to fix some build time errors and warnings when build in 32 bit. These patches can be independently built and they are addressing two different
issues. So, I put them into two independent patches.
Quoted 3 lines
I have tested it on 32 bit applications. They can run with this patch. Just mana would not work as the applications still use 64 bit long door bells,
which do not work for 32 bit apps.
Quoted 1 line
Thanks Wei, for clarification.
As this patch enables the 32bit build of driver in meson, can you please add comment log that 32bit driver is not functional yet?
Quoted 9 lines
Quoted 3 lines
Or maybe meson update can be moved to short doorbell patch, where driver becomes functional for 32 bit, this patch can mention in commit log that is preparation for 32 bit support, what do you think?
Thanks Ferruh. I would like to add comment log that 32bit driver is not fully functioning yet until short doorbell support is added. Meanwhile still keep the meson update in within this patch to keep it complete. Hope this works for you.
I think it will do.
Can you please send those two patches in a same patchset, that gives some context if we need to back trace it later?
Quoted 83 lines · Ferruh Yigit
Quoted 72 lines · Wei Hu
Quoted 72 lines
-----Original Message-----
From: Ferruh Yigit <[email protected]>
Sent: Tuesday, September 19, 2023 7:05 PM
To: Wei Hu <[email protected]>; [email protected]; Long Li <[email protected]>
Cc: [email protected]; Kevin Traynor <[email protected]>; Luca Boccassi <[email protected]>
Subject: Re: [PATCH v2 1/1] net/mana: enable 32 bit build for mana driverQuoted 20 lines · Wei Hu
Quoted 20 lines
-----Original Message-----
From: Ferruh Yigit <[email protected]>
Sent: Tuesday, September 19, 2023 1:41 AM
To: Wei Hu <[email protected]>; [email protected]; Long Li <[email protected]>
Cc: [email protected]; Kevin Traynor <[email protected]>; Luca Boccassi <[email protected]>
Subject: Re: [PATCH v2 1/1] net/mana: enable 32 bit build for mana driverQuoted 5 lines · Wei Hu
Enable 32 bit build on x86 Linux. Fixed build warnings and errors when building in 32 bit.
This is not a fix, but adding 32bit support to the driver, so not sure about backporting. cc'ed Kevin & Luca for guidance.
Quoted 6 lines
Quoted 2 lines
I will drop the tag while merging unles otherwise suggested by LTS maintainers.
Hi Ferruh,
We have a customer who needs it to be on 22.11.x. That is why I put "Cc:
[email protected]" in it.
Quoted 1 line
Got it, lets get comment from the LTS maintainers.
Quoted 15 lines
Quoted 6 lines
Quoted 3 lines
Signed-off-by Wei Hu <[email protected]>Hi Wei,
Quoted 8 lines
Patch looks good, but it basically fixes the format specifiers that will cause build error for 32 bit.
Is there any other change required to make driver functional for 32 bit, or does it become functional with this change?
And if it does can you please confirm explicityly that driver tested on
32 bit with this patch?Quoted 4 lines
Another patch, " net/mana: add 32 bit short doorbell", is required to make mana fully functional with 32 bit applications. This patch is to fix some build time errors and warnings when build in 32 bit. These patches can be independently built and they are addressing two different
issues. So, I put them into two independent patches.
Quoted 3 lines
I have tested it on 32 bit applications. They can run with this patch. Just mana would not work as the applications still use 64 bit long door bells,
which do not work for 32 bit apps.
Quoted 1 line
Thanks Wei, for clarification.
As this patch enables the 32bit build of driver in meson, can you please add comment log that 32bit driver is not functional yet?
Quoted 9 lines
Quoted 3 lines
Or maybe meson update can be moved to short doorbell patch, where driver becomes functional for 32 bit, this patch can mention in commit log that is preparation for 32 bit support, what do you think?
Thanks Ferruh. I would like to add comment log that 32bit driver is not fully functioning yet until short doorbell support is added. Meanwhile still keep the meson update in within this patch to keep it complete. Hope this works for you.
Quoted 4 lines
I think it will do.
Can you please send those two patches in a same patchset, that gives some context if we need to back trace it later?
+1
Adding 22.11 maintainer Xueming. The main thing is that it would not cause a regression to 64 bit. That is something that would need to be tested by Microsoft.