21PENNY 发表于 2023-7-14 18:50

x520丢失SR-IOV

本帖最后由 21PENNY 于 2023-7-19 17:32 编辑

捡了一张联想x520,刚开始在12600k+z690上测试VFs完全正常,三天后插到5900x+x570平台,ARI capability和SR-IOV capability都丢失了,自然无法创建VFs了;再把这张x520插回12600k+z690,依然没有ARI capability和SR-IOV capability。
用Intel BootUtil刷了BootIMG.FLB依然没有用。
求教有没有哪位朋友遇到过类似问题。

把后面的解决方法置顶了,网卡遇到类似问题的朋友可以参考下。

21PENNY 发表于 2023-7-19 17:15

在ubuntu 18.04中通过使用eeupdate64e在linux上把HP 560SFP+(也就是HP的x520 da2)的eeprom刷到这张联想x520-da2上解决了此问题(ethtool -i看是从0x800004e0刷到了0x800006fc),我不知道我做了什么让eeprom不太正常,但是这种勉强算掉固件的事其实也算是比较常见了。

eeupdate64e下载链接,shell下的efi和DOS下的exe比较容易找到,这里不列出了
https://platinasystems.com/downloads/tools/

(1)在解决问题的过程中,回顾了一下E810对PASID capability的支持是靠eeprom(定义网卡的PCI/PCIe配置空间、MAC地址等信息)而不是ddp package(网卡的片上OS)。
补充:我看外网论坛有人说现代网卡的固件是驱动自己去加载的,对8125和AX200是成立的,对x520、x540这种显然不成立(当然这些卡确实也很老了),对x710和E810只能算部分成立。

(2)以及dell售后问答中对于i350支持SR-IOV的解释提到SR-IOV capability应该是靠eeprom定义的;又看了下ixgbe的驱动,发现只是会向eeprom的mailbox里写了点东西,其它都是从eeprom里读东西。那么接下来就是开始想办法刷固件。

(3)这里首先走到了一个坑里,搜intel x520 firmware update或82599es firmware update,给出的工具主要是BootUtil和BootIMG.FLG,看名字都感觉不太对,搜lenovo x520 firmware update,联想官网给出的工具也是这个,这实际上是用来更新option rom的,网卡的UEFI、Legacy、PXE、WOL等功能。

(4)继续搜能找到dell的工具,但是它是集成工具,没有提供单独的eeprom文件。

(5)这时想的是再买一个网卡回来用eeupdate64e或ethtool把eeprom给dump出来(intel网卡驱动的eeprom_ops写的很完整),然后在黄鱼买了一张HP 560SPF+,网卡已经寄出的时候,搜了下这张卡的eeprom,结果居然信息非常丰富,链接如下:

https://support.hpe.com/connect/s/product?language=zh_CN&kmpmoid=5357560&tab=driversAndSoftware

windows和linux的版本都有,点进去之后可以找到许多网卡不同版本的固件,包含eeprom,nvm,OROM
https://support.hpe.com/connect/s/softwaredetails?language=zh_CN&softwareId=MTX_c713d5a47a804bedb30a1d4135

把联想x520-da2的eeprom dump出来比对一下,除了制造商信息的字符串之外,差别有,但不是很大,不考虑尾的checksum部分,肯定有哪里是决定了ARI和SR-IOV capability的。

这里接下来有两个思路:
(1)用ethtool -E把不同的部分都改成和HP_562i_LOM_82599_2P_SFP_4.25_0.54_800006FC相一致

(2)做好当前EEPROM的备份(建议用eeupdate64e备份成EEP格式),把HP_562i_LOM_82599_2P_SFP_4.25_0.54_800006FC刷进去

直接用(2)
                  sudo ./eeupdate64e -nic=1 -d HP_562i_LOM_82599_2P_SFP_4.25_0.54_800006FC.txt
                  sudo ./eeupdate64e -nic=2 -d HP_562i_LOM_82599_2P_SFP_4.25_0.54_800006FC.txt
(HP提供的固件rpm包,解压出来之后找到这个带有82599的txt文件,这个就是EEP格式文件,EEP格式是明文字符串,不是raw的二进制bin,其实刷一个也可以,两个port是共用的eeprom)。

