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

Illegal instruction (core dumped) when using ToDPDKDevice() #358

Open
crx892476808 opened this issue Apr 26, 2022 · 2 comments
Open

Illegal instruction (core dumped) when using ToDPDKDevice() #358

crx892476808 opened this issue Apr 26, 2022 · 2 comments

Comments

@crx892476808
Copy link

I try to run the following .click
FromDPDKDevice(0) -> CheckIPHeader(OFFSET 14) -> Print(in) -> ToDPDKDevice(1);
with the following command
sudo bin/click --dpdk -c 0xf -n 4 -- example.click

It can run successfully, however, as soon as a packet is received and processed, it meets core dump:
`EAL: Detected 12 lcore(s)

EAL: Detected 1 NUMA nodes

EAL: Multi-process socket /var/run/dpdk/rte/mp_socket

EAL: Selected IOVA mode 'PA'

EAL: No available hugepages reported in hugepages-1048576kB

EAL: Probing VFIO support...

EAL: PCI device 0000:03:00.0 on NUMA socket 0

EAL: probe driver: 15b3:1007 net_mlx4

EAL: PCI device 0000:06:00.0 on NUMA socket -1

EAL: Invalid NUMA socket, default to 0

EAL: probe driver: 8086:1521 net_e1000_igb

EAL: PCI device 0000:06:00.1 on NUMA socket -1

EAL: Invalid NUMA socket, default to 0

EAL: probe driver: 8086:1521 net_e1000_igb

Initializing DPDK

in: 57 | e41d2d71 1421d4ae 52aa3c68 08004500 002b0001 00004006

Illegal instruction (core dumped)`

I run click on Ubuntu 16.04, and the version of DPDK is 19.08
Anyone can help? Thanks.

@tbarbette
Copy link
Owner

Hi!
This means the CPU tried to execute an instruction it does not know about.
Probably, DPDK (and/or) fastclick were compiled on a different machine that has a newer instruction set? By default DPDK will use -march=native, and this will be propagated to fastclick.
The easiest is to re-compile both on the machine where it will be used.
Else, check how to force a specific target with DPDK, and configure Click with --enable-portable-binary :)

@crx892476808
Copy link
Author

Hi! This means the CPU tried to execute an instruction it does not know about. Probably, DPDK (and/or) fastclick were compiled on a different machine that has a newer instruction set? By default DPDK will use -march=native, and this will be propagated to fastclick. The easiest is to re-compile both on the machine where it will be used. Else, check how to force a specific target with DPDK, and configure Click with --enable-portable-binary :)

Thanks for your reply! In fact the machine I compile fastclick is the same as the machine I use fastclick. I try configuring fastclick with --enable-portable-binary. But the problem still exists.
I debug the .click conf file, and find that the problem only exists when the packet is sent to ToDPDKDevice element. The click can work when I use ToDevice element. So strange.

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

2 participants