USBパススルー機能の使用中にusbus(USBバス)ワールドで「PF Exception 14」(Page Fault) が発生し、ESXiホストがパープルスクリーン (PSOD) になる
search cancel

USBパススルー機能の使用中にusbus(USBバス)ワールドで「PF Exception 14」(Page Fault) が発生し、ESXiホストがパープルスクリーン (PSOD) になる

book

Article ID: 433985

calendar_today

Updated On:

Products

VMware vSphere ESXi

Issue/Introduction

免責事項: これは英文の記事「ESXi host is failing with a Purple Diagnostic Screen (PSOD) displaying "PF Exception 14" (Page Fault) within the usbus (USB Bus) world while utilizing USB passthrough features」の日本語訳です。記事はベストエフォートで翻訳を進めているため、ローカライズ化コンテンツは最新情報ではない可能性があります。最新情報は英語版の記事で参照してください。


ESXi ホストがパープルスクリーン(PSOD)を表示して停止します。バックトレースには、USB subsystem(usbus)で Page Fault(PF Exception14)が発生したことを示すエントリが含まれます。
以下のようなスタックトレースエントリが表示されます。

#PF Exception 14 in world ##### :usbus1 IP #x######d addr #x###
*PCPU84:#####/usbus1
PCPU 0: VVVSUVSVVVIVUVVUSVSVVVVVVSIUSVUSSUVVUSSVSUVSSVVSVSVSVVVVUVSVSV
PCPU 64: VSUSVSVSVSVSVVVIVUUVSVVUSSVIIVSV
0x####### : [0x#######]xhci_transfer_insert@(vmkusb)#<None>+0x17d stack: 0x#######
0x####### : [0x#######9]xhci_conf igure_msg@(vmkusb)#<None>+0x1c6 stack: 0x#######
0x#######: [0x#######]usb_process@(vnkusb)#<None>+0x## stack: 0x#######
0x####### ## : [0x#######]vnkWor 1dFunc@vmkernel#nover+0x49 stack: 0x#######
0x####### : [0x#######]CpuSched_StartWor 1d@vmkernel#nover+0x## stack: 0x0
0x#######: [0x####### ]Debug_IsInitialized@vmkernel#nover+0xc stack: 0x0
base fs=0x0 gs=0x####### Kgs=0x0
No place on disk to dump data.
Finalized dump header (15/15) FileDump: Successful.
No port for remote debugger.

Note:
上記ログの抜粋は出力例です。日付、時刻、および環境変数は、お客様の環境によって異なる場合があります。

Cause

この問題は、USBスレッドが、適切に初期化または割り当てられていない Direct Memory Access(DMA)用の無効なメモリアドレスにアクセスしたために発生します。
具体的には、パススルー用に構成されたUSBデバイスのハードウェア障害または通信タイムアウトが原因です。クラッシュ発生時、USBデバイスがxHCIコントローラに接続または応答できなかったため、panic が発生しました。

Resolution

この問題を解決するには、故障しているUSBデバイスを特定して交換する必要があります。
ホストがクラッシュしているため、仮想マシンの構成を確認するか、過去のログからどのデバイスが使用されていたかを特定します。

  • USBパススルー機能を持つ仮想マシンを特定する:
    • vCenter Server または ESXi ホストクライアントにログインします。
    • 影響を受けるホスト上で現在実行されている仮想マシンの「設定の編集」構成を確認します。
    • 「Host USB Device」または「USB Passthrough」としてリストされているデバイスを探します。
  • grep -i "usb" /var/run/logvmkernel.log」コマンドを実行することで、次のエントリが表示される場合があります。

      vmkernel: cpu73:2098838)Starting service usbarbitrator
      vmkernel: cpu73:2098838)Activating Jumpstart plugin usbarbitrator.
      vmkernel: cpu28:2099030)vmkusb: umass_ioctl:3872: umass_ioctl: Skip reserved devices: vmhba32
      vmkernel: cpu73:2098838)Jumpstart plugin usbarbitrator activated.
      vmkwarning: cpu6:2098196)WARNING: vmkusb: udev 0x43128c0a3028, endpoint 0x82: invalid state 5: Failure
      vmkwarning: cpu6:2098196)WARNING: vmkusb: udev 0x43128c0a3028, endpoint 0x0: invalid state 5: Failure