重启,在dmesg中能看到VFs分配资源,在lspci -s xx:xx.x -vvvv中看到ARI和SR-IOV capability,在/sys/bus/pci/devices/xxxx:xx:xx.x/中能创建vf就成功了(PVE Web UI中能创建)。

rdlrdlrdl321 发表于 2023-7-14 19:35

我的x520在AIO主机里esxi6.7下就没成功开启过SR-IOV

雨季不再来 发表于 2023-7-15 10:03

rdlrdlrdl321 发表于 2023-7-14 19:35
我的x520在AIO主机里esxi6.7下就没成功开启过SR-IOV

我在esxi7、esxi8下面也都没有成功过,都是提示需要重启,但反复重启,也还是出现这个提示。按网上说的修改那个check参数也不起作用。是不是还需要cpu和主板支持才能开启sr-iov?

fyc858 发表于 2023-7-15 10:07

雨季不再来 发表于 2023-7-15 10:03
我在esxi7、esxi8下面也都没有成功过,都是提示需要重启,但反复重启,也还是出现这个提示。按网上说的修 ...

BIOS里要开启SR-IOV CPU要支持VT-D BIOS里X520应该有设置选项,还要启用SR-IOV并且设置最大虚拟网卡数量,默认是1或者0,最后部分主板还要插在和CPU直通的PCIE插槽上才行,走南桥的不一定能成功,看主板兼容性

天道太酬勤 发表于 2023-7-15 16:02

本帖最后由 天道太酬勤 于 2023-7-15 16:05 编辑

除了网卡就没改过其他的了?不过我这边SR-IOV在Linux下表现很棒,在Windows下表现很差,都想换回VirtIO了,不知道有大佬指点一下没

雨季不再来 发表于 2023-7-15 17:50

fyc858 发表于 2023-7-15 10:07
BIOS里要开启SR-IOV CPU要支持VT-D BIOS里X520应该有设置选项,还要启用SR-IOV并且设置最大虚拟网卡数量 ...

cpu支持vt-d,bios里面没有sr-iov
选项,网卡插在显卡插槽的。

21PENNY 发表于 2023-7-18 10:11

天道太酬勤 发表于 2023-7-15 16:02
除了网卡就没改过其他的了?不过我这边SR-IOV在Linux下表现很棒,在Windows下表现很差,都想换回VirtIO了, ...

是的,仅仅换了个平台,SR-IOV和ARI在PCIe配置空间里就消失了,周末在外网论坛搜到一个情况,他的x520 port1对应PF的SR-IOV完全正常,port2对应的PF也是SR-IOV消失了,两个port的eeprom完全一致。

LambdaDelta 发表于 2023-7-18 10:14

雨季不再来 发表于 2023-7-15 17:50
cpu支持vt-d,bios里面没有sr-iov
选项,网卡插在显卡插槽的。

你哪家的主板?

雨季不再来 发表于 2023-7-18 10:16

LambdaDelta 发表于 2023-7-18 10:14
你哪家的主板?

屏蔽家的B560M ELITE

LambdaDelta 发表于 2023-7-18 10:24

雨季不再来 发表于 2023-7-18 10:16
屏蔽家的B560M ELITE

屏蔽家那没事了,sriov就别想了。
安心换个华硕,华擎啥的

wun_008 发表于 2023-7-18 10:39

直通和sr-iov 有什么区别啊 我用的是直通

雨季不再来 发表于 2023-7-18 10:41

LambdaDelta 发表于 2023-7-18 10:24
屏蔽家那没事了,sriov就别想了。
安心换个华硕,华擎啥的

哦,这样啊,明白了。

21PENNY 发表于 2023-7-18 10:52

wun_008 发表于 2023-7-18 10:39
直通和sr-iov 有什么区别啊 我用的是直通

直通是整个port透传到虚拟机,SR-IOV是硬件层面把port切分成若干份(主要是靠网卡内的vSwitch),这样一个port的带宽就能被若干台虚拟机共享,效率比虚拟 or 半虚拟网卡高。

wun_008 发表于 2023-7-18 14:13

21PENNY 发表于 2023-7-18 10:52
直通是整个port透传到虚拟机,SR-IOV是硬件层面把port切分成若干份(主要是靠网卡内的vSwitch),这样一 ...

