Print

CAS虚拟机使用Nvidia GPU卡直通时,建议在虚拟机内部关闭MSI中断

2021-02-07 发表

组网及说明


问题描述

部分局点的CAS虚拟机使用Nvidia GPU卡直通时,该虚拟机所在的CVK概率性发生重启。

过程分析

1、CAS日志并无异常打印。

2、硬件侧无明显异常。

3、经 Nvidia 侧分析,该问题为 GPU开启msi/msi-x会有概率踩未做内存映射的区域导致发生不可纠正错误,进而造成host OS重启。

即GPU未关闭MSI,概率性导致内存越界问题,最终触发宿主机重启。

解决方法

建议在虚拟机内部关闭MSI中断,防止该问题发生。(注意:需要业务侧评估虚拟机内部关闭MSI对业务侧的影响。)

具体操作如下:

1.    Centos 7.2系统

1.1查看GPU MSI中断
1.1.1查询GPU pci

Cvk上执行命令,查询pci设备号。如:0000:00:0a.0

~# lcpci –D –d 10de:


1.1.2查看GPU MSI/MSI-X中断状态

Lspci命令查看pci配置空间。

~# lcpci –vvvv –s 0000:00:0a.0 |egrep “MSI|MSI-X” |grep –i Enable

开始状态:Enable+

关闭状态:Enalbe-


1.2关闭MSI中断

grub启动参数中增加”pci=nomsi”

~# vim /etc/default/grub


1.2.1传统模式BIOS系统

         更新grub.cfg文件

~# grub2-mkconfig –o /boot/grub2/grub.cfg


1.2.2 UEFI模式BIOS系统

~# grub2-mkconfig –o /boot/efi/EFI/centos/grub.cfg

1.2.3重启虚拟机

         ~# reboot

         ~# cat /proc/cmdline   #有“pci=nomsi”字符串配置成功。


window 2012 r2系统

2.1查看GPU MSI状态

l  Cmd命令行执行“regedit”打开注册表;


l  找到PCI设备目录表,【HKEY_LOCAL_MACHINE->SYSTEM->CurrentControlSet->Enum->PCI


l  NVIDIA厂商vendor ID 10deGPU卡(以T4卡为例)device ID 1eb8,对应PCI设备是以“VEN_10DE&DEV_1EB8”开头;


l  查看GPU卡的MSI注册表MSISupported数据值。【3&..->Device Parameters->Interrupt Mannagement->MessageSignaledInterruptProperties->MSISupported

开启:0x1

关闭:0x0

\

2.2关闭MSI

l  双击【MSISupported】,修改数值数据为0.

         

l  重启虚拟机