Multifunction PCI support for qm?

JustaGuy

Renowned Member
Jan 1, 2010
324
2
83
From what I understand, the devs do intend to eventually implement support for the newer qdev -device syntax.

This would change our current configuration that looks like this:
Code:
-net nic,vlan=VLAN,macaddr=MACADDR,model=MODEL,name=ID,addr=STR,vectors=V
To this:

Code:
-netdev type=TYPE,id=NET-ID
-device DEVNAME,netdev=NET-ID,mac=MACADDR,DEV-OPTS...
For now with present versions of:

Code:
pve-manager: 1.6-5 (pve-manager/1.6/5261)
running kernel: 2.6.35-1-pve
proxmox-ve-2.6.35: 1.6-7
pve-kernel-2.6.32-4-pve: 2.6.32-25
pve-kernel-2.6.35-1-pve: 2.6.35-7
qemu-server: 1.1-22
pve-firmware: 1.0-9
libpve-storage-perl: 1.0-14
vncterm: 0.9-2
vzctl: 3.0.24-1pve4
vzdump: 1.2-8
vzprocps: 2.0.11-1dso2
vzquota: 3.0.11-1
pve-qemu-kvm: 0.12.5-2
ksm-control-daemon: 1.0-4
I get this when I try the new method:
Code:
unknown command: 'qdev'


Thanks to recent PVE progress, we can now do up to 29 1-port NICs.

This is a huge step in the direction I like to go, and does wonders for 10Gb ingress to the VMs.
But I still can't hand out more than 1 10Gb link between VMs & the router and already I want to double it.
I can see one day making use of up to 16 or 17 with 8 ports each.

Someone on the linux-kvm mailing list posted this script to make 13 devices totalling 104 functions, which equates to four 1Gb ports & ten 10Gb:
Code:
args=""
for slot in 5 6 7 8 9 10 11 12 13 14 15 16 17; do
for fn in 0 1 2 3 4 5 6 7; do
     args="$args -netdev user,id=eth${slot}_${fn}"
     args="$args -device 
virtio-net-pci,addr=${slot}.${fn},netdev=eth${slot}_${fn},multifunction=on,romfile="
done
done

x86_64-softmmu/qemu-system-x86_64 -hda ~/images/linux.img ${args} 
-enable-kvm
One downside of these multifunction PCI devices is that hotplug doesn't work yet on those, which doesn't bother me but maybe someone else needs that.
AFAIK we don't have that yet anyway, although I did see a promising new patch that may find it's way into the pvetest repo soon.

What's of interest to me is if there's a way to create multifunction PCI devices, ie. a multiport NIC, without the use of the qdev -device command.
 

About

The Proxmox community has been around for many years and offers help and support for Proxmox VE, Proxmox Backup Server, and Proxmox Mail Gateway.
We think our community is one of the best thanks to people like you!

Get your subscription!

The Proxmox team works very hard to make sure you are running the best software and getting stable updates and security enhancements, as well as quick enterprise support. Tens of thousands of happy customers have a Proxmox subscription. Get yours easily in our online shop.

Buy now!