mbox series

[0/5] qtest: pci and e1000e/igb msix fixes

Message ID 20241218074232.1784427-1-npiggin@gmail.com (mailing list archive)
Headers show
Series qtest: pci and e1000e/igb msix fixes | expand

Message

Nicholas Piggin Dec. 18, 2024, 7:42 a.m. UTC
Hi,

This series is split out from a larger one that added some more
XHCI functionality and tests here. Just wanted to get more focus
on the PCI issues first.

https://lore.kernel.org/qemu-devel/20241212083502.1439033-1-npiggin@gmail.com/T/#t

It is quite reworked after feedback about the incorrect PBA write
implementation. This one solves the e1000e/igb multiple-intrrupt problem
by enabling the msix vector which delivers the interrupt and lowers the
PBA pending bit.

I'm still curious about PCI spec note that masked pending interrupt
must have PBA bit cleared if the interrupt condition in the function
clears, which no device seems to implement... but at least for now,
unmasking and delivering seems to be the reliable way to clear the
interrupt.

Thanks,
Nick


Nicholas Piggin (5):
  qtest/pci: Enforce balanced iomap/unmap
  qtest/libqos/pci: Fix qpci_msix_enable sharing bar0
  qtest/libqos/pci: Do not write to PBA memory
  qtest/e1000e|igb: Clear interrupt-cause bits after irq
  qtest/e1000e|igb: Fix msix to re-trigger interrupts

 tests/qtest/libqos/ahci.h       |   1 +
 tests/qtest/libqos/e1000e.h     |   8 +++
 tests/qtest/libqos/pci.h        |   3 +
 tests/qtest/libqos/virtio-pci.h |   1 +
 tests/qtest/ahci-test.c         |   2 +
 tests/qtest/e1000e-test.c       |  10 ++-
 tests/qtest/igb-test.c          |  10 ++-
 tests/qtest/libqos/ahci.c       |   6 ++
 tests/qtest/libqos/e1000e.c     | 113 +++++++++++++++++++++++++++++++-
 tests/qtest/libqos/pci.c        |  74 ++++++++++++++++++---
 tests/qtest/libqos/virtio-pci.c |   6 +-
 11 files changed, 217 insertions(+), 17 deletions(-)