<html>
<head>
<base href="https://bugs.dpdk.org/">
</head>
<body><table border="1" cellspacing="0" cellpadding="8" class="bz_new_table">
<tr>
<th>Bug ID</th>
<td><a class="bz_bug_link
bz_status_UNCONFIRMED "
title="UNCONFIRMED - e1000 device initialization fails with SIGILL in KVM"
href="https://bugs.dpdk.org/show_bug.cgi?id=1691">1691</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>e1000 device initialization fails with SIGILL in KVM
</td>
</tr>
<tr>
<th>Product</th>
<td>DPDK
</td>
</tr>
<tr>
<th>Version</th>
<td>24.11
</td>
</tr>
<tr>
<th>Hardware</th>
<td>x86
</td>
</tr>
<tr>
<th>OS</th>
<td>Linux
</td>
</tr>
<tr>
<th>Status</th>
<td>UNCONFIRMED
</td>
</tr>
<tr>
<th>Severity</th>
<td>normal
</td>
</tr>
<tr>
<th>Priority</th>
<td>Normal
</td>
</tr>
<tr>
<th>Component</th>
<td>ethdev
</td>
</tr>
<tr>
<th>Assignee</th>
<td>dev@dpdk.org
</td>
</tr>
<tr>
<th>Reporter</th>
<td>mgsmith@netgate.com
</td>
</tr>
<tr>
<th>Target Milestone</th>
<td>---
</td>
</tr></table>
<p>
<div class="bz_comment_block">
<pre class="bz_comment_text">Created <span class=""><a href="attachment.cgi?id=309" name="attach_309" title="backtrace from gdb">attachment 309</a> <a href="attachment.cgi?id=309&action=edit" title="backtrace from gdb">[details]</a></span>
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 -
<a href="https://gitlab.com/qemu-project/qemu/-/issues/2784">https://gitlab.com/qemu-project/qemu/-/issues/2784</a>. 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
(<a href="https://packagecloud.io/fdio/2502">https://packagecloud.io/fdio/2502</a>).
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.
</pre>
</div>
</p>
<hr>
<span>You are receiving this mail because:</span>
<ul>
<li>You are the assignee for the bug.</li>
</ul>
<div itemscope itemtype="http://schema.org/EmailMessage">
<div itemprop="action" itemscope itemtype="http://schema.org/ViewAction">
<link itemprop="url" href="https://bugs.dpdk.org/show_bug.cgi?id=1691">
<meta itemprop="name" content="View bug">
</div>
<meta itemprop="description" content="Bugzilla bug update notification">
</div>
</body>
</html>