Comment 0 for bug 1829652

Damien Claisse (madz) wrote :

Hi,
I've recently upgraded my system to ubuntu 19.04, and kernel consistently panics when I boot a virtual machine using an SR-IOV VFIO virtual function. Could reproduce with 5.0.0-13-generic and 5.0.0-15-generic, doesn't happen with 4.18.0-20-generic.

I'm using libvirt and VM is using KVM, XML snippet to delegate virtual function to VM is:

    <hostdev mode='subsystem' type='pci' managed='yes'>
      <driver name='vfio'/>
      <source>
        <address domain='0x0000' bus='0x05' slot='0x10' function='0x0'/>
      </source>
      <alias name='hostdev0'/>
      <address type='pci' domain='0x0000' bus='0x03' slot='0x00' function='0x0'/>
    </hostdev>

As soon as I start the VM using "virsh start vm", kernel panics.

I'm using X550T intel NIC (lspci output: Ethernet controller: Intel Corporation Ethernet Controller 10G X550T (rev 01)) on an Supermicro X11SSH-CTF motherboard, with up to date bios and 4 virtual functions (class/net/em1/device/sriov_numvfs = 4).

Given panic stack trace (see attachment), I've narrowed down the bug to ixgbe_ipsec_vf_clear function in upstream ixgbe driver: https://github.com/torvalds/linux/blob/72cf0b07418a9c8349aa9137194b1ccba6e54a9d/drivers/net/ethernet/intel/ixgbe/ixgbe_ipsec.c#L840

When I comment its usage (https://github.com/torvalds/linux/blob/72cf0b07418a9c8349aa9137194b1ccba6e54a9d/drivers/net/ethernet/intel/ixgbe/ixgbe_sriov.c#L734), everything works as expected (I'm not using any ipsec feature). Didn't try to fix the ixgbe_ipsec_vf_clear function though.

Please find attached a stack trace collected using IPMI serial-over-lan.