Hi all,
I've used the below method to setup SR-IOV for my Intel X550T on Proxmox 7-x installs, but I can't seem to get it working on 8-x installs. Does anyone see what I'm missing or doing wrong?
Noting I'm using systemd boot since I have ZFS, no GRUB.
bootctl output.
Creation of VFs on boot.
Ethernet Controller PF and VF IDs and info.
The PF is set to autostart on boot.
#I loaded the vfio modules.
#Test VM Config. This is a Centos 7 guest.
I've used the below method to setup SR-IOV for my Intel X550T on Proxmox 7-x installs, but I can't seem to get it working on 8-x installs. Does anyone see what I'm missing or doing wrong?
Noting I'm using systemd boot since I have ZFS, no GRUB.
Code:
root@pve-labby:~# pveversion --verbose
proxmox-ve: 8.2.0 (running kernel: 6.8.4-2-pve)
pve-manager: 8.2.2 (running version: 8.2.2/9355359cd7afbae4)
proxmox-kernel-helper: 8.1.0
proxmox-kernel-6.8: 6.8.4-2
proxmox-kernel-6.8.4-2-pve-signed: 6.8.4-2
ceph-fuse: 17.2.7-pve3
corosync: 3.1.7-pve3
criu: 3.17.1-2
glusterfs-client: 10.3-5
ifupdown2: 3.2.0-1+pmx8
ksm-control-daemon: 1.5-1
libjs-extjs: 7.0.0-4
libknet1: 1.28-pve1
libproxmox-acme-perl: 1.5.0
libproxmox-backup-qemu0: 1.4.1
libproxmox-rs-perl: 0.3.3
libpve-access-control: 8.1.4
libpve-apiclient-perl: 3.3.2
libpve-cluster-api-perl: 8.0.6
libpve-cluster-perl: 8.0.6
libpve-common-perl: 8.2.1
libpve-guest-common-perl: 5.1.1
libpve-http-server-perl: 5.1.0
libpve-network-perl: 0.9.8
libpve-rs-perl: 0.8.8
libpve-storage-perl: 8.2.1
libspice-server1: 0.15.1-1
lvm2: 2.03.16-2
lxc-pve: 6.0.0-1
lxcfs: 6.0.0-pve2
novnc-pve: 1.4.0-3
proxmox-backup-client: 3.2.0-1
proxmox-backup-file-restore: 3.2.0-1
proxmox-kernel-helper: 8.1.0
proxmox-mail-forward: 0.2.3
proxmox-mini-journalreader: 1.4.0
proxmox-offline-mirror-helper: 0.6.6
proxmox-widget-toolkit: 4.2.1
pve-cluster: 8.0.6
pve-container: 5.0.10
pve-docs: 8.2.1
pve-edk2-firmware: 4.2023.08-4
pve-esxi-import-tools: 0.7.0
pve-firewall: 5.0.5
pve-firmware: 3.11-1
pve-ha-manager: 4.0.4
pve-i18n: 3.2.2
pve-qemu-kvm: 8.1.5-5
pve-xtermjs: 5.3.0-3
qemu-server: 8.2.1
smartmontools: 7.3-pve1
spiceterm: 3.3.0
swtpm: 0.8.0+pve1
vncterm: 1.8.0
zfsutils-linux: 2.2.3-pve2
bootctl output.
Code:
System:
Firmware: UEFI 2.40 (American Megatrends 5.11)
Firmware Arch: x64
Secure Boot: disabled (setup)
TPM2 Support: no
root@pve-labby:~# cat /etc/kernel/cmdline
root=ZFS=rpool/ROOT/pve-1 boot=zfs intel_iommu=on iommu=pt
Boot into FW: supported
Current Boot Loader:
Product: systemd-boot 252.22-1~deb12u1
Features: ✓ Boot counting
✓ Menu timeout control
✓ One-shot menu timeout control
✓ Default entry control
✓ One-shot entry control
✓ Support for XBOOTLDR partition
✓ Support for passing random seed to OS
✓ Load drop-in drivers
✓ Support Type #1 sort-key field
✓ Support @saved pseudo-entry
✓ Support Type #1 devicetree field
✓ Boot loader sets ESP information
ESP: /dev/disk/by-partuuid/a3a7f1ba-1682-40d1-8ef7-80406053a4a2
File: └─/EFI/SYSTEMD/SYSTEMD-BOOTX64.EFI
Random Seed:
Passed to OS: yes
System Token: set
Exists: yes
Available Boot Loaders on ESP:
ESP: /boot/efi (/dev/disk/by-partuuid/a3a7f1ba-1682-40d1-8ef7-80406053a4a2)
File: ├─/EFI/systemd/systemd-bootx64.efi (systemd-boot 252.22-1~deb12u1)
└─/EFI/BOOT/BOOTX64.EFI (systemd-boot 252.22-1~deb12u1)
Boot Loaders Listed in EFI Variables:
Title: Linux Boot Manager
ID: 0x0001
Status: active, boot-order
Partition: /dev/disk/by-partuuid/a3a7f1ba-1682-40d1-8ef7-80406053a4a2
File: └─/EFI/SYSTEMD/SYSTEMD-BOOTX64.EFI
Title: Linux Boot Manager
ID: 0x0000
Status: active, boot-order
Partition: /dev/disk/by-partuuid/27f12307-9d22-4d77-b8d0-c41a32fd870d
File: └─/EFI/SYSTEMD/SYSTEMD-BOOTX64.EFI
Title: UEFI OS
ID: 0x0006
Status: active, boot-order
Partition: /dev/disk/by-partuuid/27f12307-9d22-4d77-b8d0-c41a32fd870d
File: └─/EFI/BOOT/BOOTX64.EFI
Title: UEFI OS
ID: 0x0007
Status: active, boot-order
Partition: /dev/disk/by-partuuid/a3a7f1ba-1682-40d1-8ef7-80406053a4a2
File: └─/EFI/BOOT/BOOTX64.EFI
Boot Loader Entries:
$BOOT: /boot/efi (/dev/disk/by-partuuid/a3a7f1ba-1682-40d1-8ef7-80406053a4a2)
Default Boot Loader Entry:
type: Boot Loader Specification Type #1 (.conf)
title: Proxmox Virtual Environment
id: proxmox-6.8.4-2-pve.conf
source: /boot/efi/loader/entries/proxmox-6.8.4-2-pve.conf
version: 6.8.4-2-pve
linux: /EFI/proxmox/6.8.4-2-pve/vmlinuz-6.8.4-2-pve
initrd: /EFI/proxmox/6.8.4-2-pve/initrd.img-6.8.4-2-pve
options: root=ZFS=rpool/ROOT/pve-1 boot=zfs intel_iommu=on iommu=pt
Creation of VFs on boot.
Code:
root@pve-labby:~# cat /etc/systemd/system/sriov.service
[Unit]
Description=Script to enable SR-IOV on boot
#Replace the PCIe device, and desired amount of VFs as needed. Typically, you would create 1 VF per VM.
[Service]
Type=oneshot
ExecStart=/usr/bin/bash -c '/usr/bin/echo 4 > /sys/class/net/enp2s0f1/device/sriov_numvfs'
[Install]
WantedBy=multi-user.target
Ethernet Controller PF and VF IDs and info.
Code:
root@pve-labby:~# lspci | grep Ethernet
02:00.0 Ethernet controller: Intel Corporation Ethernet Controller X550 (rev 01)
02:00.1 Ethernet controller: Intel Corporation Ethernet Controller X550 (rev 01)
02:10.1 Ethernet controller: Intel Corporation X550 Virtual Function
02:10.3 Ethernet controller: Intel Corporation X550 Virtual Function
02:10.5 Ethernet controller: Intel Corporation X550 Virtual Function
02:10.7 Ethernet controller: Intel Corporation X550 Virtual Function
The PF is set to autostart on boot.
Code:
root@pve-labby:~# cat /etc/network/interfaces
auto enp2s0f1
iface enp2s0f1 inet manual
#I loaded the vfio modules.
Code:
root@pve-labby:~# cat /etc/modules
# /etc/modules: kernel modules to load at boot time.
#
# This file contains the names of kernel modules that should be loaded
# at boot time, one per line. Lines beginning with "#" are ignored.
# Parameters can be specified after the module name.
vfio
vfio_iommu_type1
vfio_pci
vfio_virqfd
#Test VM Config. This is a Centos 7 guest.
Code:
root@pve-labby:~# qm config 100
balloon: 0
boot: order=scsi0
cores: 20
cpu: host
hostpci0: 0000:02:10.1,pcie=1
machine: q35
memory: 24576
meta: creation-qemu=8.1.5,ctime=1718907736
name: SRIOV-TEST
numa: 0
ostype: l26
scsi0: local-zfs:vm-100-disk-0,iothread=1,size=128G
scsihw: virtio-scsi-single
smbios1: uuid=d0fde6f9-22cc-46b0-85f4-e89b68cc3f6b
sockets: 1
tags: dr.giggletouch
vmgenid: e2610704-5f09-4a35-9e0b-b7fdfe60fe8d
Last edited: