On Thu, 26 Feb 2026 04:50:01 +0000
Pavan Nikhilesh Bhagavatula <[email protected]> wrote:
> >> >Good idea, but fails miserably.
> >>
> >> My bad, here is the full fix, verified on our arm64 machine with
> >> meson setup build -Dplatform=generic
> >
> >
> >Ok but other than getting more build coverage, is there any point in
> >building this code on a generic platform?
>
> The driver can be used with distro packages, though it won’t be optimized for
> performance.
With some defuzzing of the diff, got it to build.
The old build time was 11 minutes, now down to 2:33.
Here is what was needed to get rid of uninit warnings:
drivers/event/cnxk/meson.build | 5 +++++
drivers/net/cnxk/cn10k_tx.h | 34 +++++++++++++++++-----------------
drivers/net/cnxk/cn9k_tx.h | 6 +++---
drivers/net/cnxk/meson.build | 5 +++++
4 files changed, 30 insertions(+), 20 deletions(-)
diff --git a/drivers/event/cnxk/meson.build b/drivers/event/cnxk/meson.build
index 24b48d045f..c21e01c930 100644
--- a/drivers/event/cnxk/meson.build
+++ b/drivers/event/cnxk/meson.build
@@ -36,6 +36,11 @@ if meson.version().version_compare('>=1.1.0')
endif
endif
+if soc_type == 'all'
+ disable_template = true
+ cflags += '-DCNXK_DIS_TMPLT_FUNC'
+endif
+
if soc_type == 'cn9k' or soc_type == 'all'
sources += files(
'cn9k_eventdev.c',
diff --git a/drivers/net/cnxk/cn10k_tx.h b/drivers/net/cnxk/cn10k_tx.h
index be9e020ac5..05a82cfe7d 100644
--- a/drivers/net/cnxk/cn10k_tx.h
+++ b/drivers/net/cnxk/cn10k_tx.h
@@ -1445,7 +1445,7 @@ cn10k_nix_xmit_pkts(void *tx_queue, uint64_t *ws, struct
rte_mbuf **tx_pkts,
{
struct cn10k_eth_txq *txq = tx_queue;
const rte_iova_t io_addr = txq->io_addr;
- uint8_t lnum, c_lnum, c_shft, c_loff;
+ uint8_t lnum, c_lnum = 0, c_shft = 0, c_loff = 0;
uintptr_t pa, lbase = txq->lmt_base;
uint16_t lmt_id, burst, left, i;
struct rte_mbuf *extm = NULL;
@@ -1453,9 +1453,9 @@ cn10k_nix_xmit_pkts(void *tx_queue, uint64_t *ws, struct
rte_mbuf **tx_pkts,
uint64_t lso_tun_fmt = 0;
uint64_t mark_fmt = 0;
uint8_t mark_flag = 0;
- rte_iova_t c_io_addr;
- uint16_t c_lmt_id;
- uint64_t sa_base;
+ rte_iova_t c_io_addr = 0;
+ uint16_t c_lmt_id = 0;
+ uint64_t sa_base = 0;
uintptr_t laddr;
uint64_t data;
bool sec;
@@ -1599,17 +1599,17 @@ cn10k_nix_xmit_pkts_mseg(void *tx_queue, uint64_t *ws,
const rte_iova_t io_addr = txq->io_addr;
uint16_t segdw, lmt_id, burst, left, i;
struct rte_mbuf *extm = NULL;
- uint8_t lnum, c_lnum, c_loff;
+ uint8_t lnum, c_lnum = 0, c_loff = 0;
uintptr_t c_lbase = lbase;
uint64_t lso_tun_fmt = 0;
uint64_t mark_fmt = 0;
uint8_t mark_flag = 0;
uint64_t data0, data1;
rte_iova_t c_io_addr;
- uint8_t shft, c_shft;
+ uint8_t shft, c_shft = 0;
__uint128_t data128;
uint16_t c_lmt_id;
- uint64_t sa_base;
+ uint64_t sa_base = 0;
uintptr_t laddr;
bool sec;
@@ -2166,14 +2166,14 @@ cn10k_nix_xmit_pkts_vector(void *tx_queue, uint64_t *ws,
uint64x2_t len_olflags0, len_olflags1, len_olflags2, len_olflags3;
uint64x2_t cmd0[NIX_DESCS_PER_LOOP], cmd1[NIX_DESCS_PER_LOOP],
cmd2[NIX_DESCS_PER_LOOP], cmd3[NIX_DESCS_PER_LOOP];
- uint16_t left, scalar, burst, i, lmt_id, c_lmt_id;
+ uint16_t left, scalar, burst, i, lmt_id, c_lmt_id = 0;
uint64_t *mbuf0, *mbuf1, *mbuf2, *mbuf3, pa;
- uint64x2_t senddesc01_w0, senddesc23_w0;
- uint64x2_t senddesc01_w1, senddesc23_w1;
- uint64x2_t sendext01_w0, sendext23_w0;
- uint64x2_t sendext01_w1, sendext23_w1;
- uint64x2_t sendmem01_w0, sendmem23_w0;
- uint64x2_t sendmem01_w1, sendmem23_w1;
+ uint64x2_t senddesc01_w0 = {0}, senddesc23_w0 = {0};
+ uint64x2_t senddesc01_w1 = {0}, senddesc23_w1 = {0};
+ uint64x2_t sendext01_w0 = {0}, sendext23_w0 = {0};
+ uint64x2_t sendext01_w1 = {0}, sendext23_w1 = {0};
+ uint64x2_t sendmem01_w0 = {0}, sendmem23_w0 = {0};
+ uint64x2_t sendmem01_w1 = {0}, sendmem23_w1;
uint8_t segdw[NIX_DESCS_PER_LOOP + 1];
uint64x2_t sgdesc01_w0, sgdesc23_w0;
uint64x2_t sgdesc01_w1, sgdesc23_w1;
@@ -2181,13 +2181,13 @@ cn10k_nix_xmit_pkts_vector(void *tx_queue, uint64_t *ws,
rte_iova_t io_addr = txq->io_addr;
uint8_t lnum, shift = 0, loff = 0;
uintptr_t laddr = txq->lmt_base;
- uint8_t c_lnum, c_shft, c_loff;
+ uint8_t c_lnum = 0, c_shft = 0, c_loff = 0;
uint64x2_t ltypes01, ltypes23;
uint64x2_t xtmp128, ytmp128;
uint64x2_t xmask01, xmask23;
uintptr_t c_laddr = laddr;
- rte_iova_t c_io_addr;
- uint64_t sa_base;
+ rte_iova_t c_io_addr = 0;
+ uint64_t sa_base = 0;
union wdata {
__uint128_t data128;
uint64_t data[2];
diff --git a/drivers/net/cnxk/cn9k_tx.h b/drivers/net/cnxk/cn9k_tx.h
index 14594b6311..8c9e84f64b 100644
--- a/drivers/net/cnxk/cn9k_tx.h
+++ b/drivers/net/cnxk/cn9k_tx.h
@@ -1185,10 +1185,10 @@ cn9k_nix_xmit_pkts_vector(void *tx_queue, struct
rte_mbuf **tx_pkts,
uint64_t *mbuf0, *mbuf1, *mbuf2, *mbuf3;
uint64x2_t senddesc01_w0, senddesc23_w0;
uint64x2_t senddesc01_w1, senddesc23_w1;
- uint64x2_t sendext01_w0, sendext23_w0;
- uint64x2_t sendext01_w1, sendext23_w1;
+ uint64x2_t sendext01_w0 = {0}, sendext23_w0 = {0};
+ uint64x2_t sendext01_w1 = {0}, sendext23_w1 = {0};
uint64x2_t sendmem01_w0, sendmem23_w0;
- uint64x2_t sendmem01_w1, sendmem23_w1;
+ uint64x2_t sendmem01_w1 = {0}, sendmem23_w1;
uint64x2_t sgdesc01_w0, sgdesc23_w0;
uint64x2_t sgdesc01_w1, sgdesc23_w1;
struct cn9k_eth_txq *txq = tx_queue;
diff --git a/drivers/net/cnxk/meson.build b/drivers/net/cnxk/meson.build
index 53caa6c171..a0d9849595 100644
--- a/drivers/net/cnxk/meson.build
+++ b/drivers/net/cnxk/meson.build
@@ -52,6 +52,11 @@ if meson.version().version_compare('>=1.1.0')
endif
endif
+if soc_type == 'all'
+ disable_template = true
+ cflags += '-DCNXK_DIS_TMPLT_FUNC'
+endif
+
if soc_type == 'cn9k' or soc_type == 'all'
# CN9K
sources += files(
--
2.39.5