FS#65113 - Kernel >= 5.4.8.arch1 causes libvirtd freezing in certain circumstances

Attached to Project: Arch Linux
Opened by Chaser Huang (chaserhkj) - Saturday, 11 January 2020, 13:05 GMT
Last edited by freswa (frederik) - Thursday, 20 February 2020, 22:02 GMT
Task Type Bug Report
Category Kernel
Status Closed
Assigned To No-one
Architecture x86_64
Severity High
Priority Normal
Reported Version
Due in Version Undecided
Due Date Undecided
Percent Complete 100%
Votes 0
Private No

Details

Description:

After upgrade to Kernel version 5.4.8.arch1, libvirt are failing to start VMs with certain network adapter PCI pass-through configurations. libvirtd would freeze causing its client programs to freeze as well. And kernel would produce a GPF (General Protection Fault) in kernel logs, see attached gist link 1 for the log.

Further investigation into this issue showed that the device in question that caused this is "Ethernet controller: Intel Corporation I211 Gigabit Network Connection [8086:1539]". This device uses kernel driver module igb and when libvirt is starting VMs passing-through this device, libvirt would need to unbind the device from the host kernel igb module first by removing the module, and that's where the GPF happens.

These could be confirmed by merely running `rmmod igb` on an affected system, the foretold GPF would immediately pop out. See attached gist link 2 for an example of log on these cases.

The culprit commit has already been identified and upstream bug filed, but a fix is not available yet.


Additional info:

Kernel version: 5.4.8.arch1-1
Libvirt version: 5.10.0-2
Gist Link 1: GPF log for libvirt freezing - https://gist.github.com/chaserhkj/001c71d29dc9594cbe4ec9ff270b982e
Gist Link 2: GPF log for `rmmod igb` - https://gist.github.com/chaserhkj/dd16f48ab82fa889a8cec5148b6d81a2
Upstream culprit commit: https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git/commit/?id=a33121e5487b424339636b25c35d3a180eaa5f5e
Upstream bug: https://bugzilla.kernel.org/show_bug.cgi?id=206133

Steps to reproduce:

With the foretold hardware:

1. Configure a VM in libvirt, using the foretold device being pass-through'd to the VM, as documented here: https://wiki.archlinux.org/index.php/PCI_passthrough_via_OVMF
2. Start the VM and libvirtd freezes

or

1. run `rmmod igb`
This task depends upon

Closed by  freswa (frederik)
Thursday, 20 February 2020, 22:02 GMT
Reason for closing:  None
Additional comments about closing:  This seems pretty stalled to me. If it's still an issue. Please fill a re-open request. Thank you :)

Loading...