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 [details]
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
<PCI_addr_of_e1000> }'.
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: