Intel® Acceleration Stack用户指南: Intel FPGA Programmable Acceleration Card N3000

ID 683040
日期 8/17/2020
Public
文档目录

10.2. 使用OPAE

fpgad是一项服务,可在硬件达到不可恢复的传感器阈值上限或者下限(也称为致命阈值)时,帮助保护服务器免于崩溃。fpgad能够监控Board Management Controller报告的20个传感器中的每一个。
$ sudo fpgainfo bmc
有关传感器的更多信息,请参考Intel FPGA Programmable Acceleration Card N3000 Board Management Controller (BMC) User Guide
注: 合格的OEM服务器系统应为工作负载提供所需的散热。因此,使用fpgad是可选的。
当安装了opae-tools-extra-1.3.6-4.x86_64.rpm软件包时, fpgad将放置在OPAE二进制文件目录中(默认值:/ usr / bin)。配置文件fpgad.cfg位于/etc/opae上 。监控fpgad操作的日志文件fpgad.log位于/var/lib/opae/上。

fpgad定期读取传感器值,如果这些值超过了fpgad.conf中指定的警告阈值或硬件定义的警告阈值,那么它会屏蔽PCIe Advanced Error Reporting (AER)寄存器,使 Intel® FPGA PAC能够避免系统复位。

使用下面命令来启动fpgad服务:
$ sudo systemctl start fpgad

配置文件仅包含关键传感器12V Aux Voltage (sensor 25)和12 V Backplane Voltage (sensor 3)的阈值设置。这些传感器没有硬件定义的警告阈值,因此fpgad依赖于配置文件。其他两个关键传感器FPGA Core Temperature (sensor 12)和Board Temperature (sensor 13)有硬件定义的警告阈值和上表中提到的致命阈值。当传感器达到警告阈值时,fpgad使用此信息来屏蔽PCIe AER寄存器。

位于/etc/opae/上的fpgad.cfg文件(配置sensor 12V Aux Voltage (sensor 25))的快照如下所示:
"fpgad-vc": {
                        "configuration": {
                                "cool-down": 30,
                                "config-sensors-enabled": true,
                                "sensors": [
                                        {
                                                "id": 25,
                                                "low-warn": 11.40,
                                                "low-fatal": 10.56
                                        },
                                ]
                        },
                        "enabled": true,
                        "plugin": "libfpgad-vc.so",
                        "devices": [
                                [ "0x8086", "0x0b30" ],
                                [ "0x8086", "0x0b31" ]
                        ]
                }
您必须在12V Aux Voltage条目下面对12V Backplane Voltage (sensor 3)创建另一个条目:
"fpgad-vc": {
                        "configuration": {
                                "cool-down": 30,
                                "config-sensors-enabled": true,
                                "sensors": [
                                        {
                                                "id": 25,
                                                "low-warn": 11.40,
                                                "low-fatal": 10.56
                                        }
                                ]
                        },
                        "enabled": true,
                        "plugin": "libfpgad-vc.so",
                        "devices": [
                                [ "0x8086", "0x0b30" ],
                                [ "0x8086", "0x0b31" ]
                        ]
                }, 

"fpgad-vc": {
                        "configuration": {
                                "cool-down": 30,
                                "config-sensors-enabled": true,
                                "sensors": [
                                        {
                                                "id": 3,
                                                "low-warn": 11.40,
                                                "low-fatal": 10.56
                                        }
                                ]
                        },
                        "enabled": true,
                        "plugin": "libfpgad-vc.so",
                        "devices": [
                                [ "0x8086", "0x0b30" ],
                                [ "0x8086", "0x0b31" ]
                        ]
                }
通过监控日志文件可以查看是否达到警告阈值的上限或者下限。例如:
tail -f /var/lib/opae/fpgad.log | grep “sensor.*warning”
fpgad-vc: sensor 'FPGA Die Temperature' warning

在传感器值达到致命阈值的上限或者下限之前,您必须采取适当的措施从此警告中恢复。达到警告阈值限制时,守护程序将屏蔽AER寄存器,日志文件将指示传感器已跳闸。

样例输出:FPGA Core Temperature超过警告阈值限制的上限时的警告消息。

Ex: tail -f /var/lib/opae/fpgad.log 
fpgad-vc: saving previous ECAP_AER+0x08 value 0x003ff030 for 0000:5d:00.0
fpgad-vc: saving previous ECAP_AER+0x14 value 0x000031c1 for 0000:5d:00.0
fpgad-vc: sensor 'FPGA Die Temperature' still tripped.
样例输出:当电压超过警告阈值限制的下限时的警告消息:
fpgad-vc: sensor '12V AUX Voltage' warning.
fpgad-vc: saving previous ECAP_AER+0x08 value 0x00100000 for 0000:ae:00.0
fpgad-vc: saving previous ECAP_AER+0x14 value 0x00002000 for 0000:ae:00.0
fpgad-vc: sensor '12V AUX Voltage' still tripped.
fpgad-vc: sensor '12V AUX Voltage' still tripped.

如果达到致命阈值限制的上限或者下限,那么需要重启服务器才能恢复 Intel® FPGA PAC N3000。在传感器值处于正常范围内(高于警告阈值下限或低于警告阈值上限)之后,fpgad将对AER进行解屏蔽。

当达到致命阈值上限或者下限时的样例输出:
fpgad-vc: failed to read sensor xx
停止fpgad
$ sudo systemctl stop fpgad.service
检查fpgad的状态:
$ sudo systemctl status fpgad.service
可选:要使fpgad在引导时重启,请执行
$ sudo systemctl enable fpgad.service
请运行以下命令来查看systemctl命令的完整列表:
$ systemctl -h