Hi, I'm playing a little bit with KVM and SR-IOV and OpenBSD doesn't recognize 'Intel Corporation 82576 Virtual Function'[1], ie. VF on my Intel 82756 dual-port network card activated on a Linux box.
... vendor "Intel", unknown product 0x10ca (class network subclass ethernet, rev 0x01) at pci0 dev 8 function 0 not configured ^^ sr-iov vfio ... # pcidump -vvvv 0:8:0 0:8:0: Intel unknown 0x0000: Vendor ID: 8086 Product ID: 10ca 0x0004: Command: 0002 Status: 0010 0x0008: Class: 02 Subclass: 00 Interface: 00 Revision: 01 0x000c: BIST: 00 Header Type: 00 Latency Timer: 00 Cache Line Size: 00 0x0010: BAR mem 64bit addr: 0x00000000febe4000/0x00004000 0x0018: BAR empty (00000000) 0x001c: BAR mem 64bit addr: 0x00000000febe8000/0x00004000 0x0024: BAR empty (00000000) 0x0028: Cardbus CIS: 00000000 0x002c: Subsystem Vendor ID: 8086 Product ID: a04c 0x0030: Expansion ROM Base Address: 00000000 0x0038: 00000000 0x003c: Interrupt Pin: 00 Line: 00 Min Gnt: 00 Max Lat: 00 0x0070: Capability 0x11: Extended Message Signalled Interrupts (MSI-X) 0x00a0: Capability 0x10: PCI Express Link Speed: unknown (0) / 2.5 GT/s Link Width: x0 / x4 Steps to reproduce: - boot a Linux box with supported HW with kernel param intel_iommu=on - echo 1 > /sys/module/vfio_iommu_type1/parameters/allow_unsafe_interrupts - Linux kernel module vfio_pci should be loaded - Linux kernel module igb should be loaded - find SR-IOV device via lspci - enable 1 VF, eg.: echo 1 > /sys/bus/pci/devices/0000:02:00.1/sriov_numvfs - check what's pci address of new VF, eg: virsh nodedev-dumpxml pci_0000_02_00_1 | grep -A1 'virt_function' - attached VF as 'hostdev' device into OpenBSD KVM VM[2] j. [1] http://cateee.net/lkddb/web-lkddb/IGBVF.html [2] https://www.suse.com/documentation/sles-12/book_virt/data/sec_libvirt_config_io.html or https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/7/html/Virtualization_Deployment_and_Administration_Guide/chap-Guest_virtual_machine_device_configuration.html#sect-PCI_devices-PCI_passthrough OpenBSD 6.1-current (GENERIC) #10: Fri Apr 21 18:39:14 MDT 2017 dera...@amd64.openbsd.org:/usr/src/sys/arch/amd64/compile/GENERIC real mem = 519933952 (495MB) avail mem = 499625984 (476MB) mpath0 at root scsibus0 at mpath0: 256 targets mainbus0 at root bios0 at mainbus0: SMBIOS rev. 2.8 @ 0xf6a00 (9 entries) bios0: vendor SeaBIOS version "rel-1.9.1-0-gb3ef39f-prebuilt.qemu-project.org" date 04/01/2014 bios0: QEMU Standard PC (i440FX + PIIX, 1996) acpi0 at bios0: rev 0 acpi0: sleep states S5 acpi0: tables DSDT FACP APIC acpi0: wakeup devices acpitimer0 at acpi0: 3579545 Hz, 24 bits acpimadt0 at acpi0 addr 0xfee00000: PC-AT compat cpu0 at mainbus0: apid 0 (boot processor) cpu0: Intel Core i7 9xx (Nehalem Class Core i7), 1866.88 MHz cpu0: FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,CFLUSH,MMX,FXSR,SSE,SSE2,SSE3,SSSE3,CX16,SSE4.1,SSE4.2,x2APIC,POPCNT,HV,NXE,LONG,LAHF cpu0: 64KB 64b/line 2-way I-cache, 64KB 64b/line 2-way D-cache, 512KB 64b/line 16-way L2 cache cpu0: ITLB 255 4KB entries direct-mapped, 255 4MB entries direct-mapped cpu0: DTLB 255 4KB entries direct-mapped, 255 4MB entries direct-mapped cpu0: smt 0, core 0, package 0 mtrr: Pentium Pro MTRR support, 8 var ranges, 88 fixed ranges cpu0: apic clock running at 999MHz ioapic0 at mainbus0: apid 0 pa 0xfec00000, version 11, 24 pins acpiprt0 at acpi0: bus 0 (PCI0) acpicpu0 at acpi0: C1(@1 halt!) "ACPI0006" at acpi0 not configured "PNP0303" at acpi0 not configured "PNP0F13" at acpi0 not configured "PNP0700" at acpi0 not configured "PNP0501" at acpi0 not configured "PNP0A06" at acpi0 not configured "PNP0A06" at acpi0 not configured "QEMU0002" at acpi0 not configured "PNP0A06" at acpi0 not configured pvbus0 at mainbus0: KVM pci0 at mainbus0 bus 0 pchb0 at pci0 dev 0 function 0 "Intel 82441FX" rev 0x02 pcib0 at pci0 dev 1 function 0 "Intel 82371SB ISA" rev 0x00 pciide0 at pci0 dev 1 function 1 "Intel 82371SB IDE" rev 0x00: DMA, channel 0 wired to compatibility, channel 1 wired to compatibility pciide0: channel 0 disabled (no drives) pciide0: channel 1 disabled (no drives) piixpm0 at pci0 dev 1 function 3 "Intel 82371AB Power" rev 0x03: apic 0 int 9 iic0 at piixpm0 em0 at pci0 dev 2 function 0 "Intel 82574L" rev 0x00: apic 0 int 10, address 00:25:90:3c:66:01 virtio0 at pci0 dev 3 function 0 "Qumranet Virtio Storage" rev 0x00 vioblk0 at virtio0 scsibus1 at vioblk0: 2 targets sd0 at scsibus1 targ 0 lun 0: <VirtIO, Block Device, > SCSI3 0/direct fixed sd0: 5120MB, 512 bytes/sector, 10485760 sectors virtio0: msix shared uhci0 at pci0 dev 4 function 0 "Intel 82801I USB" rev 0x03: apic 0 int 11 uhci1 at pci0 dev 4 function 1 "Intel 82801I USB" rev 0x03: apic 0 int 10 uhci2 at pci0 dev 4 function 2 "Intel 82801I USB" rev 0x03: apic 0 int 10 ehci0 at pci0 dev 4 function 7 "Intel 82801I USB" rev 0x03: apic 0 int 11 usb0 at ehci0: USB revision 2.0 uhub0 at usb0 configuration 1 interface 0 "Intel EHCI root hub" rev 2.00/1.00 addr 1 virtio1 at pci0 dev 5 function 0 "Qumranet Virtio Memory" rev 0x00 viomb0 at virtio1 virtio1: apic 0 int 10 virtio2 at pci0 dev 6 function 0 "Qumranet Virtio RNG" rev 0x00 viornd0 at virtio2 virtio2: apic 0 int 10 "Intel 6300ESB WDT" rev 0x00 at pci0 dev 7 function 0 not configured vendor "Intel", unknown product 0x10ca (class network subclass ethernet, rev 0x01) at pci0 dev 8 function 0 not configured isa0 at pcib0 isadma0 at isa0 fdc0 at isa0 port 0x3f0/6 irq 6 drq 2 fd0 at fdc0 drive 1: density unknown com0 at isa0 port 0x3f8/8 irq 4: ns16550a, 16 byte fifo com0: console pckbc0 at isa0 port 0x60/5 irq 1 irq 12 pckbd0 at pckbc0 (kbd slot) wskbd0 at pckbd0 mux 1 pms0 at pckbc0 (aux slot) wsmouse0 at pms0 mux 0 pcppi0 at isa0 port 0x61 spkr0 at pcppi0 usb1 at uhci0: USB revision 1.0 uhub1 at usb1 configuration 1 interface 0 "Intel UHCI root hub" rev 1.00/1.00 addr 1 usb2 at uhci1: USB revision 1.0 uhub2 at usb2 configuration 1 interface 0 "Intel UHCI root hub" rev 1.00/1.00 addr 1 usb3 at uhci2: USB revision 1.0 uhub3 at usb3 configuration 1 interface 0 "Intel UHCI root hub" rev 1.00/1.00 addr 1 vscsi0 at root scsibus2 at vscsi0: 256 targets softraid0 at root scsibus3 at softraid0: 256 targets root on sd0a (b4877c90d361e300.a) swap on sd0b dump on sd0b