KVM直通Tesla T4 GPU安裝windows虛擬機出現PCIE報錯指向GPU

問題描述

多個客戶在使用kvm虛擬機搭配T4 GPU創建windows虛擬機時,物理機出現PCIE報錯,且報錯指向具體的GPU。

測試發現只有在安裝GPU驅動時會引發物理機PCIE報錯,具體由以下兩種情況觸發:

  • kvm使用包含T4 GPU 驅動的windows鏡像創建虛擬機時
  • kvm使用純淨的windows鏡像創建虛擬機正常,在windows虛擬機下安裝GPU驅動時

詳細報錯示例:

#服務器事件日誌出現PCIE報錯
14b | 06/02/2020 | 16:57:59 | Critical Interrupt PCIE | Bus Uncorrectable error | Asserted
14c | 06/02/2020 | 16:58:14 | Critical Interrupt PCIE | Bus Uncorrectable error | Asserted
#服務器黑盒日誌給出了PCIE的報錯busno
[Jun 02 2020 16:57:59] : PCIE Error: locate:NPSENTBusNo 62 DevNo 0 FuncNo 0 Bus Uncorrectable Error assertion.
[Jun 02 2020 16:57:59] : Current BIOS Code(Port80): 0x00.                         
[Jun 02 2020 16:58:14] : PCIE Error: locate:NPSENTBusNo 181 DevNo 0 FuncNo 0 Bus Uncorrectable Error assertion.
[Jun 02 2020 16:58:14] : Current BIOS Code(Port80): 0x00.

其中黑盒日誌BusNo 62和BusNo 181分別指向3E:00和B5:00兩個GPU。

KVM直通Tesla T4 GPU安裝windows虛擬機出現PCIE報錯指向GPU

KVM直通Tesla T4 GPU安裝windows虛擬機出現PCIE報錯指向GPU

解決辦法

linux宿主機每次開機進系統後,執行命令清除root port SERR信息,可將以下命令添加進開機自啓動配置中,需要注意root port的device_id 不要搞錯。

setpci -s 3a:00.0 3e.w=0:2
setpci -s ae:00.0 3e.w=0:2

問題根因

直通連接的T4 GPU卡,在Windows 虛擬機下觸發GPU MSI-X表的訪問,這將導致來自T4不支持的請求(UR)響應,該錯誤由PCIe root port觸發系統處理器上的不可屏蔽中斷(NMI),從而導致不可恢復的系統錯誤。

NVIDA提交BUG給RedHat KVM團隊建議修復方案:在禁用相應的MMIO訪問時,使PCIe root的端口映射無效。 並將嘗試對設備的MMIO訪問僅向用戶生成SIGBUS響應,並且將避免導致KVM虛擬機管理程序上的NMI的系統錯誤。

NV已提交了這個紅帽系統錯誤,後續會在新的linux內核中進行優化。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章