Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

DPVS segfaults at rte_eth_rx_burst with DPDK 18.11, but works fine with 17.11 #703

Open
anshulthakur opened this issue Jan 18, 2021 · 1 comment

Comments

@anshulthakur
Copy link

anshulthakur commented Jan 18, 2021

Hi,

While running DPVS with DPDK 18.11 stable (Ubuntu 18.04 machine), the following trace is seen when the lcores start their poll loop:

0x0000555555a535a9 in rte_eth_rx_burst (port_id=0, queue_id=0, rx_pkts=0x55555645eb10 <lcore_conf+144>, nb_pkts=32)
    at /home/anshul/loadbalancer/dpdk-stable-18.11.10/build/include/rte_ethdev.h:3879
3879	/home/anshul/loadbalancer/dpdk-stable-18.11.10/build/include/rte_ethdev.h: No such file or directory.
(gdb) bt
#0  0x0000555555a535a9 in rte_eth_rx_burst (port_id=0, queue_id=0, rx_pkts=0x55555645eb10 <lcore_conf+144>, nb_pkts=32)
    at /home/anshul/loadbalancer/dpdk-stable-18.11.10/build/include/rte_ethdev.h:3879
#1  0x0000555555a611df in netif_rx_burst (pid=0, qconf=0x55555645eb00 <lcore_conf+128>)
    at /home/anshul/loadbalancer/dpvs/src/netif.c:1599
#2  0x0000555555a65148 in lcore_job_recv_fwd (arg=0x0) at /home/anshul/loadbalancer/dpvs/src/netif.c:2408
#3  0x0000555555a7c0bb in do_lcore_job (job=0x555556852940 <netif_jobs>) at /home/anshul/loadbalancer/dpvs/src/scheduler.c:150
#4  0x0000555555a7c22c in dpvs_job_loop (arg=0x0) at /home/anshul/loadbalancer/dpvs/src/scheduler.c:198
#5  0x00005555557301b1 in eal_thread_loop ()
#6  0x00007ffff6f466db in start_thread (arg=0x7ffff5940700) at pthread_create.c:463
#7  0x00007ffff6a6471f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

In the logs before, the following is also seen:

NETIF: dpdk0:dst_port_mask=0
NETIF: Ethdev port_id=0 invalid rss_hf: 0x3afbc, valid value: 0x0
NETIF: Ethdev port_id=0 invalid rx_offload: 0x3, valid value: 0xa1d
NETIF: Ethdev port_id=0 invalid tx_offload: 0x10002, valid value: 0x802d
virtio_dev_configure(): Unsupported Rx multi queue mode 1
Port0 dev_configure = -22
NETIF: netif_port_start: fail to config dpdk0
DPVS: Start dpdk0 failed, skipping ...
DPVS: 

The same codebase works fine with DPDK 17.11.

Please help!

@anshulthakur
Copy link
Author

anshulthakur commented Jan 19, 2021

Update: Setting the Receive mq_mode to ETH_MQ_RX_NONE removes the Segfault.

The setup was for a single arm operation with just one dpdk port (and a single rx-tx queue) using virtio drivers. Today, I'll check if further problems come. However, I am not sure if this is the right way to go about this (if RSS flags are disabled, then how would distribution across queues happen?)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant