This repository was archived by the owner on May 30, 2023. It is now read-only.
sys-kernel: enable IOMMU on arm64#2235
Merged
jepio merged 1 commit intoflatcar-archive:mainfrom Oct 21, 2022
Merged
Conversation
On Gigabyte R152-P31 arm64 servers, the Flatcar PXE images hang during the boot
process, making them unusable, while Fedora CoreOS images work.
The kernel seems to start correctly, however it invariably ends up printing
this message and hanging:
ata1.00: qc timeout (cmd 0xec)
ahci 000c:01:00.0: AHCI controller unavailable!
pcieport 000c:00:01.0: AER: Uncorrected (Non-Fatal) error received: 000c:00:00.0
ata1.00: failed to IDENTIFY (I/O error, err_mask=0x4)
pcieport 000c:00:01.0: PCIe Bus Error: severity=Uncorrected (Non-Fatal), type=Transaction Layer, (Requester ID)
pcieport 000c:00:01.0: device [1def:e101] error status/mask=00004000/00400000
pcieport 000c:00:01.0: [14] CmpltTO (First)
ahci 000c:01:00.0: AHCI controller unavailable!
ahci 000c:01:00.0: AER: can't recover (no error_detected callback)
pcieport 000c:00:01.0: AER: device recovery failed
pcieport 000c:00:01.0: AER: Multiple Uncorrected (Non-Fatal) error received: 000c:00:00.0
Enabling IOMMU seems to make the problem disappear.
d780059 to
239bdb3
Compare
Contributor
|
CI running here http://jenkins.infra.kinvolk.io:8080/job/container/job/packages_all_arches/574/ (internal only link, sorry). |
jepio
approved these changes
Oct 20, 2022
Contributor
|
All tests pass, reran EM because first attempt timed-out due to parallel test runs on another PR. In case someone ends up reading this: yes, this might cause performance to be lower. If you prefer to tradeoff security for performance, look at running iommu in lazy unmap mode or passthrough mode. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to subscribe to this conversation on GitHub.
Already have an account?
Sign in.
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
sys-kernel: enable IOMMU on arm64
On Gigabyte R152-P31 arm64 servers, the Flatcar PXE images hang during the boot process, making them unusable, while Fedora CoreOS images work.
The kernel seems to start correctly, however it invariably ends up printing this message and hanging:
Enabling IOMMU seems to make the problem disappear.
How to use
Build the kernel and boot it. It might be hard to test without real hardware, but it did fix it for our Gigabyte R152-P31 server.
Testing done
Ran the following commands to build the kernel and initramfs:
Then, after uploading both vmlinuz and the initramfs to our pxe server, booted it with the following grub config:
... and the following ignition config:
With the config change, the kernel boots properly and I get to the login screen. Without it, the kernel eventually hangs and dumps stacktraces every so often.
changelog/directory (user-facing change, bug fix, security fix, update)/bootand/usrsize, packages, list files for any missing binaries, kernel modules, config files, kernel modules, etc.Fixes flatcar/Flatcar#871.