Hi all,
I am trying to get PCI-e passthrough of a single NIC working on PVE 3.4, passthrough is working but it always uses 2 NICs in stead of one.
I use a supermicro mainboard with 4 intel gigabit connections and like to passtrough one of them
lspci:
04:00.0 Ethernet controller: Intel Corporation 82576 Gigabit Network Connection (rev 01)
04:00.1 Ethernet controller: Intel Corporation 82576 Gigabit Network Connection (rev 01)
07:00.0 Ethernet controller: Intel Corporation 82576 Gigabit Network Connection (rev 01)
07:00.1 Ethernet controller: Intel Corporation 82576 Gigabit Network Connection (rev 01)
eth0 = 07:00.0
eth1 = 07:00.1
eth2 = 04:00.0
eth3 = 04:00.1
I want to passthrough eth2 (04:00.0) to a vm (vmid = 100)
I added this to the 100.conf file:
machine: q35
hostpci0: 04:00.0,pcie=1,driver=vfio
Now when i start the VM, dmesg gives me:
[ 259.815513] igb 0000:04:00.0: removed PHC on eth2
[ 259.815521] igb 0000:04:00.0: DCA disabled
[ 259.836431] igb 0000:04:00.1: removed PHC on eth3
[ 259.836442] igb 0000:04:00.1: DCA disabled
So my eth3 is rendered unusable!
I guess this has something to do with two NICs sharing the same chip but i was able to passthrough a single eth port using other virtualization tools (using libvirt) with the same hardware.
lspci -t:
\-[0000:00]-+-00.0
+-01.0-[07]--+-00.0
| \-00.1
+-07.0-[04]--+-00.0
| \-00.1
pveversion -v:
proxmox-ve-2.6.32: 3.4-156 (running kernel: 3.10.0-10-pve)
pve-manager: 3.4-6 (running version: 3.4-6/102d4547)
pve-kernel-2.6.32-39-pve: 2.6.32-156
pve-kernel-3.10.0-10-pve: 3.10.0-34
lvm2: 2.02.98-pve4
clvm: 2.02.98-pve4
corosync-pve: 1.4.7-1
openais-pve: 1.1.4-3
libqb0: 0.11.1-2
redhat-cluster-pve: 3.2.0-2
resource-agents-pve: 3.9.2-4
fence-agents-pve: 4.0.10-2
pve-cluster: 3.0-17
qemu-server: 3.4-6
pve-firmware: 1.1-4
libpve-common-perl: 3.0-24
libpve-access-control: 3.0-16
libpve-storage-perl: 3.0-33
pve-libspice-server1: 0.12.4-3
vncterm: 1.1-8
vzctl: 4.0-1pve6
vzprocps: 2.0.11-2
vzquota: 3.1-2
pve-qemu-kvm: 2.2-10
ksm-control-daemon: 1.1-1
glusterfs-client: 3.5.2-1
I am trying to get PCI-e passthrough of a single NIC working on PVE 3.4, passthrough is working but it always uses 2 NICs in stead of one.
I use a supermicro mainboard with 4 intel gigabit connections and like to passtrough one of them
lspci:
04:00.0 Ethernet controller: Intel Corporation 82576 Gigabit Network Connection (rev 01)
04:00.1 Ethernet controller: Intel Corporation 82576 Gigabit Network Connection (rev 01)
07:00.0 Ethernet controller: Intel Corporation 82576 Gigabit Network Connection (rev 01)
07:00.1 Ethernet controller: Intel Corporation 82576 Gigabit Network Connection (rev 01)
eth0 = 07:00.0
eth1 = 07:00.1
eth2 = 04:00.0
eth3 = 04:00.1
I want to passthrough eth2 (04:00.0) to a vm (vmid = 100)
I added this to the 100.conf file:
machine: q35
hostpci0: 04:00.0,pcie=1,driver=vfio
Now when i start the VM, dmesg gives me:
[ 259.815513] igb 0000:04:00.0: removed PHC on eth2
[ 259.815521] igb 0000:04:00.0: DCA disabled
[ 259.836431] igb 0000:04:00.1: removed PHC on eth3
[ 259.836442] igb 0000:04:00.1: DCA disabled
So my eth3 is rendered unusable!
I guess this has something to do with two NICs sharing the same chip but i was able to passthrough a single eth port using other virtualization tools (using libvirt) with the same hardware.
lspci -t:
\-[0000:00]-+-00.0
+-01.0-[07]--+-00.0
| \-00.1
+-07.0-[04]--+-00.0
| \-00.1
pveversion -v:
proxmox-ve-2.6.32: 3.4-156 (running kernel: 3.10.0-10-pve)
pve-manager: 3.4-6 (running version: 3.4-6/102d4547)
pve-kernel-2.6.32-39-pve: 2.6.32-156
pve-kernel-3.10.0-10-pve: 3.10.0-34
lvm2: 2.02.98-pve4
clvm: 2.02.98-pve4
corosync-pve: 1.4.7-1
openais-pve: 1.1.4-3
libqb0: 0.11.1-2
redhat-cluster-pve: 3.2.0-2
resource-agents-pve: 3.9.2-4
fence-agents-pve: 4.0.10-2
pve-cluster: 3.0-17
qemu-server: 3.4-6
pve-firmware: 1.1-4
libpve-common-perl: 3.0-24
libpve-access-control: 3.0-16
libpve-storage-perl: 3.0-33
pve-libspice-server1: 0.12.4-3
vncterm: 1.1-8
vzctl: 4.0-1pve6
vzprocps: 2.0.11-2
vzquota: 3.1-2
pve-qemu-kvm: 2.2-10
ksm-control-daemon: 1.1-1
glusterfs-client: 3.5.2-1