<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<body>
<div><br>
</div>
Acked-by: Nithin Dabilpuram <ndabilpuram@marvell.com><br>
<div></div>
<br>
<hr style="display:inline-block;width:98%" tabindex="-1">
<div id="divRplyFwdMsg" dir="ltr"><font face="Calibri, sans-serif" style="font-size: 11pt;" color="#000000" data-ogsc=""><b>From:</b> jerinj@marvell.com <jerinj@marvell.com><br>
<b>Sent:</b> Monday, May 29, 2023 2:53 PM<br>
<b>To:</b> dev@dpdk.org <dev@dpdk.org>; Pavan Nikhilesh Bhagavatula <pbhagavatula@marvell.com>; Shijith Thotton <sthotton@marvell.com>; Nithin Kumar Dabilpuram <ndabilpuram@marvell.com>; Kiran Kumar Kokkilagadda <kirankumark@marvell.com>; Sunil Kumar Kori <skori@marvell.com>;
Satha Koteswara Rao Kottidi <skoteshwar@marvell.com><br>
<b>Cc:</b> Jerin Jacob Kollanukkaran <jerinj@marvell.com><br>
<b>Subject:</b> [dpdk-dev] [PATCH v1] drivers/cnxk: improve the build time for non arm64 build</font>
<div> </div>
</div>
<div class="BodyFragment"><font size="2"><span style="font-size:11pt;">
<div class="PlainText">From: Jerin Jacob <jerinj@marvell.com><br>
<br>
Specialized fast path routines are not applicable to non<br>
arm64 build, removing those function contained<br>
files to improve the build time on non arm64 build.<br>
<br>
Signed-off-by: Jerin Jacob <jerinj@marvell.com><br>
---<br>
drivers/event/cnxk/cn10k_eventdev.c | 5 +++++<br>
drivers/event/cnxk/cn9k_eventdev.c | 4 ++++<br>
drivers/event/cnxk/meson.build | 10 ++++++++++<br>
drivers/net/cnxk/cn10k_rx_select.c | 6 +++++-<br>
drivers/net/cnxk/cn10k_tx_select.c | 6 +++++-<br>
drivers/net/cnxk/cn9k_rx_select.c | 6 +++++-<br>
drivers/net/cnxk/cn9k_tx_select.c | 6 +++++-<br>
drivers/net/cnxk/meson.build | 4 ++++<br>
8 files changed, 43 insertions(+), 4 deletions(-)<br>
<br>
diff --git a/drivers/event/cnxk/cn10k_eventdev.c b/drivers/event/cnxk/cn10k_eventdev.c<br>
index fd71ff15ca..a7534efad6 100644<br>
--- a/drivers/event/cnxk/cn10k_eventdev.c<br>
+++ b/drivers/event/cnxk/cn10k_eventdev.c<br>
@@ -297,7 +297,9 @@ cn10k_sso_updt_tx_adptr_data(const struct rte_eventdev *event_dev)<br>
static void<br>
cn10k_sso_fp_fns_set(struct rte_eventdev *event_dev)<br>
{<br>
+#if defined(RTE_ARCH_ARM64)<br>
struct cnxk_sso_evdev *dev = cnxk_sso_pmd_priv(event_dev);<br>
+<br>
struct roc_cpt *cpt = roc_idev_cpt_get();<br>
const event_dequeue_t sso_hws_deq[NIX_RX_OFFLOAD_MAX] = {<br>
#define R(name, flags)[flags] = cn10k_sso_hws_deq_##name,<br>
@@ -614,6 +616,9 @@ cn10k_sso_fp_fns_set(struct rte_eventdev *event_dev)<br>
CN10K_SET_EVDEV_ENQ_OP(dev, event_dev->txa_enqueue, sso_hws_tx_adptr_enq);<br>
<br>
event_dev->txa_enqueue_same_dest = event_dev->txa_enqueue;<br>
+#else<br>
+ RTE_SET_USED(event_dev);<br>
+#endif<br>
}<br>
<br>
static void<br>
diff --git a/drivers/event/cnxk/cn9k_eventdev.c b/drivers/event/cnxk/cn9k_eventdev.c<br>
index b104d19b9b..0656940726 100644<br>
--- a/drivers/event/cnxk/cn9k_eventdev.c<br>
+++ b/drivers/event/cnxk/cn9k_eventdev.c<br>
@@ -309,6 +309,7 @@ cn9k_sso_updt_tx_adptr_data(const struct rte_eventdev *event_dev)<br>
static void<br>
cn9k_sso_fp_fns_set(struct rte_eventdev *event_dev)<br>
{<br>
+#if defined(RTE_ARCH_ARM64)<br>
struct cnxk_sso_evdev *dev = cnxk_sso_pmd_priv(event_dev);<br>
/* Single WS modes */<br>
const event_dequeue_t sso_hws_deq[NIX_RX_OFFLOAD_MAX] = {<br>
@@ -662,6 +663,9 @@ cn9k_sso_fp_fns_set(struct rte_eventdev *event_dev)<br>
<br>
event_dev->txa_enqueue_same_dest = event_dev->txa_enqueue;<br>
rte_mb();<br>
+#else<br>
+ RTE_SET_USED(event_dev);<br>
+#endif<br>
}<br>
<br>
static void *<br>
diff --git a/drivers/event/cnxk/meson.build b/drivers/event/cnxk/meson.build<br>
index 8a7fd53ebd..4f259988df 100644<br>
--- a/drivers/event/cnxk/meson.build<br>
+++ b/drivers/event/cnxk/meson.build<br>
@@ -31,6 +31,10 @@ if soc_type == 'cn9k' or soc_type == 'all'<br>
sources += files(<br>
'cn9k_eventdev.c',<br>
'cn9k_worker.c',<br>
+)<br>
+<br>
+if host_machine.cpu_family().startswith('aarch')<br>
+sources += files(<br>
'deq/cn9k/deq_0_15_burst.c',<br>
'deq/cn9k/deq_16_31_burst.c',<br>
'deq/cn9k/deq_32_47_burst.c',<br>
@@ -330,11 +334,16 @@ sources += files(<br>
'tx/cn9k/tx_112_127_dual_seg.c',<br>
)<br>
endif<br>
+endif<br>
<br>
if soc_type == 'cn10k' or soc_type == 'all'<br>
sources += files(<br>
'cn10k_eventdev.c',<br>
'cn10k_worker.c',<br>
+)<br>
+<br>
+if host_machine.cpu_family().startswith('aarch')<br>
+sources += files(<br>
'deq/cn10k/deq_0_15_burst.c',<br>
'deq/cn10k/deq_16_31_burst.c',<br>
'deq/cn10k/deq_32_47_burst.c',<br>
@@ -484,6 +493,7 @@ sources += files(<br>
'tx/cn10k/tx_112_127_seg.c',<br>
)<br>
endif<br>
+endif<br>
<br>
extra_flags = ['-flax-vector-conversions', '-Wno-strict-aliasing']<br>
foreach flag: extra_flags<br>
diff --git a/drivers/net/cnxk/cn10k_rx_select.c b/drivers/net/cnxk/cn10k_rx_select.c<br>
index 1e0de1b7ac..1d44f2924e 100644<br>
--- a/drivers/net/cnxk/cn10k_rx_select.c<br>
+++ b/drivers/net/cnxk/cn10k_rx_select.c<br>
@@ -5,7 +5,7 @@<br>
#include "cn10k_ethdev.h"<br>
#include "cn10k_rx.h"<br>
<br>
-static inline void<br>
+static __rte_used void<br>
pick_rx_func(struct rte_eth_dev *eth_dev,<br>
const eth_rx_burst_t rx_burst[NIX_RX_OFFLOAD_MAX])<br>
{<br>
@@ -25,6 +25,7 @@ pick_rx_func(struct rte_eth_dev *eth_dev,<br>
void<br>
cn10k_eth_set_rx_function(struct rte_eth_dev *eth_dev)<br>
{<br>
+#if defined(RTE_ARCH_ARM64)<br>
struct cnxk_eth_dev *dev = cnxk_eth_pmd_priv(eth_dev);<br>
<br>
const eth_rx_burst_t nix_eth_rx_burst[NIX_RX_OFFLOAD_MAX] = {<br>
@@ -111,4 +112,7 @@ cn10k_eth_set_rx_function(struct rte_eth_dev *eth_dev)<br>
return pick_rx_func(eth_dev, nix_eth_rx_vec_burst_reas);<br>
else<br>
return pick_rx_func(eth_dev, nix_eth_rx_vec_burst);<br>
+#else<br>
+ RTE_SET_USED(eth_dev);<br>
+#endif<br>
}<br>
diff --git a/drivers/net/cnxk/cn10k_tx_select.c b/drivers/net/cnxk/cn10k_tx_select.c<br>
index 54023c4234..404f5ba979 100644<br>
--- a/drivers/net/cnxk/cn10k_tx_select.c<br>
+++ b/drivers/net/cnxk/cn10k_tx_select.c<br>
@@ -5,7 +5,7 @@<br>
#include "cn10k_ethdev.h"<br>
#include "cn10k_tx.h"<br>
<br>
-static inline void<br>
+static __rte_used inline void<br>
pick_tx_func(struct rte_eth_dev *eth_dev,<br>
const eth_tx_burst_t tx_burst[NIX_TX_OFFLOAD_MAX])<br>
{<br>
@@ -23,6 +23,7 @@ pick_tx_func(struct rte_eth_dev *eth_dev,<br>
void<br>
cn10k_eth_set_tx_function(struct rte_eth_dev *eth_dev)<br>
{<br>
+#if defined(RTE_ARCH_ARM64)<br>
struct cnxk_eth_dev *dev = cnxk_eth_pmd_priv(eth_dev);<br>
<br>
const eth_tx_burst_t nix_eth_tx_burst[NIX_TX_OFFLOAD_MAX] = {<br>
@@ -64,4 +65,7 @@ cn10k_eth_set_tx_function(struct rte_eth_dev *eth_dev)<br>
}<br>
<br>
rte_mb();<br>
+#else<br>
+ RTE_SET_USED(eth_dev);<br>
+#endif<br>
}<br>
diff --git a/drivers/net/cnxk/cn9k_rx_select.c b/drivers/net/cnxk/cn9k_rx_select.c<br>
index 79f171fcc3..05bc33ce6a 100644<br>
--- a/drivers/net/cnxk/cn9k_rx_select.c<br>
+++ b/drivers/net/cnxk/cn9k_rx_select.c<br>
@@ -5,7 +5,7 @@<br>
#include "cn9k_ethdev.h"<br>
#include "cn9k_rx.h"<br>
<br>
-static inline void<br>
+static __rte_used void<br>
pick_rx_func(struct rte_eth_dev *eth_dev,<br>
const eth_rx_burst_t rx_burst[NIX_RX_OFFLOAD_MAX])<br>
{<br>
@@ -25,6 +25,7 @@ pick_rx_func(struct rte_eth_dev *eth_dev,<br>
void<br>
cn9k_eth_set_rx_function(struct rte_eth_dev *eth_dev)<br>
{<br>
+#if defined(RTE_ARCH_ARM64)<br>
struct cnxk_eth_dev *dev = cnxk_eth_pmd_priv(eth_dev);<br>
<br>
const eth_rx_burst_t nix_eth_rx_burst[NIX_RX_OFFLOAD_MAX] = {<br>
@@ -68,4 +69,7 @@ cn9k_eth_set_rx_function(struct rte_eth_dev *eth_dev)<br>
if (dev->rx_offloads & RTE_ETH_RX_OFFLOAD_SCATTER)<br>
return pick_rx_func(eth_dev, nix_eth_rx_vec_burst_mseg);<br>
return pick_rx_func(eth_dev, nix_eth_rx_vec_burst);<br>
+#else<br>
+ RTE_SET_USED(eth_dev);<br>
+#endif<br>
}<br>
diff --git a/drivers/net/cnxk/cn9k_tx_select.c b/drivers/net/cnxk/cn9k_tx_select.c<br>
index 62beb1bf38..e08883f032 100644<br>
--- a/drivers/net/cnxk/cn9k_tx_select.c<br>
+++ b/drivers/net/cnxk/cn9k_tx_select.c<br>
@@ -5,7 +5,7 @@<br>
#include "cn9k_ethdev.h"<br>
#include "cn9k_tx.h"<br>
<br>
-static inline void<br>
+static __rte_used void<br>
pick_tx_func(struct rte_eth_dev *eth_dev,<br>
const eth_tx_burst_t tx_burst[NIX_TX_OFFLOAD_MAX])<br>
{<br>
@@ -23,6 +23,7 @@ pick_tx_func(struct rte_eth_dev *eth_dev,<br>
void<br>
cn9k_eth_set_tx_function(struct rte_eth_dev *eth_dev)<br>
{<br>
+#if defined(RTE_ARCH_ARM64)<br>
struct cnxk_eth_dev *dev = cnxk_eth_pmd_priv(eth_dev);<br>
<br>
const eth_tx_burst_t nix_eth_tx_burst[NIX_TX_OFFLOAD_MAX] = {<br>
@@ -60,4 +61,7 @@ cn9k_eth_set_tx_function(struct rte_eth_dev *eth_dev)<br>
}<br>
<br>
rte_mb();<br>
+#else<br>
+ RTE_SET_USED(eth_dev);<br>
+#endif<br>
}<br>
diff --git a/drivers/net/cnxk/meson.build b/drivers/net/cnxk/meson.build<br>
index 62b8bb90fb..394d3d01f4 100644<br>
--- a/drivers/net/cnxk/meson.build<br>
+++ b/drivers/net/cnxk/meson.build<br>
@@ -45,6 +45,7 @@ sources += files(<br>
'cn9k_tx_select.c',<br>
)<br>
<br>
+if host_machine.cpu_family().startswith('aarch')<br>
sources += files(<br>
'rx/cn9k/rx_0_15.c',<br>
'rx/cn9k/rx_16_31.c',<br>
@@ -115,6 +116,7 @@ sources += files(<br>
'tx/cn9k/tx_112_127_vec_mseg.c',<br>
)<br>
endif<br>
+endif<br>
<br>
if soc_type == 'cn10k' or soc_type == 'all'<br>
# CN10K<br>
@@ -126,6 +128,7 @@ sources += files(<br>
'cn10k_tx_select.c',<br>
)<br>
<br>
+if host_machine.cpu_family().startswith('aarch')<br>
sources += files(<br>
'rx/cn10k/rx_0_15.c',<br>
'rx/cn10k/rx_16_31.c',<br>
@@ -196,6 +199,7 @@ sources += files(<br>
'tx/cn10k/tx_112_127_vec_mseg.c',<br>
)<br>
endif<br>
+endif<br>
<br>
deps += ['bus_pci', 'cryptodev', 'eventdev', 'security']<br>
deps += ['common_cnxk', 'mempool_cnxk']<br>
-- <br>
2.40.1<br>
<br>
</div>
</span></font></div>
</body>
</html>