intel_iommu: Fix enable intel_iommu, Ubuntu 22.04 installation crashes
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
HWE Next |
Fix Released
|
Critical
|
Unassigned | ||
linux (Ubuntu) |
Fix Released
|
Undecided
|
Unassigned | ||
Focal |
Invalid
|
Undecided
|
Unassigned | ||
Jammy |
Fix Released
|
Medium
|
koba | ||
linux-oem-5.14 (Ubuntu) |
Invalid
|
Undecided
|
Unassigned | ||
Focal |
Fix Released
|
Undecided
|
koba | ||
Jammy |
Invalid
|
Undecided
|
Unassigned | ||
Kinetic |
Invalid
|
Undecided
|
Unassigned | ||
linux-oem-5.17 (Ubuntu) |
Invalid
|
Undecided
|
Unassigned | ||
Focal |
Invalid
|
Undecided
|
Unassigned | ||
Jammy |
Fix Released
|
Undecided
|
koba | ||
Kinetic |
Invalid
|
Undecided
|
Unassigned |
Bug Description
[Impact]
Ubuntu 22.04 installation crashes on our Intel Sapphire Rapids proto server.
Attaching the console logs.
Currently, it looks like disabling VT-D option in BIOS settings helps mitigate the issue.
Console logs indicate something is wrong in iommu/dmar subsystem.
[Fix]
The IOMMU driver shares the pasid table for PCI alias devices. When the
RID2PASID entry of the shared pasid table has been filled by the first
device, the subsequent device will encounter the "DMAR: Setup RID2PASID
failed" failure as the pasid entry has already been marked as present.
As the result, the IOMMU probing process will be aborted.
On the contrary, when any alias device is hot-removed from the system,
for example, by writing to /sys/bus/
RID2PASID will be cleared without any notifications to other devices.
As the result, any DMAs from those rest devices are blocked.
Sharing pasid table among PCI alias devices could save two memory pages
for devices underneath the PCIe-to-PCI bridges. Anyway, considering that
those devices are rare on modern platforms that support VT-d in scalable
mode and the saved memory is negligible, it's reasonable to remove this
part of immature code to make the driver feasible and stable.
[Test Case]
1. use the target machine(Intel Sapphire Rapids) and install the kernel with the fix.
2. boot the target machine
3. check dmesg if the error message exists
[ 8.120527] pci 0000:03:01.0: DMAR: Setup RID2PASID failed
[Where problems could occur]
After enable intel_iommu, the errors may be occurred.
We need to figure out one by one once the related errors are triggered in the future.
CVE References
summary: |
- intel_iommu: Fixes enable intel_iommu, Ubuntu 22.04 installation crashes + Fixes intel_iommu: enable intel_iommu, Ubuntu 22.04 installation + crashes |
no longer affects: | linux-oem-5.10 (Ubuntu) |
no longer affects: | linux-oem-5.10 (Ubuntu Focal) |
no longer affects: | linux-oem-5.10 (Ubuntu Jammy) |
no longer affects: | linux-oem-5.10 (Ubuntu Kinetic) |
Changed in linux (Ubuntu Jammy): | |
assignee: | nobody → koba (kobako) |
status: | Incomplete → In Progress |
Changed in linux (Ubuntu Kinetic): | |
assignee: | nobody → koba (kobako) |
status: | Incomplete → In Progress |
Changed in linux-oem-5.14 (Ubuntu Focal): | |
assignee: | nobody → koba (kobako) |
status: | New → In Progress |
Changed in linux-oem-5.17 (Ubuntu Jammy): | |
assignee: | nobody → koba (kobako) |
status: | New → In Progress |
summary: |
- Fixes intel_iommu: enable intel_iommu, Ubuntu 22.04 installation - crashes + Fix intel_iommu: enable intel_iommu, Ubuntu 22.04 installation crashes |
summary: |
- Fix intel_iommu: enable intel_iommu, Ubuntu 22.04 installation crashes + intel_iommu: Fix enable intel_iommu, Ubuntu 22.04 installation crashes |
tags: | added: dellserver oem-priority originate-from-1973127 |
no longer affects: | linux (Ubuntu Kinetic) |
Changed in linux (Ubuntu): | |
assignee: | koba (kobako) → nobody |
status: | In Progress → Invalid |
Changed in linux-oem-5.17 (Ubuntu Jammy): | |
status: | In Progress → Fix Committed |
Changed in linux (Ubuntu Focal): | |
status: | New → Invalid |
Changed in linux-oem-5.14 (Ubuntu Jammy): | |
status: | New → Invalid |
Changed in linux-oem-5.14 (Ubuntu Kinetic): | |
status: | New → Invalid |
Changed in linux-oem-5.17 (Ubuntu Focal): | |
status: | New → Invalid |
Changed in linux-oem-5.17 (Ubuntu Kinetic): | |
status: | New → Invalid |
Changed in linux-oem-5.14 (Ubuntu Focal): | |
status: | In Progress → Fix Committed |
Changed in linux (Ubuntu Jammy): | |
importance: | Undecided → Medium |
description: | updated |
tags: |
added: verification-done-jammy removed: verification-needed-jammy |
tags: |
added: verification-done-focal removed: verification-needed-focal |
Changed in linux (Ubuntu Jammy): | |
status: | In Progress → Fix Committed |
Changed in hwe-next: | |
importance: | Undecided → Critical |
status: | New → Fix Committed |
Changed in hwe-next: | |
status: | Fix Committed → Fix Released |
Changed in linux (Ubuntu): | |
status: | Invalid → Fix Released |
tags: | added: fixed-kinetic |
This bug is missing log files that will aid in diagnosing the problem. While running an Ubuntu kernel (not a mainline or third-party kernel) please enter the following command in a terminal window:
apport-collect 1982104
and then change the status of the bug to 'Confirmed'.
If, due to the nature of the issue you have encountered, you are unable to run this command, please add a comment stating that fact and change the bug status to 'Confirmed'.
This change has been made by an automated script, maintained by the Ubuntu Kernel Team.