Comment 0 for bug 2020022

Revision history for this message
Adrian Huang (ahuang12) wrote : OS cannot boot successfully when enabling VMD in UEFI setup

When enabling VMD in UEFI setup, OS cannot boot successfully. And, the panic leads to the system reboot. The following log is shown:

[ 166.605518] DMAR: VT-d detected Invalidation Queue Error: Reason f
[ 166.605522] DMAR: VT-d detected Invalidation Time-out Error: SID ffff
[ 166.612445] DMAR: VT-d detected Invalidation Completion Error: SID ffff
[ 166.612447] DMAR: QI HEAD: UNKNOWN qw0 = 0x0, qw1 = 0x0
[ 166.612449] DMAR: QI PRIOR: UNKNOWN qw0 = 0x0, qw1 = 0x0
...

Additional info:
  * The issue happens on both Lenovo SE350 server and Lenovo SR850 v2 server.

Debugging info and fix commit info:
  * `git bisect` indicates the offending commit is 6aab5622296b ("PCI: vmd: Clean up domain before enumeration"). The root cause is that VMD driver tries to clear a PCI configuration space range when resetting a VMD domain (https://github.com/torvalds/linux/blob/master/drivers/pci/controller/vmd.c#L544), which leads to the failure.

  * Another `git bisect` indicates the fix commit is 20f3337d350c ("x86: don't use REP_GOOD or ERMS for small memory clearing). I confirmed that this commit can fix the issue.

Would it be possible to include the commit 20f3337d350c in Ubuntu 22.04.2 kernel?