PCI Passthrough LSI 2008 Card

phin

Member
Apr 28, 2015
6
0
21
Hello all, first let me explain that with the 3.x kernel, I am able to get pass through on an LSI2008 card, to a nas4free vm, to work via this: hostpci0: 03:00.0,driver=vfio,rombar=off machine: pc-q35-2.0 Unfortunately I am not pleased with nas4free and I wouldnt mind openVZ support. pc-q35-2.0 doesnt seem to like freenas 9, either. So i attempted to revert to 2.6, I ensured that IOMMU was passing through and I attempted to do 2 things: first, hostpci: 03:00.0
Code:
 root@bender:~# qm start 100  kvm: -device pci-assign,host=03:00.0,id=hostpci0,bus=pci.0,addr=0x10: Failed to assign device "hostpci0": Operation not permitted  kvm: -device pci-assign,host=03:00.0,id=hostpci0,bus=pci.0,addr=0x10: Device initialization failed.  kvm: -device pci-assign,host=03:00.0,id=hostpci0,bus=pci.0,addr=0x10: Device 'kvm-pci-assign' could not be initialized start  failed: command '/usr/bin/kvm -id 100 -chardev 'socket,id=qmp,path=/var/run/qemu-server/100.qmp,server,nowait' -mon 'chardev=qmp,mode=control' -vnc unix:/var/run/qemu-server/100.vnc,x509,password -pidfile /var/run/qemu-server/100.pid -daemonize -smbios 'type=1,uuid=ed8822d1-7982-4b17-a90a-474b43f6e402' -name pnet-nas01b -smp '2,sockets=2,cores=1,maxcpus=2' -nodefaults -boot 'menu=on,strict=on,reboot-timeout=1000' -vga cirrus -cpu kvm64,+lahf_lm,+x2apic,+sep -m 6144 -k en-us -device 'piix3-usb-uhci,id=uhci,bus=pci.0,addr=0x1.0x2' -device 'usb-tablet,id=tablet,bus=uhci.0,port=1' -device 'pci-assign,host=03:00.0,id=hostpci0,bus=pci.0,addr=0x10' -device 'virtio-balloon-pci,id=balloon0,bus=pci.0,addr=0x3' -iscsi 'initiator-name=iqn.1993-08.org.debian:01:d85d8bb3368' -drive 'file=/srv/internal/iso/template/iso/FreeNAS-9.3-STABLE-201505100553.iso,if=none,id=drive-ide2,media=cdrom,aio=native' -device 'ide-cd,bus=ide.1,unit=0,drive=drive-ide2,id=ide2,bootindex=200' -drive 'file=/dev/vg_bender_raid10/vm-100-disk-1,if=none,id=drive-virtio0,aio=native,cache=none,detect-zeroes=on' -device 'virtio-blk-pci,drive=drive-virtio0,id=virtio0,bus=pci.0,addr=0xa,bootindex=100' -netdev 'type=tap,id=net0,ifname=tap100i0,script=/var/lib/qemu-server/pve-bridge,downscript=/var/lib/qemu-server/pve-bridgedown,vhost=on' -device 'virtio-net-pci,mac=9E:5D:D4:23:69:8A,netdev=net0,bus=pci.0,addr=0x12,id=net0,bootindex=300' -netdev 'type=tap,id=net1,ifname=tap100i1,script=/var/lib/qemu-server/pve-bridge,downscript=/var/lib/qemu-server/pve-bridgedown,vhost=on' -device 'virtio-net-pci,mac=CE:3C:9A:0F:BC:AB,netdev=net1,bus=pci.0,addr=0x13,id=net1,bootindex=301'' failed: exit code 1
So i ran an lspci -tv and received this:
Code:
 root@bender:~# lspci -tv -[0000:00]-+-00.0  Intel Corporation 5400 Chipset Memory Controller Hub            +-01.0-[01]----00.0  LSI Logic / Symbios Logic SAS1068E PCI-Express Fusion-MPT SAS            +-03.0-[02]--            +-05.0-[03]----00.0  LSI Logic / Symbios Logic SAS2008 PCI-Express Fusion-MPT SAS-2 [Falcon]            +-07.0-[04-07]--+-00.0-[05-06]----00.0-[06]----00.0  LSI Logic / Symbios Logic MegaRAID SAS 1078            |               \-00.3-[07]--            +-09.0-[08]--+-00.0  Intel Corporation 82575EB Gigabit Network Connection            |            \-00.1  Intel Corporation 82575EB Gigabit Network Connection            +-0f.0  Intel Corporation 5400 Chipset QuickData Technology Device            +-10.0  Intel Corporation 5400 Chipset FSB Registers
so i tried to pass along 00:05.0 and I received the same error. I am out of ideas.. Should I Possibly try another port on the board? Any takers? Thanks in advance!
 
not sure why that came out screwed up... I attempted to attach screenshots, but I am unable
 
Last edited:
Hi,
if you want PCI Pass-through you have to use kernel 3.10.
2.6 have no Pass-through capability.
If you need container and PCI Pass-through you have to wait for PVE 4.0
 
Actually, that is a slight bit of disinformation. I was able to get the pass through working by using the pci-stub driver, as outlined in this article: https://forum.proxmox.com/threads/15761-Enabling-VT-d-in-Proxmox-to-a-Solaris-guest the only hiccup i had was an interrupt problem, this fixed it: # cat /etc/modprobe.d/iommu_unsafe_interrupts.conf options vfio_iommu_type1 allow_unsafe_interrupts=1 From there i was able to use: hostpci0: 03:00.0 This passed my card, right along, and I was able to remove q35 as a machine and install freenas. Thank you and hopefully the items i posted will give a little help.