[Bug 205445] [bhyve] PCI passthru pci_intr_map: bad interrupt line 20, OpenBSD guest couldn't map interrupt

bugzilla-noreply at freebsd.org bugzilla-noreply at freebsd.org
Sun Dec 20 01:09:14 UTC 2015


https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=205445

            Bug ID: 205445
           Summary: [bhyve] PCI passthru pci_intr_map: bad interrupt line
                    20, OpenBSD guest couldn't map interrupt
           Product: Base System
           Version: 10.2-STABLE
          Hardware: amd64
                OS: Any
            Status: New
          Severity: Affects Some People
          Priority: ---
         Component: kern
          Assignee: freebsd-bugs at FreeBSD.org
          Reporter: m8r-592a0p at mailinator.com

Attempting to use PCI passthrough with bhyve, but it appears to be passing
interrupts or the PCI bus configuration incorrectly. My OpenBSD 5.8 guest is
reporting this error on boot:

fxp0 at pci0 dev 2 function 0 "Intel 8255x" rev 0x08pci_intr_map: bad interrupt
line 20
: couldn't map interrupt

And the network card is unusable. When I boot OpenBSD 5.8 on the same hardware
bare metal (without bhyve), it correctly detects and configures the PCI device:

fxp0 at pci4 dev 0 function 0 "Intel 8255x" rev 0x08, i82559: apic 2 int 20,
address 00:20:e0:90:e5
inphy0 at fxp0 phy 1: i82555 10/100 PHY, rev. 4



Configuration: following the instructions at
https://wiki.freebsd.org/bhyve/pci_passthru and 
https://forums.freebsd.org/threads/howto-bhyve-using-openbsd-as-main-firewall-in-freebsd.50470/

/boot/loader.conf
pptdevs="4/0/0"        # passthrough Intel EtherExpress 'fxp0' as ppt0

sudo bhyve -A -H -P -s 0:0:0,hostbridge \
        -s 0:1:0,lpc \
        -s 0:2:0,passthru,4/0/0 \
        -s 0:3:0,virtio-blk,./vm.img \
        -l com1,stdio \
        -c 1 -m 256M \
        -S \
        -W \
        -x \
        -Y \
        openbsd

I've tried various flags to bhyve (with and without -W to force MSI instead of
MSI-X, with and without -x to configure the guest's local APIC in x2APIC mode,
hostbridge and amdbridge, other virtual PCI slots besides 0:2:0 including
placing the NIC on a different PCI bus and the same as the physical slot,
etc.), no difference.

FreeBSD host:
CPU: Intel(R) Xeon(R) CPU E3-1230 V2 @ 3.30GHz (3300.09-MHz K8-class CPU)
  Origin="GenuineIntel"  Id=0x306a9  Family=0x6  Model=0x3a  Stepping=9
 
Features=0xbfebfbff<FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,CLFLUSH,DTS,ACPI,MMX,FXSR,SSE,SSE2,SS,HTT,TM,PBE>
 
Features2=0x7fbae3ff<SSE3,PCLMULQDQ,DTES64,MON,DS_CPL,VMX,SMX,EST,TM2,SSSE3,CX16,xTPR,PDCM,PCID,SSE4.1,SSE4.2,x2APIC,POPCNT,TSCDLT,AESNI,XSAVE,OSXSAVE,AVX,F16C,RDRAND>
  AMD Features=0x28100800<SYSCALL,NX,RDTSCP,LM>
  AMD Features2=0x1<LAHF>
  Structured Extended Features=0x281<FSGSBASE,SMEP,ERMS>
  XSAVE Features=0x1<XSAVEOPT>
  VT-x: PAT,HLT,MTF,PAUSE,EPT,UG,VPID
  TSC: P-state invariant, performance statistics

With pptdevs="4/0/0":

ppt0 port 0xc000-0xc03f mem 0xdfa04000-0xdfa04fff,0xdf900000-0xdf9fffff irq 20
at device 0.0 on pci4

Without pptdevs="4/0/0" (for comparison - the card is functional):

fxp0: <Intel 82559 Pro/100 Ethernet> port 0xc100-0xc13f mem
0xdfa25000-0xdfa25fff,0xdf900000-0xdf9fffff irq 20 at device 0.0 on pci4
miibus0: <MII bus> on fxp0
fxp0: Ethernet address: 00:20:e0:90:e5:ea



Tested on FreeBSD 10.2-STABLE and 11-CURRENT r292163 (same error in both cases)



What I find unusual is that the same interrupt line (20) is used in both cases,
but under bhyve OpenBSD fails to map the interrupt, and on bare metal OpenBSD
can map it without error. Is this a case of bhyve not supporting certain APIC
functionality? (dmesg on the virtualized guest is missing ", i82559: apic 2")

-- 
You are receiving this mail because:
You are the assignee for the bug.


More information about the freebsd-bugs mailing list