原来如此 切成好多虚拟网卡吧

testcb00 发表于 2023-7-18 15:28

ESXi SR-IOV License 要Enterprise Plus吧?

叮叮炒面 发表于 2023-7-18 16:00

fyc858 发表于 2023-7-15 10:07
BIOS里要开启SR-IOV CPU要支持VT-D BIOS里X520应该有设置选项,还要启用SR-IOV并且设置最大虚拟网卡数量 ...

我就是插在南桥上的PCIE插槽,怎么搞都不成功,BIOS里也看不到SR-IOV的选项。

shahiyuan 发表于 2023-9-14 02:08

本帖最后由 shahiyuan 于 2023-9-14 02:10 编辑

21PENNY 发表于 2023-7-19 17:15
在ubuntu 18.04中通过使用eeupdate64e在linux上把HP 560SFP+(也就是HP的x520 da2)的eeprom刷到这张联想x5 ...

联想的是公版卡?
刷完指示灯颜色正常吗?理论上刷完有点小问题,公版卡颜色是绿色,hpe的是橘色,有概率不开机都会亮灯。

shahiyuan 发表于 2023-9-14 02:20

天道太酬勤 发表于 2023-7-15 16:02
除了网卡就没改过其他的了?不过我这边SR-IOV在Linux下表现很棒,在Windows下表现很差,都想换回VirtIO了, ...

用Intel Bootutil刷一下官方最新BootIMG.FLB试试。在官网下载固件包,都在里面。
x520这些卡最早有12年的,卖家一般不更新固件的,好多都是出厂时的,建议可以刷一下。
有条件有一定动手能力的顺便找到相应的eeprom升级一下,应该能解决问题。

21PENNY 发表于 2023-9-15 01:33

本帖最后由 21PENNY 于 2023-9-15 01:38 编辑

shahiyuan 发表于 2023-9-14 02:20
用Intel Bootutil刷一下官方最新BootIMG.FLB试试。在官网下载固件包,都在里面。
x520这些卡最早有12年的 ...

BootIMG是刷OPROM并且可以切换oprom的启动方式

21PENNY 发表于 2023-9-15 01:37

shahiyuan 发表于 2023-9-14 02:08
联想的是公版卡?
刷完指示灯颜色正常吗?理论上刷完有点小问题,公版卡颜色是绿色,hpe的是橘色,有概率 ...

联想的PCB不是公版,惠普和intel公版基本一致;我用的时候刷完没有任何问题,HPE的固件多一个温度上报,联想刷上之后这个温度上一直是0,其它功能一切正常。

shahiyuan 发表于 2023-9-15 02:49

21PENNY 发表于 2023-9-15 01:33
BootIMG是刷OPROM并且可以切换oprom的启动方式

我理解bootimg是固件,而eeprom类似主板的bios
bootutil在升级时输入命令就可以改变网卡的启动模式,PXE在启动时很烦,我改成了UEFI启动,清爽
我手中大把品牌X520的eeprom.eep,还有部分x710的

shahiyuan 发表于 2023-9-15 02:53

21PENNY 发表于 2023-9-15 01:37
联想的PCB不是公版,惠普和intel公版基本一致;我用的时候刷完没有任何问题,HPE的固件多一个温度上报, ...

惠普和intel公版的eep相差蛮大,dell和hp的版型看起来和公版差不多,但是eep不通用,会有小问题。而且他们各自在eep里面设置了品牌检验代码

21PENNY 发表于 2023-9-15 10:14

本帖最后由 21PENNY 于 2023-9-15 10:22 编辑

shahiyuan 发表于 2023-9-15 02:49
我理解bootimg是固件,而eeprom类似主板的bios
bootutil在升级时输入命令就可以改变网卡的启动模式,PXE ...

我以前也是这样理解的,后来我觉得OPROM就是OPROM只是跟PCIe设备的boot过程有关,只是固件的一部分,而eeprom可以确定网卡的PCIe capability,是固件中最重要的部分。https://www.intel.com/content/dam/support/us/en/documents/network-and-i-o/ethernet-products/bootutil.txt
后来的x710和E810又增加了ddp package跑一个片上OS能够支持更加复杂的功能,同时又给eeprom增加了NVM Update Tool接口可以开关某些capability(比如E810的pasid capability)以及配置某些功能。

