Re: Number of the max supported VFs are different
Hi Michal, Get it, Thank you! On Mon, Mar 7, 2022 at 7:36 PM Michal Prívozník wrote: > On 3/3/22 03:55, Yalan Zhang wrote: > > Hi there, > > > > I have an Intel X520 network card, and I find the max supported VFs are > > different. > > Please check below outputs: > > > > # lspci -vvv -s 04:00.0 > > 04:00.0 Ethernet controller: Intel Corporation Ethernet 10G 2P X520 > > Adapter (rev 01) > > ... > > Capabilities: [160 v1] Single Root I/O Virtualization (SR-IOV) > > IOVCap: Migration-, Interrupt Message Number: 000 > > IOVCtl: Enable- Migration- Interrupt- MSE- ARIHierarchy+ > > IOVSta: Migration- > > ** Initial VFs: 64, Total VFs: 64**, Number of VFs: 0, Function > > Dependency Link: 00 > > VF offset: 128, stride: 2, Device ID: 10ed > > Supported Page Size: 0553, System Page Size: 0001 > > Region 0: Memory at 9440 (64-bit, prefetchable) > > Region 3: Memory at 9450 (64-bit, prefetchable) > > VF Migration: offset: , BIR: 0 > > Kernel driver in use: ixgbe > > Kernel modules: ixgbe > > > > # cat /sys/class/net/enp4s0f0/device/sriov_totalvfs > > 63 > > > > # echo 64 > /sys/class/net/enp4s0f0/device/sriov_numvfs > > -bash: echo: write error: Numerical result out of range > > # echo 63 > /sys/class/net/enp4s0f0/device/sriov_numvfs > > # cat /sys/class/net/enp4s0f0/device/sriov_numvfs > > 63 > > > > The lspci command says the Total VFs supported is 64, while in the file > > "sriov_totalvfs" says it's 63. > > And the sriov_numvfs file will take precedence. > > Why are the numbers different? Just a little curious. > > I believe this comes from the driver implementation: > > /* ixgbe driver limit the max number of VFs could be enabled to > * 63 (IXGBE_MAX_VF_FUNCTIONS - 1) > */ > #define IXGBE_MAX_VFS_DRV_LIMIT (IXGBE_MAX_VF_FUNCTIONS - 1) > > > https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/drivers/net/ethernet/intel/ixgbe/ixgbe_sriov.h#n7 > > Michal > >
Re: Number of the max supported VFs are different
On 3/3/22 03:55, Yalan Zhang wrote: > Hi there, > > I have an Intel X520 network card, and I find the max supported VFs are > different. > Please check below outputs: > > # lspci -vvv -s 04:00.0 > 04:00.0 Ethernet controller: Intel Corporation Ethernet 10G 2P X520 > Adapter (rev 01) > ... > Capabilities: [160 v1] Single Root I/O Virtualization (SR-IOV) > IOVCap: Migration-, Interrupt Message Number: 000 > IOVCtl: Enable- Migration- Interrupt- MSE- ARIHierarchy+ > IOVSta: Migration- > ** Initial VFs: 64, Total VFs: 64**, Number of VFs: 0, Function > Dependency Link: 00 > VF offset: 128, stride: 2, Device ID: 10ed > Supported Page Size: 0553, System Page Size: 0001 > Region 0: Memory at 9440 (64-bit, prefetchable) > Region 3: Memory at 9450 (64-bit, prefetchable) > VF Migration: offset: , BIR: 0 > Kernel driver in use: ixgbe > Kernel modules: ixgbe > > # cat /sys/class/net/enp4s0f0/device/sriov_totalvfs > 63 > > # echo 64 > /sys/class/net/enp4s0f0/device/sriov_numvfs > -bash: echo: write error: Numerical result out of range > # echo 63 > /sys/class/net/enp4s0f0/device/sriov_numvfs > # cat /sys/class/net/enp4s0f0/device/sriov_numvfs > 63 > > The lspci command says the Total VFs supported is 64, while in the file > "sriov_totalvfs" says it's 63. > And the sriov_numvfs file will take precedence. > Why are the numbers different? Just a little curious. I believe this comes from the driver implementation: /* ixgbe driver limit the max number of VFs could be enabled to * 63 (IXGBE_MAX_VF_FUNCTIONS - 1) */ #define IXGBE_MAX_VFS_DRV_LIMIT (IXGBE_MAX_VF_FUNCTIONS - 1) https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/drivers/net/ethernet/intel/ixgbe/ixgbe_sriov.h#n7 Michal
Number of the max supported VFs are different
Hi there, I have an Intel X520 network card, and I find the max supported VFs are different. Please check below outputs: # lspci -vvv -s 04:00.0 04:00.0 Ethernet controller: Intel Corporation Ethernet 10G 2P X520 Adapter (rev 01) ... Capabilities: [160 v1] Single Root I/O Virtualization (SR-IOV) IOVCap: Migration-, Interrupt Message Number: 000 IOVCtl: Enable- Migration- Interrupt- MSE- ARIHierarchy+ IOVSta: Migration- ** Initial VFs: 64, Total VFs: 64**, Number of VFs: 0, Function Dependency Link: 00 VF offset: 128, stride: 2, Device ID: 10ed Supported Page Size: 0553, System Page Size: 0001 Region 0: Memory at 9440 (64-bit, prefetchable) Region 3: Memory at 9450 (64-bit, prefetchable) VF Migration: offset: , BIR: 0 Kernel driver in use: ixgbe Kernel modules: ixgbe # cat /sys/class/net/enp4s0f0/device/sriov_totalvfs 63 # echo 64 > /sys/class/net/enp4s0f0/device/sriov_numvfs -bash: echo: write error: Numerical result out of range # echo 63 > /sys/class/net/enp4s0f0/device/sriov_numvfs # cat /sys/class/net/enp4s0f0/device/sriov_numvfs 63 The lspci command says the Total VFs supported is 64, while in the file "sriov_totalvfs" says it's 63. And the sriov_numvfs file will take precedence. Why are the numbers different? Just a little curious. Thank you! --- Best Regards, Yalan Zhang IRC: yalzhang