https://bugs.dpdk.org/show_bug.cgi?id=1691 Bug ID: 1691 Summary: e1000 device initialization fails with SIGILL in KVM Product: DPDK Version: 24.11 Hardware: x86 OS: Linux Status: UNCONFIRMED Severity: normal Priority: Normal Component: ethdev Assignee: dev@dpdk.org Reporter: mgsmith@netgate.com Target Milestone: --- Created attachment 309 --> https://bugs.dpdk.org/attachment.cgi?id=309&action=edit backtrace from gdb When attempting to run FD.io VPP in a qemu VM with e1000 interfaces, SIGILL is caught during initialization of one of the e1000 interfaces attached to the VM. The value of si_code is 2 (illegal operand). This occurs on at least VPP versions: 24.10 (DPDK 24.07) 25.02 (DPDK 24.11) The VM where the problem occurs is running ubuntu 24.04 LTS (kernel 6.8.0-54-generic). This issue does not occur on another VM running ubuntu 22.04 LTS (kernel 5.15.0-133-generic) on the same host system and using the same version of VPP/DPDK. The problem occurs very consistently when DPDK is compiled with gcc using optimization level 2 or 3. It does not occur when DPDK is compiled with gcc using optimization level 1 or compiled with clang. I'll attach a text file with a stack trace since I don't know how to make it format nicely here. The signal is caught in e1000_id_led_init_generic() while trying to read from the memory address of the ledctl register. Googling found someone else reporting the same problem to qemu - https://gitlab.com/qemu-project/qemu/-/issues/2784. It doesn't seem to me like the issue can be attributed to qemu though. It should be possible to reproduce the problem via: 1) Provision a qemu VM running ubuntu 24.04 ("noble"). Attach one or more e1000 NICs. 2) In the VM, install the VPP 25.02 deb packages (libvppinfra, vpp, vpp-plugin-core, vpp-plugin-devtools, vpp-plugin-dpdk) for noble (https://packagecloud.io/fdio/2502). 3) In the VM, run 'systemctl stop vpp.service' to make sure VPP is shut down. 4) In the VM, edit /etc/vpp/startup.conf. Add a line containing 'dpdk { dev }'. 5) In the VM, run 'systemctl start vpp.service' to start VPP. Or just execute it from a shell as /usr/bin/vpp -c /etc/vpp/startup.conf. In either case, it should crash immediately on SIGILL. I'm not sure if it also affects e1000 hardware devices, I don't have any to test. -- You are receiving this mail because: You are the assignee for the bug.