21PENNY 发表于 2023-9-15 10:21

本帖最后由 21PENNY 于 2023-9-15 10:24 编辑

shahiyuan 发表于 2023-9-15 02:53
惠普和intel公版的eep相差蛮大,dell和hp的版型看起来和公版差不多,但是eep不通用,会有小问题。而且他 ...

你说的有道理,看来我是运气好,恰好惠普的固件在联想上也可以使用(这一个多月每天都SR-IOV的iperf3和iperf测试,目前没有什么问题)。

可以看配置空间的Vital Product Data这一栏:

2d:00.0 Ethernet controller: Intel Corporation 82599ES 10-Gigabit SFI/SFP+ Network Connection (rev 01)
        Subsystem: Hewlett-Packard Company Ethernet 10Gb 2-port 562i Adapter
        Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx+
        Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
        Latency: 0, Cache Line Size: 64 bytes
        Interrupt: pin A routed to IRQ 80
        IOMMU group: 26
        Region 0: Memory at fcb00000 (32-bit, non-prefetchable)
        Region 2: I/O ports at f020
        Region 3: Memory at fcd04000 (32-bit, non-prefetchable)
        Expansion ROM at fcc80000
        Capabilities: Power Management version 3
                Flags: PMEClk- DSI+ D1- D2- AuxCurrent=0mA PME(D0+,D1-,D2-,D3hot+,D3cold+)
                Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=1 PME-
        Capabilities: MSI: Enable- Count=1/1 Maskable+ 64bit+
                Address: 0000000000000000Data: 0000
                Masking: 00000000Pending: 00000000
        Capabilities: MSI-X: Enable+ Count=64 Masked-
                Vector table: BAR=3 offset=00000000
                PBA: BAR=3 offset=00002000
        Capabilities: Express (v2) Endpoint, MSI 00
                DevCap:        MaxPayload 512 bytes, PhantFunc 0, Latency L0s <512ns, L1 <64us
                        ExtTag- AttnBtn- AttnInd- PwrInd- RBE+ FLReset+ SlotPowerLimit 0.000W
                DevCtl:        CorrErr+ NonFatalErr+ FatalErr+ UnsupReq+
                        RlxdOrd+ ExtTag- PhantFunc- AuxPwr- NoSnoop+ FLReset-
                        MaxPayload 512 bytes, MaxReadReq 512 bytes
                DevSta:        CorrErr+ NonFatalErr- FatalErr- UnsupReq+ AuxPwr+ TransPend-
                LnkCap:        Port #0, Speed 5GT/s, Width x8, ASPM L0s, Exit Latency L0s unlimited
                        ClockPM- Surprise- LLActRep- BwNot- ASPMOptComp-
                LnkCtl:        ASPM Disabled; RCB 64 bytes, Disabled- CommClk+
                        ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt-
                LnkSta:        Speed 5GT/s (ok), Width x8 (ok)
                        TrErr- Train- SlotClk+ DLActive- BWMgmt- ABWMgmt-
                DevCap2: Completion Timeout: Range ABCD, TimeoutDis+ NROPrPrP- LTR-
                       10BitTagComp- 10BitTagReq- OBFF Not Supported, ExtFmt- EETLPPrefix-
                       EmergencyPowerReduction Not Supported, EmergencyPowerReductionInit-
                       FRS- TPHComp- ExtTPHComp-
                       AtomicOpsCap: 32bit- 64bit- 128bitCAS-
                DevCtl2: Completion Timeout: 50us to 50ms, TimeoutDis- LTR- OBFF Disabled,
                       AtomicOpsCtl: ReqEn-
                LnkCtl2: Target Link Speed: 5GT/s, EnterCompliance- SpeedDis-
                       Transmit Margin: Normal Operating Range, EnterModifiedCompliance- ComplianceSOS-
                       Compliance De-emphasis: -6dB
                LnkSta2: Current De-emphasis Level: -3.5dB, EqualizationComplete- EqualizationPhase1-
                       EqualizationPhase2- EqualizationPhase3- LinkEqualizationRequest-
                       Retimer- 2Retimers- CrosslinkRes: unsupported
        Capabilities: Vital Product Data
                Product Name: HP Ethernet 10Gb 2-port 562i Adapter
                Read-only fields:
                        Part number: N/A
                        Engineering changes: N/A
                        Serial number: N/A
                        Vendor specific: 11W/8W PCIeG2x8 2p 10Gb SFP+ Intel 82599
                        Reserved: checksum good, 0 byte(s) reserved
                Read/write fields:
                        Vendor specific: 3.8.04
                        Vendor specific: 2.8.20
                        Vendor specific: 2.3.06
                        Asset tag: N/A
                        System specific: xxxxxxxxxxxxxxxx
                        System specific: xxxxxxxxxxxxxxxx
                End
        Capabilities: Advanced Error Reporting
                UESta:        DLP- SDES- TLP- FCP- CmpltTO- CmpltAbrt- UnxCmplt- RxOF- MalfTLP- ECRC- UnsupReq- ACSViol-
                UEMsk:        DLP- SDES- TLP- FCP- CmpltTO- CmpltAbrt- UnxCmplt- RxOF- MalfTLP- ECRC- UnsupReq- ACSViol-
                UESvrt:        DLP+ SDES- TLP- FCP+ CmpltTO- CmpltAbrt- UnxCmplt- RxOF+ MalfTLP+ ECRC- UnsupReq- ACSViol-
                CESta:        RxErr- BadTLP- BadDLLP- Rollover- Timeout- AdvNonFatalErr+
                CEMsk:        RxErr- BadTLP- BadDLLP- Rollover- Timeout- AdvNonFatalErr+
                AERCap:        First Error Pointer: 00, ECRCGenCap+ ECRCGenEn- ECRCChkCap+ ECRCChkEn-
                        MultHdrRecCap- MultHdrRecEn- TLPPfxPres- HdrLogCap-
                HeaderLog: 00000000 00000000 00000000 00000000
        Capabilities: Device Serial Number 00-e0-ec-ff-ff-36-9f-44
        Capabilities: Alternative Routing-ID Interpretation (ARI)
                ARICap:        MFVC- ACS-, Next Function: 1
                ARICtl:        MFVC- ACS-, Function Group: 0
        Capabilities: 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: 384, stride: 2, Device ID: 10ed
                Supported Page Size: 00000553, System Page Size: 00000001
                Region 0: Memory at 00000000e2400000 (64-bit, prefetchable)
                Region 3: Memory at 00000000e2300000 (64-bit, prefetchable)
                VF Migration: offset: 00000000, BIR: 0
        Kernel driver in use: ixgbe
        Kernel modules: ixgbe

