* [RFC] net/cnxk: only build if platform is specified
@ 2026-02-24 20:37 Stephen Hemminger
2026-02-25 8:01 ` [EXTERNAL] " Pavan Nikhilesh Bhagavatula
0 siblings, 1 reply; 8+ messages in thread
From: Stephen Hemminger @ 2026-02-24 20:37 UTC (permalink / raw)
To: dev
Cc: Stephen Hemminger, Nithin Dabilpuram, Kiran Kumar K,
Sunil Kumar Kori, Satha Rao, Harman Kalra
The generic build was building for all SOC types and that
takes a long time (like 10 minutes). The driver should only be
built if soc_type is set to one of the know values.
Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
---
drivers/net/cnxk/meson.build | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)
diff --git a/drivers/net/cnxk/meson.build b/drivers/net/cnxk/meson.build
index 53caa6c171..4a2f4e1a92 100644
--- a/drivers/net/cnxk/meson.build
+++ b/drivers/net/cnxk/meson.build
@@ -14,8 +14,10 @@ else
soc_type = platform
endif
-if soc_type != 'cn9k' and soc_type != 'cn10k' and soc_type != 'cn20k'
- soc_type = 'all'
+if soc_type != 'cn9k' and soc_type != 'cn10k' and soc_type != 'cn20k' and soc_type != 'all'
+ build = false
+ reason = 'not supported on soc_type ' + soc_type
+ subdir_done()
endif
sources = files(
--
2.51.0
^ permalink raw reply related [flat|nested] 8+ messages in thread
* Re: [EXTERNAL] [RFC] net/cnxk: only build if platform is specified
2026-02-24 20:37 [RFC] net/cnxk: only build if platform is specified Stephen Hemminger
@ 2026-02-25 8:01 ` Pavan Nikhilesh Bhagavatula
2026-02-25 17:43 ` Stephen Hemminger
0 siblings, 1 reply; 8+ messages in thread
From: Pavan Nikhilesh Bhagavatula @ 2026-02-25 8:01 UTC (permalink / raw)
To: Stephen Hemminger, dev@dpdk.org
Cc: Nithin Kumar Dabilpuram, Kiran Kumar Kokkilagadda,
Sunil Kumar Kori, Satha Koteswara Rao Kottidi, Harman Kalra
>The generic build was building for all SOC types and that
>takes a long time (like 10 minutes). The driver should only be
>built if soc_type is set to one of the know values.
>
>Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
>---
> drivers/net/cnxk/meson.build | 6 ++++--
> 1 file changed, 4 insertions(+), 2 deletions(-)
>
>diff --git a/drivers/net/cnxk/meson.build b/drivers/net/cnxk/meson.build
>index 53caa6c171..4a2f4e1a92 100644
>--- a/drivers/net/cnxk/meson.build
>+++ b/drivers/net/cnxk/meson.build
>@@ -14,8 +14,10 @@ else
> soc_type = platform
> endif
>
>-if soc_type != 'cn9k' and soc_type != 'cn10k' and soc_type != 'cn20k'
>- soc_type = 'all'
>+if soc_type != 'cn9k' and soc_type != 'cn10k' and soc_type != 'cn20k' and soc_type != 'all'
>+ build = false
>+ reason = 'not supported on soc_type ' + soc_type
>+ subdir_done()
> endif
Instead of disabling the build, we can just diable template functions when soc_type is 'all'
diff --git a/drivers/event/cnxk/meson.build b/drivers/event/cnxk/meson.build
index 24b48d045f..00295246b6 100644
--- a/drivers/event/cnxk/meson.build
+++ b/drivers/event/cnxk/meson.build
@@ -36,6 +36,10 @@ if meson.version().version_compare('>=1.1.0')
endif
endif
+if soc_type == 'all'
+ disable_template = true
+endif
+
if soc_type == 'cn9k' or soc_type == 'all'
sources += files(
'cn9k_eventdev.c',
diff --git a/drivers/net/cnxk/meson.build b/drivers/net/cnxk/meson.build
index 53caa6c171..9382491ae4 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
+endif
+
+
if soc_type == 'cn9k' or soc_type == 'all'
# CN9K
sources += files(
Thanks,
Pavan.
>
> sources = files(
>--
>2.51.0
^ permalink raw reply related [flat|nested] 8+ messages in thread
* Re: [EXTERNAL] [RFC] net/cnxk: only build if platform is specified
2026-02-25 8:01 ` [EXTERNAL] " Pavan Nikhilesh Bhagavatula
@ 2026-02-25 17:43 ` Stephen Hemminger
2026-02-25 19:30 ` Pavan Nikhilesh Bhagavatula
0 siblings, 1 reply; 8+ messages in thread
From: Stephen Hemminger @ 2026-02-25 17:43 UTC (permalink / raw)
To: Pavan Nikhilesh Bhagavatula
Cc: dev@dpdk.org, Nithin Kumar Dabilpuram, Kiran Kumar Kokkilagadda,
Sunil Kumar Kori, Satha Koteswara Rao Kottidi, Harman Kalra
On Wed, 25 Feb 2026 08:01:19 +0000
Pavan Nikhilesh Bhagavatula <pbhagavatula@marvell.com> wrote:
> >The generic build was building for all SOC types and that
> >takes a long time (like 10 minutes). The driver should only be
> >built if soc_type is set to one of the know values.
> >
> >Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
> >---
> > drivers/net/cnxk/meson.build | 6 ++++--
> > 1 file changed, 4 insertions(+), 2 deletions(-)
> >
> >diff --git a/drivers/net/cnxk/meson.build b/drivers/net/cnxk/meson.build
> >index 53caa6c171..4a2f4e1a92 100644
> >--- a/drivers/net/cnxk/meson.build
> >+++ b/drivers/net/cnxk/meson.build
> >@@ -14,8 +14,10 @@ else
> > soc_type = platform
> > endif
> >
> >-if soc_type != 'cn9k' and soc_type != 'cn10k' and soc_type != 'cn20k'
> >- soc_type = 'all'
> >+if soc_type != 'cn9k' and soc_type != 'cn10k' and soc_type != 'cn20k' and soc_type != 'all'
> >+ build = false
> >+ reason = 'not supported on soc_type ' + soc_type
> >+ subdir_done()
> > endif
>
> Instead of disabling the build, we can just diable template functions when soc_type is 'all'
>
> diff --git a/drivers/event/cnxk/meson.build b/drivers/event/cnxk/meson.build
> index 24b48d045f..00295246b6 100644
> --- a/drivers/event/cnxk/meson.build
> +++ b/drivers/event/cnxk/meson.build
> @@ -36,6 +36,10 @@ if meson.version().version_compare('>=1.1.0')
> endif
> endif
>
> +if soc_type == 'all'
> + disable_template = true
> +endif
> +
> if soc_type == 'cn9k' or soc_type == 'all'
> sources += files(
> 'cn9k_eventdev.c',
> diff --git a/drivers/net/cnxk/meson.build b/drivers/net/cnxk/meson.build
> index 53caa6c171..9382491ae4 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
> +endif
> +
> +
> if soc_type == 'cn9k' or soc_type == 'all'
> # CN9K
> sources += files(
>
>
> Thanks,
> Pavan.
>
> >
> > sources = files(
> >--
> >2.51.0
>
>
Good idea, but fails miserably.
n$ git diff
diff --git a/drivers/event/cnxk/meson.build b/drivers/event/cnxk/meson.build
index 24b48d045f..93d7bfdc31 100644
--- a/drivers/event/cnxk/meson.build
+++ b/drivers/event/cnxk/meson.build
@@ -36,6 +36,10 @@ if meson.version().version_compare('>=1.1.0')
endif
endif
+if soc_type == 'all'
+ disable_template = true
+endif
+
if soc_type == 'cn9k' or soc_type == 'all'
sources += files(
'cn9k_eventdev.c',
diff --git a/drivers/net/cnxk/meson.build b/drivers/net/cnxk/meson.build
index 53caa6c171..d4d1dddceb 100644
--- a/drivers/net/cnxk/meson.build
+++ b/drivers/net/cnxk/meson.build
@@ -52,6 +52,10 @@ if meson.version().version_compare('>=1.1.0')
endif
endif
+if soc_type == 'all'
+ disable_template = true
+endif
+
if soc_type == 'cn9k' or soc_type == 'all'
# CN9K
sources += files(
$ time ninja -C build
ninja: Entering directory `build'
[1480/3492] Linking target drivers/librte_net_cnxk.so.26.1
FAILED: drivers/librte_net_cnxk.so.26.1
cc -o drivers/librte_net_cnxk.so.26.1 drivers/librte_net_cnxk.so.26.1.p/meson-generated_.._rte_net_cnxk.pmd.c.o drivers/libtmp_rte_net_cnxk.a.p/net_cnxk_cnxk_ethdev.c.o drivers/libtmp_rte_net_cnxk.a.p/net_cnxk_cnxk_ethdev_cman.c.o drivers/libtmp_rte_net_cnxk.a.p/net_cnxk_cnxk_ethdev_devargs.c.o drivers/libtmp_rte_net_cnxk.a.p/net_cnxk_cnxk_ethdev_mcs.c.o drivers/libtmp_rte_net_cnxk.a.p/net_cnxk_cnxk_ethdev_mtr.c.o drivers/libtmp_rte_net_cnxk.a.p/net_cnxk_cnxk_ethdev_ops.c.o drivers/libtmp_rte_net_cnxk.a.p/net_cnxk_cnxk_ethdev_sec.c.o drivers/libtmp_rte_net_cnxk.a.p/net_cnxk_cnxk_ethdev_telemetry.c.o drivers/libtmp_rte_net_cnxk.a.p/net_cnxk_cnxk_ethdev_sec_telemetry.c.o drivers/libtmp_rte_net_cnxk.a.p/net_cnxk_cnxk_eswitch.c.o drivers/libtmp_rte_net_cnxk.a.p/net_cnxk_cnxk_eswitch_devargs.c.o drivers/libtmp_rte_net_cnxk.a.p/net_cnxk_cnxk_eswitch_flow.c.o drivers/libtmp_rte_net_cnxk.a.p/net_cnxk_cnxk_eswitch_rxtx.c.o drivers/libtmp_rte_net_cnxk.a.p/net_cnxk_cnxk_flow_common.c.o drivers/libtmp_rte_net_cnxk.a.p/net_cnxk_cnxk_link.c.o drivers/libtmp_rte_net_cnxk.a.p/net_cnxk_cnxk_lookup.c.o drivers/libtmp_rte_net_cnxk.a.p/net_cnxk_cnxk_ptp.c.o drivers/libtmp_rte_net_cnxk.a.p/net_cnxk_cnxk_flow.c.o drivers/libtmp_rte_net_cnxk.a.p/net_cnxk_cnxk_rep.c.o drivers/libtmp_rte_net_cnxk.a.p/net_cnxk_cnxk_rep_msg.c.o drivers/libtmp_rte_net_cnxk.a.p/net_cnxk_cnxk_rep_ops.c.o drivers/libtmp_rte_net_cnxk.a.p/net_cnxk_cnxk_rep_flow.c.o drivers/libtmp_rte_net_cnxk.a.p/net_cnxk_cnxk_stats.c.o drivers/libtmp_rte_net_cnxk.a.p/net_cnxk_cnxk_tm.c.o drivers/libtmp_rte_net_cnxk.a.p/net_cnxk_cn9k_ethdev.c.o drivers/libtmp_rte_net_cnxk.a.p/net_cnxk_cn9k_ethdev_sec.c.o drivers/libtmp_rte_net_cnxk.a.p/net_cnxk_cn9k_flow.c.o drivers/libtmp_rte_net_cnxk.a.p/net_cnxk_cn9k_rx_select.c.o drivers/libtmp_rte_net_cnxk.a.p/net_cnxk_cn9k_tx_select.c.o drivers/libtmp_rte_net_cnxk.a.p/net_cnxk_rx_cn9k_rx_all_offload.c.o drivers/libtmp_rte_net_cnxk.a.p/net_cnxk_tx_cn9k_tx_all_offload.c.o drivers/libtmp_rte_net_cnxk.a.p/net_cnxk_cn10k_ethdev.c.o drivers/libtmp_rte_net_cnxk.a.p/net_cnxk_cn10k_ethdev_sec.c.o drivers/libtmp_rte_net_cnxk.a.p/net_cnxk_cn10k_flow.c.o drivers/libtmp_rte_net_cnxk.a.p/net_cnxk_cn10k_rx_select.c.o drivers/libtmp_rte_net_cnxk.a.p/net_cnxk_cn10k_tx_select.c.o drivers/libtmp_rte_net_cnxk.a.p/net_cnxk_rx_cn10k_rx_all_offload.c.o drivers/libtmp_rte_net_cnxk.a.p/net_cnxk_tx_cn10k_tx_all_offload.c.o drivers/libtmp_rte_net_cnxk.a.p/net_cnxk_cn20k_ethdev.c.o drivers/libtmp_rte_net_cnxk.a.p/net_cnxk_cn20k_ethdev_sec.c.o drivers/libtmp_rte_net_cnxk.a.p/net_cnxk_cn20k_flow.c.o drivers/libtmp_rte_net_cnxk.a.p/net_cnxk_cn20k_rx_select.c.o drivers/libtmp_rte_net_cnxk.a.p/net_cnxk_cn20k_tx_select.c.o drivers/libtmp_rte_net_cnxk.a.p/net_cnxk_rx_cn20k_rx_all_offload.c.o drivers/libtmp_rte_net_cnxk.a.p/net_cnxk_tx_cn20k_tx_all_offload.c.o -Wl,--as-needed -Wl,--no-undefined -Wl,-O1 -shared -fPIC -Wl,--start-group -Wl,-soname,librte_net_cnxk.so.26 -Wl,--no-as-needed -Wl,--undefined-version -pthread -lm -ldl -lnuma -lfdt '-Wl,-rpath,$ORIGIN/../lib:$ORIGIN/' -Wl,-rpath-link,/home/shemminger/DPDK/main/build/lib -Wl,-rpath-link,/home/shemminger/DPDK/main/build/drivers lib/librte_ethdev.so.26.1 lib/librte_eal.so.26.1 lib/librte_kvargs.so.26.1 lib/librte_log.so.26.1 lib/librte_telemetry.so.26.1 lib/librte_argparse.so.26.1 lib/librte_net.so.26.1 lib/librte_mbuf.so.26.1 lib/librte_mempool.so.26.1 lib/librte_ring.so.26.1 lib/librte_meter.so.26.1 drivers/librte_bus_pci.so.26.1 lib/librte_pci.so.26.1 drivers/librte_bus_vdev.so.26.1 lib/librte_cryptodev.so.26.1 lib/librte_rcu.so.26.1 lib/librte_eventdev.so.26.1 lib/librte_hash.so.26.1 lib/librte_timer.so.26.1 lib/librte_dmadev.so.26.1 lib/librte_security.so.26.1 drivers/librte_common_cnxk.so.26.1 drivers/librte_mempool_cnxk.so.26.1 -Wl,--version-script=/home/shemminger/DPDK/main/build/drivers/net_cnxk_exports.map /usr/lib/aarch64-linux-gnu/libbsd.so -Wl,--end-group
/usr/bin/ld: drivers/libtmp_rte_net_cnxk.a.p/net_cnxk_cn10k_rx_select.c.o:(.data+0x0): undefined reference to `cn10k_nix_recv_pkts_no_offload'
/usr/bin/ld: drivers/libtmp_rte_net_cnxk.a.p/net_cnxk_cn10k_rx_select.c.o:(.data+0x8): undefined reference to `cn10k_nix_recv_pkts_rss'
/usr/bin/ld: drivers/libtmp_rte_net_cnxk.a.p/net_cnxk_cn10k_rx_select.c.o:(.data+0x10): undefined reference to `cn10k_nix_recv_pkts_ptype'
/usr/bin/ld: drivers/libtmp_rte_net_cnxk.a.p/net_cnxk_cn10k_rx_select.c.o:(.data+0x18): undefined reference to `cn10k_nix_recv_pkts_ptype_rss'
/usr/bin/ld: drivers/libtmp_rte_net_cnxk.a.p/net_cnxk_cn10k_rx_select.c.o:(.data+0x20): undefined reference to `cn10k_nix_recv_pkts_cksum'
/usr/bin/ld: drivers/libtmp_rte_net_cnxk.a.p/net_cnxk_cn10k_rx_select.c.o:(.data+0x28): undefined reference to `cn10k_nix_recv_pkts_cksum_rss'
/usr/bin/ld: drivers/libtmp_rte_net_cnxk.a.p/net_cnxk_cn10k_rx_select.c.o:(.data+0x30): undefined reference to `cn10k_nix_recv_pkts_cksum_ptype'
/usr/bin/ld: drivers/libtmp_rte_net_cnxk.a.p/net_cnxk_cn10k_rx_select.c.o:(.data+0x38): undefined reference to `cn10k_nix_recv_pkts_cksum_ptype_rss'
/usr/bin/ld: drivers/libtmp_rte_net_cnxk.a.p/net_cnxk_cn10k_rx_select.c.o:(.data+0x40): undefined reference to `cn10k_nix_recv_pkts_mark'
/usr/bin/ld: drivers/libtmp_rte_net_cnxk.a.p/net_cnxk_cn10k_rx_select.c.o:(.data+0x48): undefined reference to `cn10k_nix_recv_pkts_mark_rss'
/usr/bin/ld: drivers/libtmp_rte_net_cnxk.a.p/net_cnxk_cn10k_rx_select.c.o:(.data+0x50): undefined reference to `cn10k_nix_recv_pkts_mark_ptype'
/usr/bin/ld: drivers/libtmp_rte_net_cnxk.a.p/net_cnxk_cn10k_rx_select.c.o:(.data+0x58): undefined reference to `cn10k_nix_recv_pkts_mark_ptype_rss'
/usr/bin/ld: drivers/libtmp_rte_net_cnxk.a.p/net_cnxk_cn10k_rx_select.c.o:(.data+0x60): undefined reference to `cn10k_nix_recv_pkts_mark_cksum'
/usr/bin/ld: drivers/libtmp_rte_net_cnxk.a.p/net_cnxk_cn10k_rx_select.c.o:(.data+0x68): undefined reference to `cn10k_nix_recv_pkts_mark_cksum_rss'
/usr/bin/ld: drivers/libtmp_rte_net_cnxk.a.p/net_cnxk_cn10k_rx_select.c.o:(.data+0x70): undefined reference to `cn10k_nix_recv_pkts_mark_cksum_ptype'
/usr/bin/ld: drivers/libtmp_rte_net_cnxk.a.p/net_cnxk_cn10k_rx_select.c.o:(.data+0x78): undefined reference to `cn10k_nix_recv_pkts_mark_cksum_ptype_rss'
/usr/bin/ld: drivers/libtmp_rte_net_cnxk.a.p/net_cnxk_cn10k_rx_select.c.o:(.data+0x80): undefined reference to `cn10k_nix_recv_pkts_ts'
/usr/bin/ld: drivers/libtmp_rte_net_cnxk.a.p/net_cnxk_cn10k_rx_select.c.o:(.data+0x88): undefined reference to `cn10k_nix_recv_pkts_ts_rss'
/usr/bin/ld: drivers/libtmp_rte_net_cnxk.a.p/net_cnxk_cn10k_rx_select.c.o:(.data+0x90): undefined reference to `cn10k_nix_recv_pkts_ts_ptype'
/usr/bin/ld: drivers/libtmp_rte_net_cnxk.a.p/net_cnxk_cn10k_rx_select.c.o:(.data+0x98): undefined reference to `cn10k_nix_recv_pkts_ts_ptype_rss'
/usr/bin/ld: drivers/libtmp_rte_net_cnxk.a.p/net_cnxk_cn10k_rx_select.c.o:(.data+0xa0): undefined reference to `cn10k_nix_recv_pkts_ts_cksum'
/usr/bin/ld: drivers/libtmp_rte_net_cnxk.a.p/net_cnxk_cn10k_rx_select.c.o:(.data+0xa8): undefined reference to `cn10k_nix_recv_pkts_ts_cksum_rss'
/usr/bin/ld: drivers/libtmp_rte_net_cnxk.a.p/net_cnxk_cn10k_rx_select.c.o:(.data+0xb0): undefined reference to `cn10k_nix_recv_pkts_ts_cksum_ptype'
^ permalink raw reply related [flat|nested] 8+ messages in thread
* Re: [EXTERNAL] [RFC] net/cnxk: only build if platform is specified
2026-02-25 17:43 ` Stephen Hemminger
@ 2026-02-25 19:30 ` Pavan Nikhilesh Bhagavatula
2026-02-25 22:20 ` Stephen Hemminger
0 siblings, 1 reply; 8+ messages in thread
From: Pavan Nikhilesh Bhagavatula @ 2026-02-25 19:30 UTC (permalink / raw)
To: Stephen Hemminger
Cc: dev@dpdk.org, Nithin Kumar Dabilpuram, Kiran Kumar Kokkilagadda,
Sunil Kumar Kori, Satha Koteswara Rao Kottidi, Harman Kalra
>> >The generic build was building for all SOC types and that
>> >takes a long time (like 10 minutes). The driver should only be
>> >built if soc_type is set to one of the know values.
>> >
>> >Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
>> >---
>> > drivers/net/cnxk/meson.build | 6 ++++--
>> > 1 file changed, 4 insertions(+), 2 deletions(-)
>> >
>> >diff --git a/drivers/net/cnxk/meson.build b/drivers/net/cnxk/meson.build
>> >index 53caa6c171..4a2f4e1a92 100644
>> >--- a/drivers/net/cnxk/meson.build
>> >+++ b/drivers/net/cnxk/meson.build
>> >@@ -14,8 +14,10 @@ else
>> > soc_type = platform
>> > endif
>> >
>> >-if soc_type != 'cn9k' and soc_type != 'cn10k' and soc_type != 'cn20k'
>> >- soc_type = 'all'
>> >+if soc_type != 'cn9k' and soc_type != 'cn10k' and soc_type != 'cn20k' and soc_type != 'all'
>> >+ build = false
>> >+ reason = 'not supported on soc_type ' + soc_type
>> >+ subdir_done()
>> > endif
>>
>> Instead of disabling the build, we can just diable template functions when soc_type is 'all'
>>
>> diff --git a/drivers/event/cnxk/meson.build b/drivers/event/cnxk/meson.build
>> index 24b48d045f..00295246b6 100644
>> --- a/drivers/event/cnxk/meson.build
>> +++ b/drivers/event/cnxk/meson.build
>> @@ -36,6 +36,10 @@ if meson.version().version_compare('>=1.1.0')
>> endif
>> endif
>>
>> +if soc_type == 'all'
>> + disable_template = true
>> +endif
>> +
>> if soc_type == 'cn9k' or soc_type == 'all'
>> sources += files(
>> 'cn9k_eventdev.c',
>> diff --git a/drivers/net/cnxk/meson.build b/drivers/net/cnxk/meson.build
>> index 53caa6c171..9382491ae4 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
>> +endif
>> +
>> +
>> if soc_type == 'cn9k' or soc_type == 'all'
>> # CN9K
>> sources += files(
>>
>>
>> Thanks,
>> Pavan.
>>
>> >
>> > sources = files(
>> >--
>> >2.51.0
>>
>>
>
>
>Good idea, but fails miserably.
My bad, here is the full fix, verified on our arm64 machine with
meson setup build -Dplatform=generic
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..0a6abf998a 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;
+ rte_iova_t c_io_addr = 0;
+ uint8_t shft, c_shft = 0;
__uint128_t data128;
- uint16_t c_lmt_id;
- uint64_t sa_base;
+ uint16_t c_lmt_id = 0;
+ 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 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 = {0};
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/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(
^ permalink raw reply related [flat|nested] 8+ messages in thread
* Re: [EXTERNAL] [RFC] net/cnxk: only build if platform is specified
2026-02-25 19:30 ` Pavan Nikhilesh Bhagavatula
@ 2026-02-25 22:20 ` Stephen Hemminger
2026-02-26 4:50 ` Pavan Nikhilesh Bhagavatula
0 siblings, 1 reply; 8+ messages in thread
From: Stephen Hemminger @ 2026-02-25 22:20 UTC (permalink / raw)
To: Pavan Nikhilesh Bhagavatula
Cc: dev@dpdk.org, Nithin Kumar Dabilpuram, Kiran Kumar Kokkilagadda,
Sunil Kumar Kori, Satha Koteswara Rao Kottidi, Harman Kalra
On Wed, 25 Feb 2026 19:30:45 +0000
Pavan Nikhilesh Bhagavatula <pbhagavatula@marvell.com> 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?
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [EXTERNAL] [RFC] net/cnxk: only build if platform is specified
2026-02-25 22:20 ` Stephen Hemminger
@ 2026-02-26 4:50 ` Pavan Nikhilesh Bhagavatula
2026-02-26 21:16 ` Stephen Hemminger
0 siblings, 1 reply; 8+ messages in thread
From: Pavan Nikhilesh Bhagavatula @ 2026-02-26 4:50 UTC (permalink / raw)
To: Stephen Hemminger
Cc: dev@dpdk.org, Nithin Kumar Dabilpuram, Kiran Kumar Kokkilagadda,
Sunil Kumar Kori, Satha Koteswara Rao Kottidi, Harman Kalra
>> >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.
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [EXTERNAL] [RFC] net/cnxk: only build if platform is specified
2026-02-26 4:50 ` Pavan Nikhilesh Bhagavatula
@ 2026-02-26 21:16 ` Stephen Hemminger
2026-02-27 13:03 ` Pavan Nikhilesh Bhagavatula
0 siblings, 1 reply; 8+ messages in thread
From: Stephen Hemminger @ 2026-02-26 21:16 UTC (permalink / raw)
To: Pavan Nikhilesh Bhagavatula
Cc: dev@dpdk.org, Nithin Kumar Dabilpuram, Kiran Kumar Kokkilagadda,
Sunil Kumar Kori, Satha Koteswara Rao Kottidi, Harman Kalra
On Thu, 26 Feb 2026 04:50:01 +0000
Pavan Nikhilesh Bhagavatula <pbhagavatula@marvell.com> 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
^ permalink raw reply related [flat|nested] 8+ messages in thread
* Re: [EXTERNAL] [RFC] net/cnxk: only build if platform is specified
2026-02-26 21:16 ` Stephen Hemminger
@ 2026-02-27 13:03 ` Pavan Nikhilesh Bhagavatula
0 siblings, 0 replies; 8+ messages in thread
From: Pavan Nikhilesh Bhagavatula @ 2026-02-27 13:03 UTC (permalink / raw)
To: Stephen Hemminger
Cc: dev@dpdk.org, Nithin Kumar Dabilpuram, Kiran Kumar Kokkilagadda,
Sunil Kumar Kori, Satha Koteswara Rao Kottidi, Harman Kalra
>> >> >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:
Would you update the patch to include these changes? Or should I send a new one?
Thanks,
Pavan.
^ permalink raw reply [flat|nested] 8+ messages in thread
end of thread, other threads:[~2026-02-27 13:03 UTC | newest]
Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-02-24 20:37 [RFC] net/cnxk: only build if platform is specified Stephen Hemminger
2026-02-25 8:01 ` [EXTERNAL] " Pavan Nikhilesh Bhagavatula
2026-02-25 17:43 ` Stephen Hemminger
2026-02-25 19:30 ` Pavan Nikhilesh Bhagavatula
2026-02-25 22:20 ` Stephen Hemminger
2026-02-26 4:50 ` Pavan Nikhilesh Bhagavatula
2026-02-26 21:16 ` Stephen Hemminger
2026-02-27 13:03 ` Pavan Nikhilesh Bhagavatula
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox