I've got a Dell XR-12 with an Intel X710. I need to enable SR-IOV, but it's not allowing it.
Version Info:
IOMMU is enabled:
lspci:
getting the named instance:
and looking at the ethtool for ens4f3np3:
But, if I try to enable the virtual functions on the interface, I get the following:
There are numerous posts on the X710 and SR-IOV, but I've not been able to replicate the success of any of them in my efforts. Any ideas would be greatly appreciated.
Version Info:
root@pve:~# pveversion --verbose
proxmox-ve: 8.3.0 (running kernel: 6.8.12-5-pve)
pve-manager: 8.3.1 (running version: 8.3.1/fb48e850ef9dde27)
proxmox-kernel-helper: 8.1.0
proxmox-kernel-6.8: 6.8.12-5
proxmox-kernel-6.8.12-5-pve-signed: 6.8.12-5
proxmox-kernel-6.8.12-4-pve-signed: 6.8.12-4
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+pmx11
ksm-control-daemon: 1.5-1
libjs-extjs: 7.0.0-5
libknet1: 1.28-pve1
libproxmox-acme-perl: 1.5.1
libproxmox-backup-qemu0: 1.4.1
libproxmox-rs-perl: 0.3.4
libpve-access-control: 8.2.0
libpve-apiclient-perl: 3.3.2
libpve-cluster-api-perl: 8.0.10
libpve-cluster-perl: 8.0.10
libpve-common-perl: 8.2.9
libpve-guest-common-perl: 5.1.6
libpve-http-server-perl: 5.1.2
libpve-network-perl: 0.10.0
libpve-rs-perl: 0.9.1
libpve-storage-perl: 8.3.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.5.0-1
proxmox-backup-client: 3.3.2-1
proxmox-backup-file-restore: 3.3.2-2
proxmox-firewall: 0.6.0
proxmox-kernel-helper: 8.1.0
proxmox-mail-forward: 0.3.1
proxmox-mini-journalreader: 1.4.0
proxmox-offline-mirror-helper: 0.6.7
proxmox-widget-toolkit: 4.3.3
pve-cluster: 8.0.10
pve-container: 5.2.2
pve-docs: 8.3.1
pve-edk2-firmware: 4.2023.08-4
pve-esxi-import-tools: 0.7.2
pve-firewall: 5.1.0
pve-firmware: 3.14-2
pve-ha-manager: 4.0.6
pve-i18n: 3.3.2
pve-qemu-kvm: 9.0.2-4
pve-xtermjs: 5.3.0-3
qemu-server: 8.3.2
smartmontools: 7.3-pve1
spiceterm: 3.3.0
swtpm: 0.8.0+pve1
vncterm: 1.8.0
zfsutils-linux: 2.2.6-pve1
IOMMU is enabled:
root@pve:~# dmesg | grep -e DMAR -e IOMMU
[ 0.012551] ACPI: DMAR 0x000000006F7FD000 0000E8 (v01 DELL PE_SC3 00000001 DELL 00000001)
[ 0.012572] ACPI: Reserving DMAR table memory at [mem 0x6f7fd000-0x6f7fd0e7]
[ 0.220268] DMAR: IOMMU enabled
[ 0.541696] DMAR: Host address width 46
[ 0.541697] DMAR: DRHD base: 0x000000bb7fc000 flags: 0x0
[ 0.541707] DMAR: dmar0: reg_base_addr bb7fc000 ver 4:0 cap 8ed008c40780466 ecap 60000f050df
[ 0.541709] DMAR: DRHD base: 0x000000d0ffc000 flags: 0x0
[ 0.541712] DMAR: dmar1: reg_base_addr d0ffc000 ver 4:0 cap 8ed008c40780466 ecap 60000f050df
[ 0.541714] DMAR: DRHD base: 0x000000e67fc000 flags: 0x0
[ 0.541717] DMAR: dmar2: reg_base_addr e67fc000 ver 4:0 cap 8ed008c40780466 ecap 60000f050df
[ 0.541719] DMAR: DRHD base: 0x000000fb7fc000 flags: 0x0
[ 0.541722] DMAR: dmar3: reg_base_addr fb7fc000 ver 4:0 cap 8ed008c40780466 ecap 60000f050df
[ 0.541723] DMAR: DRHD base: 0x000000a5ffc000 flags: 0x1
[ 0.541726] DMAR: dmar4: reg_base_addr a5ffc000 ver 4:0 cap 8ed008c40780466 ecap 60000f050df
[ 0.541727] DMAR: RMRR base: 0x000000693d8000 end: 0x000000693dafff
[ 0.541729] DMAR: ATSR flags: 0x0
[ 0.541731] DMAR-IR: IOAPIC id 8 under DRHD base 0xa5ffc000 IOMMU 4
[ 0.541733] DMAR-IR: HPET id 0 under DRHD base 0xa5ffc000
[ 0.541734] DMAR-IR: Queued invalidation will be enabled to support x2apic and Intr-remapping.
[ 0.543513] DMAR-IR: Enabled IRQ remapping in x2apic mode
[ 1.212700] DMAR: No SATC found
[ 1.212702] DMAR: dmar2: Using Queued invalidation
[ 1.212708] DMAR: dmar1: Using Queued invalidation
[ 1.212711] DMAR: dmar0: Using Queued invalidation
[ 1.212712] DMAR: dmar4: Using Queued invalidation
[ 1.215826] DMAR: Intel(R) Virtualization Technology for Directed I/O
lspci:
root@pve:~# lspci | grep X710
8a:00.0 Ethernet controller: Intel Corporation Ethernet Controller X710 for 10GbE SFP+ (rev 02)
8a:00.1 Ethernet controller: Intel Corporation Ethernet Controller X710 for 10GbE SFP+ (rev 02)
8a:00.2 Ethernet controller: Intel Corporation Ethernet Controller X710 for 10GbE SFP+ (rev 02)
8a:00.3 Ethernet controller: Intel Corporation Ethernet Controller X710 for 10GbE SFP+ (rev 02)
getting the named instance:
root@pve:~# ls -l /sys/bus/pci/devices/0000:8a:00.3/net/
total 0
drwxr-xr-x 5 root root 0 Jan 28 12:40 ens4f3np3
and looking at the ethtool for ens4f3np3:
root@pve:~# ethtool ens4f3np3
Settings for ens4f3np3:
Supported ports: [ FIBRE ]
Supported link modes: 1000baseX/Full
Supported pause frame use: Symmetric Receive-only
Supports auto-negotiation: Yes
Supported FEC modes: Not reported
Advertised link modes: 1000baseX/Full
Advertised pause frame use: No
Advertised auto-negotiation: Yes
Advertised FEC modes: Not reported
Speed: 1000Mb/s
Duplex: Full
Auto-negotiation: on
Port: FIBRE
PHYAD: 0
Transceiver: internal
Supports Wake-on: d
Wake-on: d
Current message level: 0x00000007 (7)
drv probe link
Link detected: yes
root@pve:~# ethtool -i ens4f3np3
driver: i40e
version: 6.8.12-5-pve
firmware-version: 9.50 0x8000f25d 23.0.8
expansion-rom-version:
bus-info: 0000:8a:00.3
supports-statistics: yes
supports-test: yes
supports-eeprom-access: yes
supports-register-dump: yes
supports-priv-flags: yes
But, if I try to enable the virtual functions on the interface, I get the following:
root@pve:~# echo 4 > /sys/class/net/ens4f3np3/device/sriov_numvfs
-bash: /sys/class/net/ens4f3np3/device/sriov_numvfs: Permission denied
There are numerous posts on the X710 and SR-IOV, but I've not been able to replicate the success of any of them in my efforts. Any ideas would be greatly appreciated.