* [PATCH] net/mlx5: declare size of rte_v128u32_t
@ 2025-05-05 15:10 Andre Muezerie
2025-05-25 8:47 ` Maayan Kashani
0 siblings, 1 reply; 2+ messages in thread
From: Andre Muezerie @ 2025-05-05 15:10 UTC (permalink / raw)
To: Dariusz Sosnowski, Viacheslav Ovsiienko, Bing Zhao, Ori Kam,
Suanming Mou, Matan Azrad
Cc: dev, Andre Muezerie
When compiling with MSVC the error below is hit:
drivers\net\mlx5\mlx5_tx.h(1148): error C2065: 'rte_v128u32_t':
undeclared identifier
Turns out that with MSVC the data type rte_v128u32_t is not used, but
its size needs to be known. This patch defines a macro to store that
size and replaces instances of sizeof(rte_v128u32_t) with that macro.
Signed-off-by: Andre Muezerie <andremue@linux.microsoft.com>
---
drivers/net/mlx5/mlx5_defs.h | 2 ++
drivers/net/mlx5/mlx5_rxtx.c | 6 +++---
drivers/net/mlx5/mlx5_tx.h | 2 +-
3 files changed, 6 insertions(+), 4 deletions(-)
diff --git a/drivers/net/mlx5/mlx5_defs.h b/drivers/net/mlx5/mlx5_defs.h
index 9c454983be..c5e2c59309 100644
--- a/drivers/net/mlx5/mlx5_defs.h
+++ b/drivers/net/mlx5/mlx5_defs.h
@@ -196,4 +196,6 @@
#define MLX5_CNT_SVC_CYCLE_TIME_DEFAULT 500
+#define MLX5_SIZEOF_V128U32_T 16
+
#endif /* RTE_PMD_MLX5_DEFS_H_ */
diff --git a/drivers/net/mlx5/mlx5_rxtx.c b/drivers/net/mlx5/mlx5_rxtx.c
index 9c075f6a56..b30d620f54 100644
--- a/drivers/net/mlx5/mlx5_rxtx.c
+++ b/drivers/net/mlx5/mlx5_rxtx.c
@@ -32,7 +32,7 @@ static_assert(MLX5_CQE_STATUS_HW_OWN < 0, "Must be negative value");
static_assert(MLX5_CQE_STATUS_SW_OWN < 0, "Must be negative value");
static_assert(MLX5_ESEG_MIN_INLINE_SIZE ==
(sizeof(uint16_t) +
- sizeof(rte_v128u32_t)),
+ MLX5_SIZEOF_V128U32_T),
"invalid Ethernet Segment data size");
static_assert(MLX5_ESEG_MIN_INLINE_SIZE ==
(sizeof(uint16_t) +
@@ -41,7 +41,7 @@ static_assert(MLX5_ESEG_MIN_INLINE_SIZE ==
"invalid Ethernet Segment data size");
static_assert(MLX5_ESEG_MIN_INLINE_SIZE ==
(sizeof(uint16_t) +
- sizeof(rte_v128u32_t)),
+ MLX5_SIZEOF_V128U32_T),
"invalid Ethernet Segment data size");
static_assert(MLX5_ESEG_MIN_INLINE_SIZE ==
(sizeof(uint16_t) +
@@ -50,7 +50,7 @@ static_assert(MLX5_ESEG_MIN_INLINE_SIZE ==
"invalid Ethernet Segment data size");
static_assert(MLX5_ESEG_MIN_INLINE_SIZE ==
(sizeof(uint16_t) +
- sizeof(rte_v128u32_t)),
+ MLX5_SIZEOF_V128U32_T),
"invalid Ethernet Segment data size");
static_assert(MLX5_ESEG_MIN_INLINE_SIZE ==
(sizeof(uint16_t) +
diff --git a/drivers/net/mlx5/mlx5_tx.h b/drivers/net/mlx5/mlx5_tx.h
index 55568c41b1..5647f6a37d 100644
--- a/drivers/net/mlx5/mlx5_tx.h
+++ b/drivers/net/mlx5/mlx5_tx.h
@@ -1145,7 +1145,7 @@ mlx5_tx_eseg_data(struct mlx5_txq_data *__rte_restrict txq,
} else {
/* Fill the gap in the title WQEBB with inline data. */
rte_mov16(pdst, psrc);
- psrc += sizeof(rte_v128u32_t);
+ psrc += MLX5_SIZEOF_V128U32_T;
}
pdst = (uint8_t *)(es + 2);
MLX5_ASSERT(inlen >= MLX5_ESEG_MIN_INLINE_SIZE);
--
2.49.0.vfs.0.0
^ permalink raw reply [flat|nested] 2+ messages in thread
* RE: [PATCH] net/mlx5: declare size of rte_v128u32_t
2025-05-05 15:10 [PATCH] net/mlx5: declare size of rte_v128u32_t Andre Muezerie
@ 2025-05-25 8:47 ` Maayan Kashani
0 siblings, 0 replies; 2+ messages in thread
From: Maayan Kashani @ 2025-05-25 8:47 UTC (permalink / raw)
To: Andre Muezerie, Dariusz Sosnowski, Slava Ovsiienko, Bing Zhao,
Ori Kam, Suanming Mou, Matan Azrad
Cc: dev
Hi, Andre,
Thanks for your contribution and patches,
This fix should be handled diff and not by const,
as the typedef might change in future and the const value will stay and cause a bug.
Regards,
Maayan Kashani
> -----Original Message-----
> From: Andre Muezerie <andremue@linux.microsoft.com>
> Sent: Monday, 5 May 2025 18:10
> To: Dariusz Sosnowski <dsosnowski@nvidia.com>; Slava Ovsiienko
> <viacheslavo@nvidia.com>; Bing Zhao <bingz@nvidia.com>; Ori Kam
> <orika@nvidia.com>; Suanming Mou <suanmingm@nvidia.com>; Matan
> Azrad <matan@nvidia.com>
> Cc: dev@dpdk.org; Andre Muezerie <andremue@linux.microsoft.com>
> Subject: [PATCH] net/mlx5: declare size of rte_v128u32_t
>
> External email: Use caution opening links or attachments
>
>
> When compiling with MSVC the error below is hit:
>
> drivers\net\mlx5\mlx5_tx.h(1148): error C2065: 'rte_v128u32_t':
> undeclared identifier
>
> Turns out that with MSVC the data type rte_v128u32_t is not used, but its
> size needs to be known. This patch defines a macro to store that size and
> replaces instances of sizeof(rte_v128u32_t) with that macro.
>
> Signed-off-by: Andre Muezerie <andremue@linux.microsoft.com>
> ---
> drivers/net/mlx5/mlx5_defs.h | 2 ++
> drivers/net/mlx5/mlx5_rxtx.c | 6 +++---
> drivers/net/mlx5/mlx5_tx.h | 2 +-
> 3 files changed, 6 insertions(+), 4 deletions(-)
>
> diff --git a/drivers/net/mlx5/mlx5_defs.h b/drivers/net/mlx5/mlx5_defs.h
> index 9c454983be..c5e2c59309 100644
> --- a/drivers/net/mlx5/mlx5_defs.h
> +++ b/drivers/net/mlx5/mlx5_defs.h
> @@ -196,4 +196,6 @@
>
> #define MLX5_CNT_SVC_CYCLE_TIME_DEFAULT 500
>
> +#define MLX5_SIZEOF_V128U32_T 16
> +
> #endif /* RTE_PMD_MLX5_DEFS_H_ */
> diff --git a/drivers/net/mlx5/mlx5_rxtx.c b/drivers/net/mlx5/mlx5_rxtx.c
> index 9c075f6a56..b30d620f54 100644
> --- a/drivers/net/mlx5/mlx5_rxtx.c
> +++ b/drivers/net/mlx5/mlx5_rxtx.c
> @@ -32,7 +32,7 @@ static_assert(MLX5_CQE_STATUS_HW_OWN < 0, "Must
> be negative value"); static_assert(MLX5_CQE_STATUS_SW_OWN < 0, "Must
> be negative value"); static_assert(MLX5_ESEG_MIN_INLINE_SIZE ==
> (sizeof(uint16_t) +
> - sizeof(rte_v128u32_t)),
> + MLX5_SIZEOF_V128U32_T),
> "invalid Ethernet Segment data size");
> static_assert(MLX5_ESEG_MIN_INLINE_SIZE ==
> (sizeof(uint16_t) +
> @@ -41,7 +41,7 @@ static_assert(MLX5_ESEG_MIN_INLINE_SIZE ==
> "invalid Ethernet Segment data size");
> static_assert(MLX5_ESEG_MIN_INLINE_SIZE ==
> (sizeof(uint16_t) +
> - sizeof(rte_v128u32_t)),
> + MLX5_SIZEOF_V128U32_T),
> "invalid Ethernet Segment data size");
> static_assert(MLX5_ESEG_MIN_INLINE_SIZE ==
> (sizeof(uint16_t) +
> @@ -50,7 +50,7 @@ static_assert(MLX5_ESEG_MIN_INLINE_SIZE ==
> "invalid Ethernet Segment data size");
> static_assert(MLX5_ESEG_MIN_INLINE_SIZE ==
> (sizeof(uint16_t) +
> - sizeof(rte_v128u32_t)),
> + MLX5_SIZEOF_V128U32_T),
> "invalid Ethernet Segment data size");
> static_assert(MLX5_ESEG_MIN_INLINE_SIZE ==
> (sizeof(uint16_t) +
> diff --git a/drivers/net/mlx5/mlx5_tx.h b/drivers/net/mlx5/mlx5_tx.h index
> 55568c41b1..5647f6a37d 100644
> --- a/drivers/net/mlx5/mlx5_tx.h
> +++ b/drivers/net/mlx5/mlx5_tx.h
> @@ -1145,7 +1145,7 @@ mlx5_tx_eseg_data(struct mlx5_txq_data
> *__rte_restrict txq,
> } else {
> /* Fill the gap in the title WQEBB with inline data. */
> rte_mov16(pdst, psrc);
> - psrc += sizeof(rte_v128u32_t);
> + psrc += MLX5_SIZEOF_V128U32_T;
> }
> pdst = (uint8_t *)(es + 2);
> MLX5_ASSERT(inlen >= MLX5_ESEG_MIN_INLINE_SIZE);
> --
> 2.49.0.vfs.0.0
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2025-05-25 8:47 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2025-05-05 15:10 [PATCH] net/mlx5: declare size of rte_v128u32_t Andre Muezerie
2025-05-25 8:47 ` Maayan Kashani
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).