[v5,8/8] net/igc: refine debug build option
Checks
Commit Message
1. replace RTE_LIBRTE_IGC_DEBUG_RX with RTE_ETHDEV_DEBUG_RX.
2. replace RTE_LIBRTE_IGC_DEBUG_TX whth RTE_ETHDEV_DEBUG_TX.
3. merge RTE_LIBRTE_ETHDEV_DEBUG into RTE_ETHDEV_DEBUG_TX
Signed-off-by: Qi Zhang <qi.z.zhang@intel.com>
---
drivers/net/igc/igc_logs.h | 4 ++--
drivers/net/igc/igc_txrx.c | 2 +-
2 files changed, 3 insertions(+), 3 deletions(-)
Comments
On 3/23/2021 11:07 AM, Qi Zhang wrote:
> 1. replace RTE_LIBRTE_IGC_DEBUG_RX with RTE_ETHDEV_DEBUG_RX.
> 2. replace RTE_LIBRTE_IGC_DEBUG_TX whth RTE_ETHDEV_DEBUG_TX.
> 3. merge RTE_LIBRTE_ETHDEV_DEBUG into RTE_ETHDEV_DEBUG_TX
>
> Signed-off-by: Qi Zhang <qi.z.zhang@intel.com>
CI is reporting a build error [1], I don't reproduce the error and I assume it
is false positive but can you please check it?
Also cc'ed Zhaoyan & Aaron for the possible CI issue.
[1]
http://mails.dpdk.org/archives/test-report/2021-March/184153.html
On Wed, Mar 24, 2021 at 8:27 PM Ferruh Yigit <ferruh.yigit@intel.com> wrote:
>
> On 3/23/2021 11:07 AM, Qi Zhang wrote:
> > 1. replace RTE_LIBRTE_IGC_DEBUG_RX with RTE_ETHDEV_DEBUG_RX.
> > 2. replace RTE_LIBRTE_IGC_DEBUG_TX whth RTE_ETHDEV_DEBUG_TX.
> > 3. merge RTE_LIBRTE_ETHDEV_DEBUG into RTE_ETHDEV_DEBUG_TX
> >
> > Signed-off-by: Qi Zhang <qi.z.zhang@intel.com>
>
> CI is reporting a build error [1], I don't reproduce the error and I assume it
> is false positive but can you please check it?
>
> Also cc'ed Zhaoyan & Aaron for the possible CI issue.
>
> [1]
> http://mails.dpdk.org/archives/test-report/2021-March/184153.html
>
Not sure what gcc+debug target is, but I guess it passes the old config item.
The compat stuff should be placed in rte_config.h (or something
similar to config/rte_compatibility_defines.h) and not in
lib/librte_ethdev/rte_ethdev.h.
To reproduce:
$ meson configure $HOME/builds/build-gcc-static/
-Dc_args="-DRTE_LIBRTE_ETHDEV_DEBUG=1"
$ ./devtools/test-meson-builds.sh
...
FAILED: drivers/librte_net_e1000.so.21.2
gcc -o drivers/librte_net_e1000.so.21.2
drivers/librte_net_e1000.so.21.2.p/meson-generated_.._rte_net_e1000.pmd.c.o
drivers/net/e1000/base/libe1000_base.a.p/e1000_base.c.o
drivers/net/e1000/base/libe1000_base.a.p/e1000_80003es2lan.c.o
drivers/net/e1000/base/libe1000_base.a.p/e1000_82540.c.o
drivers/net/e1000/base/libe1000_base.a.p/e1000_82541.c.o
drivers/net/e1000/base/libe1000_base.a.p/e1000_82542.c.o
drivers/net/e1000/base/libe1000_base.a.p/e1000_82543.c.o
drivers/net/e1000/base/libe1000_base.a.p/e1000_82571.c.o
drivers/net/e1000/base/libe1000_base.a.p/e1000_82575.c.o
drivers/net/e1000/base/libe1000_base.a.p/e1000_api.c.o
drivers/net/e1000/base/libe1000_base.a.p/e1000_i210.c.o
drivers/net/e1000/base/libe1000_base.a.p/e1000_ich8lan.c.o
drivers/net/e1000/base/libe1000_base.a.p/e1000_mac.c.o
drivers/net/e1000/base/libe1000_base.a.p/e1000_manage.c.o
drivers/net/e1000/base/libe1000_base.a.p/e1000_mbx.c.o
drivers/net/e1000/base/libe1000_base.a.p/e1000_nvm.c.o
drivers/net/e1000/base/libe1000_base.a.p/e1000_osdep.c.o
drivers/net/e1000/base/libe1000_base.a.p/e1000_phy.c.o
drivers/net/e1000/base/libe1000_base.a.p/e1000_vf.c.o
drivers/libtmp_rte_net_e1000.a.p/net_e1000_e1000_logs.c.o
drivers/libtmp_rte_net_e1000.a.p/net_e1000_em_ethdev.c.o
drivers/libtmp_rte_net_e1000.a.p/net_e1000_em_rxtx.c.o
drivers/libtmp_rte_net_e1000.a.p/net_e1000_igb_ethdev.c.o
drivers/libtmp_rte_net_e1000.a.p/net_e1000_igb_flow.c.o
drivers/libtmp_rte_net_e1000.a.p/net_e1000_igb_pf.c.o
drivers/libtmp_rte_net_e1000.a.p/net_e1000_igb_rxtx.c.o
-I/home/dmarchan/intel-ipsec-mb/install/include
-L/home/dmarchan/intel-ipsec-mb/install/lib -Wl,--as-needed
-Wl,--no-undefined -shared -fPIC -Wl,--start-group
-Wl,-soname,librte_net_e1000.so.21 -Wl,--no-as-needed -pthread -lm
-ldl -lnuma -lfdt lib/librte_ethdev.so.21.2 lib/librte_eal.so.21.2
lib/librte_kvargs.so.21.2 lib/librte_telemetry.so.21.2
lib/librte_net.so.21.2 lib/librte_mbuf.so.21.2
lib/librte_mempool.so.21.2 lib/librte_ring.so.21.2
lib/librte_meter.so.21.2 drivers/librte_bus_pci.so.21.2
lib/librte_pci.so.21.2 drivers/librte_bus_vdev.so.21.2
-Wl,--version-script=/home/dmarchan/dpdk/drivers/net/e1000/version.map
/usr/lib64/libbsd.so -Wl,--end-group
'-Wl,-rpath,$ORIGIN/../lib:$ORIGIN/'
-Wl,-rpath-link,/home/dmarchan/builds/build-gcc-static/lib
-Wl,-rpath-link,/home/dmarchan/builds/build-gcc-static/drivers
/usr/bin/ld: drivers/libtmp_rte_net_e1000.a.p/net_e1000_em_rxtx.c.o:
in function `eth_em_xmit_pkts':
/home/dmarchan/builds/build-gcc-static/../../dpdk/drivers/net/e1000/em_rxtx.c:400:
undefined reference to `e1000_logtype_tx'
/usr/bin/ld: drivers/libtmp_rte_net_e1000.a.p/net_e1000_em_rxtx.c.o:
in function `rte_prefetch0':
/home/dmarchan/builds/build-gcc-static/../../dpdk/lib/librte_eal/x86/include/rte_prefetch.h:17:
undefined reference to `e1000_logtype_tx'
/usr/bin/ld: drivers/libtmp_rte_net_e1000.a.p/net_e1000_em_rxtx.c.o:
in function `em_xmit_cleanup':
/home/dmarchan/builds/build-gcc-static/../../dpdk/drivers/net/e1000/em_rxtx.c:314:
undefined reference to `e1000_logtype_tx'
/usr/bin/ld: drivers/libtmp_rte_net_e1000.a.p/net_e1000_em_rxtx.c.o:
in function `eth_em_recv_pkts':
/home/dmarchan/builds/build-gcc-static/../../dpdk/drivers/net/e1000/em_rxtx.c:743:
undefined reference to `e1000_logtype_rx'
/usr/bin/ld: /home/dmarchan/builds/build-gcc-static/../../dpdk/drivers/net/e1000/em_rxtx.c:751:
undefined reference to `e1000_logtype_rx'
/usr/bin/ld: /home/dmarchan/builds/build-gcc-static/../../dpdk/drivers/net/e1000/em_rxtx.c:836:
undefined reference to `e1000_logtype_rx'
/usr/bin/ld: drivers/libtmp_rte_net_e1000.a.p/net_e1000_em_rxtx.c.o:
in function `eth_em_recv_scattered_pkts':
/home/dmarchan/builds/build-gcc-static/../../dpdk/drivers/net/e1000/em_rxtx.c:923:
undefined reference to `e1000_logtype_rx'
/usr/bin/ld: /home/dmarchan/builds/build-gcc-static/../../dpdk/drivers/net/e1000/em_rxtx.c:931:
undefined reference to `e1000_logtype_rx'
/usr/bin/ld: drivers/libtmp_rte_net_e1000.a.p/net_e1000_em_rxtx.c.o:/home/dmarchan/builds/build-gcc-static/../../dpdk/drivers/net/e1000/em_rxtx.c:1081:
more undefined references to `e1000_logtype_rx' follow
/usr/bin/ld: drivers/libtmp_rte_net_e1000.a.p/net_e1000_igb_rxtx.c.o:
in function `eth_igb_xmit_pkts':
/home/dmarchan/builds/build-gcc-static/../../dpdk/drivers/net/e1000/igb_rxtx.c:409:
undefined reference to `e1000_logtype_tx'
/usr/bin/ld: drivers/libtmp_rte_net_e1000.a.p/net_e1000_igb_rxtx.c.o:
in function `rte_prefetch0':
/home/dmarchan/builds/build-gcc-static/../../dpdk/lib/librte_eal/x86/include/rte_prefetch.h:17:
undefined reference to `e1000_logtype_tx'
/usr/bin/ld: drivers/libtmp_rte_net_e1000.a.p/net_e1000_igb_rxtx.c.o:
in function `eth_igb_recv_pkts':
/home/dmarchan/builds/build-gcc-static/../../dpdk/drivers/net/e1000/igb_rxtx.c:871:
undefined reference to `e1000_logtype_rx'
/usr/bin/ld: /home/dmarchan/builds/build-gcc-static/../../dpdk/drivers/net/e1000/igb_rxtx.c:879:
undefined reference to `e1000_logtype_rx'
/usr/bin/ld: /home/dmarchan/builds/build-gcc-static/../../dpdk/drivers/net/e1000/igb_rxtx.c:974:
undefined reference to `e1000_logtype_rx'
/usr/bin/ld: drivers/libtmp_rte_net_e1000.a.p/net_e1000_igb_rxtx.c.o:
in function `eth_igb_recv_scattered_pkts':
/home/dmarchan/builds/build-gcc-static/../../dpdk/drivers/net/e1000/igb_rxtx.c:1062:
undefined reference to `e1000_logtype_rx'
/usr/bin/ld: /home/dmarchan/builds/build-gcc-static/../../dpdk/drivers/net/e1000/igb_rxtx.c:1070:
undefined reference to `e1000_logtype_rx'
/usr/bin/ld: drivers/libtmp_rte_net_e1000.a.p/net_e1000_igb_rxtx.c.o:/home/dmarchan/builds/build-gcc-static/../../dpdk/drivers/net/e1000/igb_rxtx.c:1236:
more undefined references to `e1000_logtype_rx' follow
collect2: error: ld returned 1 exit status
[1113/2466] Compiling C object
lib/librte_pipeline.a.p/librte_pipeline_rte_table_action.c.o
On 3/24/2021 8:31 PM, David Marchand wrote:
> On Wed, Mar 24, 2021 at 8:27 PM Ferruh Yigit <ferruh.yigit@intel.com> wrote:
>>
>> On 3/23/2021 11:07 AM, Qi Zhang wrote:
>>> 1. replace RTE_LIBRTE_IGC_DEBUG_RX with RTE_ETHDEV_DEBUG_RX.
>>> 2. replace RTE_LIBRTE_IGC_DEBUG_TX whth RTE_ETHDEV_DEBUG_TX.
>>> 3. merge RTE_LIBRTE_ETHDEV_DEBUG into RTE_ETHDEV_DEBUG_TX
>>>
>>> Signed-off-by: Qi Zhang <qi.z.zhang@intel.com>
>>
>> CI is reporting a build error [1], I don't reproduce the error and I assume it
>> is false positive but can you please check it?
>>
>> Also cc'ed Zhaoyan & Aaron for the possible CI issue.
>>
>> [1]
>> http://mails.dpdk.org/archives/test-report/2021-March/184153.html
>>
>
> Not sure what gcc+debug target is, but I guess it passes the old config item.
> The compat stuff should be placed in rte_config.h (or something
> similar to config/rte_compatibility_defines.h) and not in
> lib/librte_ethdev/rte_ethdev.h.
>
> To reproduce:
> $ meson configure $HOME/builds/build-gcc-static/
> -Dc_args="-DRTE_LIBRTE_ETHDEV_DEBUG=1"
> $ ./devtools/test-meson-builds.sh
Thanks for the steps, I can reproduce it. The alias is not working because
'rte_ethdev.h' where the alias is defined is not included in this path.
Following update should fix it, what do you think?
diff --git a/drivers/net/e1000/base/meson.build
b/drivers/net/e1000/base/meson.build
index d13f693d3eb8..a9f92cbc4770 100644
--- a/drivers/net/e1000/base/meson.build
+++ b/drivers/net/e1000/base/meson.build
@@ -33,6 +33,6 @@ foreach flag: error_cflags
endforeach
base_lib = static_library('e1000_base', sources,
- dependencies: static_rte_eal,
+ dependencies: [static_rte_eal,static_rte_ethdev],
c_args: c_args)
base_objs = base_lib.extract_all_objects()
diff --git a/drivers/net/e1000/e1000_logs.h b/drivers/net/e1000/e1000_logs.h
index 86f546b0f9ed..210c3447c66c 100644
--- a/drivers/net/e1000/e1000_logs.h
+++ b/drivers/net/e1000/e1000_logs.h
@@ -7,6 +7,9 @@
#include <rte_log.h>
+/* included because of RTE_LIBRTE_ETHDEV_DEBUG alias */
+#include <rte_ethdev.h>
+
extern int e1000_logtype_init;
#define PMD_INIT_LOG(level, fmt, args...) \
On 3/25/2021 3:43 PM, Ferruh Yigit wrote:
> On 3/24/2021 8:31 PM, David Marchand wrote:
>> On Wed, Mar 24, 2021 at 8:27 PM Ferruh Yigit <ferruh.yigit@intel.com> wrote:
>>>
>>> On 3/23/2021 11:07 AM, Qi Zhang wrote:
>>>> 1. replace RTE_LIBRTE_IGC_DEBUG_RX with RTE_ETHDEV_DEBUG_RX.
>>>> 2. replace RTE_LIBRTE_IGC_DEBUG_TX whth RTE_ETHDEV_DEBUG_TX.
>>>> 3. merge RTE_LIBRTE_ETHDEV_DEBUG into RTE_ETHDEV_DEBUG_TX
>>>>
>>>> Signed-off-by: Qi Zhang <qi.z.zhang@intel.com>
>>>
>>> CI is reporting a build error [1], I don't reproduce the error and I assume it
>>> is false positive but can you please check it?
>>>
>>> Also cc'ed Zhaoyan & Aaron for the possible CI issue.
>>>
>>> [1]
>>> http://mails.dpdk.org/archives/test-report/2021-March/184153.html
>>>
>>
>> Not sure what gcc+debug target is, but I guess it passes the old config item.
>> The compat stuff should be placed in rte_config.h (or something
>> similar to config/rte_compatibility_defines.h) and not in
>> lib/librte_ethdev/rte_ethdev.h.
>>
>> To reproduce:
>> $ meson configure $HOME/builds/build-gcc-static/
>> -Dc_args="-DRTE_LIBRTE_ETHDEV_DEBUG=1"
>> $ ./devtools/test-meson-builds.sh
>
> Thanks for the steps, I can reproduce it. The alias is not working because
> 'rte_ethdev.h' where the alias is defined is not included in this path.
>
> Following update should fix it, what do you think?
>
>
> diff --git a/drivers/net/e1000/base/meson.build
> b/drivers/net/e1000/base/meson.build
> index d13f693d3eb8..a9f92cbc4770 100644
> --- a/drivers/net/e1000/base/meson.build
> +++ b/drivers/net/e1000/base/meson.build
> @@ -33,6 +33,6 @@ foreach flag: error_cflags
> endforeach
>
> base_lib = static_library('e1000_base', sources,
> - dependencies: static_rte_eal,
> + dependencies: [static_rte_eal,static_rte_ethdev],
> c_args: c_args)
> base_objs = base_lib.extract_all_objects()
> diff --git a/drivers/net/e1000/e1000_logs.h b/drivers/net/e1000/e1000_logs.h
> index 86f546b0f9ed..210c3447c66c 100644
> --- a/drivers/net/e1000/e1000_logs.h
> +++ b/drivers/net/e1000/e1000_logs.h
> @@ -7,6 +7,9 @@
>
> #include <rte_log.h>
>
> +/* included because of RTE_LIBRTE_ETHDEV_DEBUG alias */
> +#include <rte_ethdev.h>
> +
> extern int e1000_logtype_init;
>
> #define PMD_INIT_LOG(level, fmt, args...) \
Hi Qi,
Can you make a new version with above fix if it makes sense?
@@ -20,14 +20,14 @@ extern int igc_logtype_driver;
#define PMD_INIT_FUNC_TRACE() PMD_INIT_LOG(DEBUG, " >>")
-#ifdef RTE_LIBRTE_IGC_DEBUG_RX
+#ifdef RTE_ETHDEV_DEBUG_RX
#define PMD_RX_LOG(level, fmt, args...) \
RTE_LOG(level, PMD, "%s(): " fmt "\n", __func__, ## args)
#else
#define PMD_RX_LOG(level, fmt, args...) do { } while (0)
#endif
-#ifdef RTE_LIBRTE_IGC_DEBUG_TX
+#ifdef RTE_ETHDEV_DEBUG_TX
#define PMD_TX_LOG(level, fmt, args...) \
RTE_LOG(level, PMD, "%s(): " fmt "\n", __func__, ## args)
#else
@@ -1434,7 +1434,7 @@ eth_igc_prep_pkts(__rte_unused void *tx_queue, struct rte_mbuf **tx_pkts,
return i;
}
-#ifdef RTE_LIBRTE_ETHDEV_DEBUG
+#ifdef RTE_ETHDEV_DEBUG_TX
ret = rte_validate_tx_offload(m);
if (ret != 0) {
rte_errno = -ret;