On 10/10/2018 12:01 PM, Stephen Bates wrote:
I added e1000 and e1000e support to my kernel and changed the QEMU command to:
So using -device e1000e rather than -device e1000 seems to work. I am not sure
why -device e1000 causes a kernel panic. The MSI-X message is interesting and
may be related to why NVMe interrupts are not reaching the OS in the guest?
Great! I'm glad that it works.
So it looks like PCIe is working but with some limitations in the
interrupts (as seen here and with the NVMe).
Unless anyone has any objections I still think it makes sense to merge
the current patches as that works for a variety of PCIe devices. We can
continue to look into the interrupt issues after that.
Do you want to add a Tested-by tag Stephen?
Alistair
[ 0.216000] e1000: Intel(R) PRO/1000 Network Driver - version 7.3.21-k8-NAPI
[ 0.216000] e1000: Copyright (c) 1999-2006 Intel Corporation.
[ 0.216000] e1000e: Intel(R) PRO/1000 Network Driver - 3.2.6-k
[ 0.216000] e1000e: Copyright(c) 1999 - 2015 Intel Corporation.
[ 0.220000] e1000e 0000:00:01.0: assign IRQ: got 1
[ 0.220000] e1000e 0000:00:01.0: enabling device (0000 -> 0002)
[ 0.220000] e1000e 0000:00:01.0: enabling bus mastering
[ 0.220000] e1000e 0000:00:01.0: Interrupt Throttling Rate (ints/sec) set to
dynamic conservative mode
[ 0.220000] e1000e 0000:00:01.0 0000:00:01.0 (uninitialized): Failed to
initialize MSI-X interrupts. Falling back to MSI interrupts.
[ 0.220000] e1000e 0000:00:01.0 0000:00:01.0 (uninitialized): Failed to
initialize MSI interrupts. Falling back to legacy interrupts.
[ 0.348000] e1000e 0000:00:01.0 eth0: (PCI Express:2.5GT/s:Width x1)
52:54:00:12:34:56
[ 0.356000] e1000e 0000:00:01.0 eth0: Intel(R) PRO/1000 Network Connection
[ 0.356000] e1000e 0000:00:01.0 eth0: MAC: 3, PHY: 8, PBA No: 000000-000
root@libertas:~# lspci -vvv
00:00.0 Host bridge: Red Hat, Inc. QEMU PCIe Host bridge
Subsystem: Red Hat, Inc QEMU PCIe Host bridge
Control: I/O- Mem- BusMaster- SpecCycle- MemWINV- VGASnoop- ParErr-
Stepping- SERR- FastB2B- DisINTx-
Status: Cap- 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort-
<MAbort- >SERR- <PERR- INTx-
lspci: Unable to load libkmod resources: error -12
00:01.0 Ethernet controller: Intel Corporation 82574L Gigabit Network Connection
Subsystem: Intel Corporation 82574L Gigabit Network Connection
Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr-
Stepping- SERR- FastB2B- DisINTx-
Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort-
<MAbort- >SERR- <PERR- INTx-
Latency: 0
Interrupt: pin A routed to IRQ 1
Region 0: Memory at 40040000 (32-bit, non-prefetchable) [size=128K]
Region 1: Memory at 40060000 (32-bit, non-prefetchable) [size=128K]
Region 2: I/O ports at <unassigned> [disabled]
Region 3: Memory at 40080000 (32-bit, non-prefetchable) [size=16K]
[virtual] Expansion ROM at 40000000 [disabled] [size=256K]
Capabilities: [c8] Power Management version 2
Flags: PMEClk- DSI+ D1- D2- AuxCurrent=0mA
PME(D0-,D1-,D2-,D3hot-,D3cold-)
Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
Capabilities: [e0] Express (v1) Root Complex Integrated Endpoint, MSI 00
DevCap: MaxPayload 128 bytes, PhantFunc 0
ExtTag- RBE+
DevCtl: Report errors: Correctable- Non-Fatal- Fatal-
Unsupported-
RlxdOrd- ExtTag- PhantFunc- AuxPwr- NoSnoop-
MaxPayload 128 bytes, MaxReadReq 128 bytes
DevSta: CorrErr- UncorrErr- FatalErr- UnsuppReq- AuxPwr-
TransPend-
Capabilities: [100 v2] Advanced Error Reporting
UESta: DLP- SDES- TLP- FCP- CmpltTO- CmpltAbrt- UnxCmplt-
RxOF- MalfTLP- ECRC- UnsupReq- ACSViol-
UEMsk: DLP- SDES- TLP- FCP- CmpltTO- CmpltAbrt- UnxCmplt-
RxOF- MalfTLP- ECRC- UnsupReq- ACSViol-
UESvrt: DLP+ SDES+ TLP- FCP+ CmpltTO- CmpltAbrt- UnxCmplt-
RxOF+ MalfTLP+ ECRC- UnsupReq- ACSViol-
CESta: RxErr- BadTLP- BadDLLP- Rollover- Timeout- NonFatalErr-
CEMsk: RxErr- BadTLP- BadDLLP- Rollover- Timeout- NonFatalErr+
AERCap: First Error Pointer: 00, GenCap+ CGenEn- ChkCap+ ChkEn-
Capabilities: [140 v1] Device Serial Number 52-54-00-ff-ff-12-34-56
Kernel driver in use: e1000e