Re: Can not init NIC after merge to DPDK 1.7 problem

From: Sanford, Robert <hidden>
Date: 2014-09-23 21:50:35

We ran into a similar problem when migrating to 1.7.
Here are the subtle flags, in dpdk/mk/rte.app.mk, that we needed:

	LDLIBS += --whole-archive
	...
	LDLIBS += --no-whole-archive

This apparently tells the linker to pull in whole archive(s), even if it
thinks that we don't need all objects.




--
Regards,
Robert

Hi:

We are using our own Makefile in building dpdk program. Recently we are
working on upgrading from DPDK 1.3 to DPDK 1.7. I found the
rte_ixgbe_pmd_init has been replaced by PMD_REGISTER_DRIVER. So I delete
rte_ixgbe_pmd_init calls. But after that, our dpdk program could not
correctly find the NIC anymore. After digging into it a little more, I
found the code dose not correctly register the driver type we are using,
which is ixgbe.
To isolate the problem, I hacked a smal example l3fwd, and only have the
main.c file like this for my testing purpose.

#include <rte_config.h>
#include <rte_eal.h>

#include "main.h"

int
MAIN(int argc, char **argv)
{
       /* init EAL */
       int ret = rte_eal_init(argc, argv);
       printf("ret %d\n", ret);
       return 0;
}

I found if I use the Makefile provided in the example, the program will
find the ixgbe NIC. But if I just use these 2 commands to compile and
link it. It will not find the ixgbe NIC.

gcc -I../../x86_64-native-linuxapp-gcc/include
-L../../x86_64-native-linuxapp-gcc/lib -lrte_eal -c main.c
gcc -o l3fwd main.o -L../../x86_64-native-linuxapp-gcc/lib -lrte_eal
-lrte_distributor -lrte_pipeline -lrte_port -lrte_timer -lrte_hash
-lrte_acl -lm -lrt -lrte_mbuf -lethdev -lrte_malloc -lrte_mempool
-lrte_ring -lc -lm -lrte_cmdline -lrte_cfgfile -lrte_pmd_bond
-lrte_pmd_ixgbe -lrte_pmd_e1000 -lrte_pmd_ring -lpthread -ldl -lrt

Can someone share some light on what is magic of the dpdk Makefile to
correctly register the NIC type?

Thank you so much.
Xingbo Wang
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help