我用的联想x520是长这个样子:https://gw.alicdn.com/imgextra/i2/34609532/O1CN01pNkI152KHi172W7kO_!!34609532.jpg_Q75.jpg_.webp

我还有一张惠普的x520(560SFP+),目前和联想这张固件版本一致,温度上报正常。

shahiyuan 发表于 2023-9-15 12:10

本帖最后由 shahiyuan 于 2023-9-15 12:21 编辑

21PENNY 发表于 2023-9-15 10:21
你说的有道理,看来我是运气好,恰好惠普的固件在联想上也可以使用(这一个多月每天都SR-IOV的iperf3和ip ...
哈哈哈哈,这卡我也收藏了一张,晚点备份一下eeprom,发给你
Lenovo 82599es eep点我

21PENNY 发表于 2023-9-15 13:55

shahiyuan 发表于 2023-9-15 12:10
哈哈哈哈,这卡我也收藏了一张,晚点备份一下eeprom,发给你


哈哈,非常感谢

summerq 发表于 2023-9-15 22:53

本帖最后由 summerq 于 2023-9-15 22:57 编辑

保持关注,我也有此卡

inSeek 发表于 2023-9-15 23:57

顺道请教下
MCX4121A-ACAT在ESXI下为啥就8个VF... 我记得spec里有127个

老饭 发表于 2023-9-16 15:05

inSeek 发表于 2023-9-15 23:57
顺道请教下
MCX4121A-ACAT在ESXI下为啥就8个VF... 我记得spec里有127个

vf 数量是手动设置的
页: [1] 2
查看完整版本: x520丢失SR-IOV