Chelsio T4 has old MSIX PBA offset bug
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
QEMU |
Invalid
|
Undecided
|
Unassigned | ||
Debian |
Invalid
|
Unknown
|
Bug Description
There exists a bug with Chelsio NICs T4 that causes the following error:
kvm: -device vfio-pci,
I discovered this bug on a Proxmox system, and I was working with a downstream Proxmox developer to try to fix this issue. They provided me with the following change to make from line 1484 of hw/vfio/pci.c:
static void vfio_msix_
* is 0x1000, so we hard code that here.
*/
if (vdev->vendor_id == PCI_VENDOR_
- (vdev->device_id & 0xff00) == 0x5800) {
+ ((vdev->device_id & 0xff00) == 0x5800 ||
+ (vdev->device_id & 0xff00) == 0x1425)) {
} else if (vdev->msix_relo == OFF_AUTOPCIBAR_OFF) {
However, I found that this did not fix the issue, so the bug appears to work differently than the one that was present on the T5 NICs which has already been patched. I have attached the output of my lspci -nnkvv
description: | updated |
Changed in debian: | |
status: | Unknown → In Progress |
Changed in debian: | |
status: | In Progress → Invalid |
There exists a bug with Chelsio NICs that causes the following error:
kvm: -device vfio-pci, host=0000: 83:00.7, id=hostpci1. 7,bus=pci. 0,addr= 0x11.7: vfio 0000:83:00.7: hardware reports invalid configuration, MSIX PBA outside of specified BAR
This bug was fixed in later versions of Qemu, and is caused by vendor misconfigurations of their MSIX PBA. I know a catchall fix was implemented in recent versions of Qemu, as well as patches applied to hotfix it in earlier versions. I encountered this bug using a Chelsio T4 device, and I believe the patches are for T5 and newer.
Here is an email chain that has a patch for this situation: /patchwork. ozlabs. org/project<email address hidden>/
https:/
I'd appreciate it if anyone could tell me what the best course of action to fix it on my system would be. I assume the solution is to either build Qemu with this patch applied, or update the version of Qemu in my Proxmox installation, but I do not know which is the better route to go.