You are not logged in.

#1 2020-02-04 01:28:15

nan0s7
Member
Registered: 2018-10-28
Posts: 10

5.5.1 breaks IOMMU

My current rEFInd boot parameters are:

ro root=UUID=... intel_iommu=on iommu=pt vfio_pci.ids=...

Checking dmesg via the below command,

dmesg | grep -i -e DMAR -e IOMMU

(from Arch Wiki on PCI passthrough via OVMF) shows:

[    0.000000] Command line: \\vmlinuz-linux ro root=UUID=716ad392-cdf7-46ac-819c-a348d9ccc2e6 amd_iommu=off intel_iommu=on iommu=pt vfio_pci.ids=10de:1b81,10de:10f0 initrd=\initramfs-linux.img
[    0.006760] ACPI: DMAR 0x0000000067F59708 0000A8 (v01 INTEL  SKL      00000001 INTL 00000001)
[    0.101755] Kernel command line: \\vmlinuz-linux ro root=UUID=716ad392-cdf7-46ac-819c-a348d9ccc2e6 amd_iommu=off intel_iommu=on iommu=pt vfio_pci.ids=10de:1b81,10de:10f0 initrd=\initramfs-linux.img
[    0.101791] DMAR: IOMMU enabled
[    0.138343] DMAR: Host address width 39
[    0.138343] DMAR: DRHD base: 0x000000fed90000 flags: 0x0
[    0.138346] DMAR: dmar0: reg_base_addr fed90000 ver 1:0 cap 1c0000c40660462 ecap 7e3ff0505e
[    0.138347] DMAR: DRHD base: 0x000000fed91000 flags: 0x1
[    0.138349] DMAR: dmar1: reg_base_addr fed91000 ver 1:0 cap d2008c40660462 ecap f050da
[    0.138350] DMAR: RMRR base: 0x00000067528000 end: 0x00000067547fff
[    0.138350] DMAR: RMRR base: 0x00000068800000 end: 0x00000078ffffff
[    0.138351] DMAR: [Firmware Bug]: No firmware reserved region can cover this RMRR [0x0000000068800000-0x0000000078ffffff], contact BIOS vendor for fixes
[    0.138354] DMAR: Parse DMAR table failure.
[    0.574995] iommu: Default domain type: Passthrough (set via kernel command line)
[    0.772910] AMD-Vi: AMD IOMMUv2 driver by Joerg Roedel <jroedel@suse.de>
[    0.772910] AMD-Vi: AMD IOMMUv2 functionality not available on this system

I've checked for a BIOS update via the built-in update checker my BIOS has.

I have an i7-6700k CPU, NVIDIA GTX 1070 GPU. This worked on the previous kernel (5.4.15) with the respective firmware (20191220.6871bff). I use the iGPU as my primary display source within Linux.

Apologies if this has been reported previously, or is an obvious issue; I did have a search and didn't find anything I thought was relevant. Thank you for reading, and for any ideas you may have to help.

Offline

#2 2020-02-04 01:40:37

loqs
Member
Registered: 2014-03-06
Posts: 9,823

Re: 5.5.1 breaks IOMMU

What is the full dmesg from 5.4.15 and 5.5.1?  On first glance looks to be caused by https://github.com/torvalds/linux/commi … 35eb1cd214 detecting a firmware bug.

Offline

#3 2020-02-04 01:48:24

Zod
Member
Registered: 2019-03-10
Posts: 280

Re: 5.5.1 breaks IOMMU

https://bugzilla.kernel.org/show_bug.cgi?id=206313

?

Last edited by Zod (2020-02-04 01:49:03)

Offline

#4 2020-02-04 01:59:27

nan0s7
Member
Registered: 2018-10-28
Posts: 10

Re: 5.5.1 breaks IOMMU

Ah damn I need to up my bug hunting skills. Thanks for the information! For now I'll stick with 5.4 then.

Offline

#5 2020-02-04 02:22:48

loqs
Member
Registered: 2014-03-06
Posts: 9,823

Re: 5.5.1 breaks IOMMU

What if you mark the memory range as reserved with the kernel option memmap=0x68800000$0x78ffffff (note the dollar may need to be escaped depending on the bootloader)
https://www.kernel.org/doc/Documentatio … meters.txt
Would also suggest adding the commits author to the CC list for the bug report Zod linked.

Offline

#6 2020-02-05 03:41:29

nan0s7
Member
Registered: 2018-10-28
Posts: 10

Re: 5.5.1 breaks IOMMU

loqs wrote:

What if you mark the memory range as reserved with the kernel option memmap=0x68800000$0x78ffffff (note the dollar may need to be escaped depending on the bootloader)
https://www.kernel.org/doc/Documentatio … meters.txt
Would also suggest adding the commits author to the CC list for the bug report Zod linked.

I gave it a try but I didn't get any different dmesg output, so I guess it didn't work. Tried with and without escaping the $.

Offline

#7 2020-02-12 18:16:29

ulteq
Member
Registered: 2016-07-16
Posts: 9

Re: 5.5.1 breaks IOMMU

Exact same issue (Intel Core i9-7960X on ASUS WS X299 SAGE):

uname -r
5.5.3-arch1-1
dmesg | grep -i -e DMAR -e IOMMU
[    0.000000] Command line: initrd=\intel-ucode.img initrd=\initramfs-linux.img cryptdevice=UUID=813d8f89-0d76-483b-8e67-52b0b38c2081:lvm root=/dev/mapper/lvm-root lang=en locale=en_US.UTF-8 intel_iommu=on iommu=pt rd.driver.pre=vfio-pci acpi_enforce_resources=lax mitigations=off
[    0.007071] ACPI: DMAR 0x000000003DE8E758 0000F8 (v01 ALASKA A M I    00000001 INTL 20091013)
[    0.195955] Kernel command line: initrd=\intel-ucode.img initrd=\initramfs-linux.img cryptdevice=UUID=813d8f89-0d76-483b-8e67-52b0b38c2081:lvm root=/dev/mapper/lvm-root lang=en locale=en_US.UTF-8 intel_iommu=on iommu=pt rd.driver.pre=vfio-pci acpi_enforce_resources=lax mitigations=off
[    0.196047] DMAR: IOMMU enabled
[    0.308658] DMAR: Host address width 46
[    0.308659] DMAR: DRHD base: 0x000000b5ffc000 flags: 0x0
[    0.308663] DMAR: dmar0: reg_base_addr b5ffc000 ver 1:0 cap 8d2078c106f0466 ecap f020df
[    0.308663] DMAR: DRHD base: 0x000000d8ffc000 flags: 0x0
[    0.308666] DMAR: dmar1: reg_base_addr d8ffc000 ver 1:0 cap 8d2078c106f0466 ecap f020df
[    0.308666] DMAR: DRHD base: 0x000000fbffc000 flags: 0x0
[    0.308671] DMAR: dmar2: reg_base_addr fbffc000 ver 1:0 cap 8d2078c106f0466 ecap f020df
[    0.308671] DMAR: DRHD base: 0x00000092ffc000 flags: 0x1
[    0.308673] DMAR: dmar3: reg_base_addr 92ffc000 ver 1:0 cap 8d2078c106f0466 ecap f020df
[    0.308674] DMAR: RMRR base: 0x0000003e1df000 end: 0x0000003e1e1fff
[    0.308675] DMAR: [Firmware Bug]: No firmware reserved region can cover this RMRR [0x000000003e1df000-0x000000003e1e1fff], contact BIOS vendor for fixes
[    0.308678] DMAR: Parse DMAR table failure.
[    2.015349] iommu: Default domain type: Passthrough (set via kernel command line)
[    2.320385] AMD-Vi: AMD IOMMUv2 driver by Joerg Roedel <jroedel@suse.de>
[    2.320386] AMD-Vi: AMD IOMMUv2 functionality not available on this system

Last edited by ulteq (2020-02-12 18:17:59)

Offline

#8 2020-02-12 19:09:57

magesing
Member
Registered: 2016-02-02
Posts: 8

Re: 5.5.1 breaks IOMMU

I have the same issue as well, and it's currently preventing me from passing through a GPU to my VM.
The problem is a bug in the kernel, here is the bug report  for that bug:
https://bugzilla.kernel.org/show_bug.cgi?id=206313

From that bug report we get the interesting hint:
"Revert f036c7fa0ab60b7ea47560c32c78e435eb1cd214 to fix."

So, it looks like if I were to check out the source-code of the kernel, I could revert that commit, compile the kernel, and get IOMMU working again.

Alternatively, a more practical fix might be to revert back to the latest 5.4.x kernel.

Following https://wiki.archlinux.org/index.php/do … g_packages I was able to downgrade to 5.4.8

sudo pacman -U /var/cache/pacman/pkg/linux-5.4.8.arch1-1-x86_64.pkg.tar.zst

However, my nvidia drivers weren't able to cope with the kernel downgrade, and even re-installing them under the downgraded kernel didn't give me a working graphical session.

Anyone have troubleshooting tips for installing nvidia drivers under a downgraded kernel?

Offline

#9 2020-02-12 20:29:02

ulteq
Member
Registered: 2016-07-16
Posts: 9

Re: 5.5.1 breaks IOMMU

When things like this happen I simply use the Arch Linux Archive to revert everything back to the last 'known to be working' state (in this case 2020/02/01).

Step 1: Modify your /etc/pacman.d/mirrorlist

Server=https://archive.archlinux.org/repos/2020/02/01/$repo/os/$arch

Step 2: Downgrade via

pacman -Syyuu

Step 3 (Optional): Revert the changes to the mirrorlist and do partial upgrades if you have to (until the issue is fixed)

Last edited by ulteq (2020-02-12 20:31:44)

Offline

#10 2020-02-12 21:45:20

magesing
Member
Registered: 2016-02-02
Posts: 8

Re: 5.5.1 breaks IOMMU

ulteq wrote:

When things like this happen I simply use the Arch Linux Archive to revert everything back to the last 'known to be working' state (in this case 2020/02/01).

Step 1: Modify your /etc/pacman.d/mirrorlist

Server=https://archive.archlinux.org/repos/2020/02/01/$repo/os/$arch

Step 2: Downgrade via

pacman -Syyuu

Step 3 (Optional): Revert the changes to the mirrorlist and do partial upgrades if you have to (until the issue is fixed)


Awesome, I'm currently running the downgrade.

I suppose I'll watch https://bugzilla.kernel.org/show_bug.cgi?id=206313 to see when the problem is fixed upstream, and then once that kernel version gets into arch I can go back to the live mirrors

Offline

#11 2020-02-12 22:01:00

loqs
Member
Registered: 2014-03-06
Posts: 9,823

Re: 5.5.1 breaks IOMMU

Offline

#12 2020-02-19 07:19:13

nan0s7
Member
Registered: 2018-10-28
Posts: 10

Re: 5.5.1 breaks IOMMU

whoops misread the commit

Last edited by nan0s7 (2020-02-19 07:20:43)

Offline

#13 2020-02-23 01:45:00

loqs
Member
Registered: 2014-03-06
Posts: 9,823

Re: 5.5.1 breaks IOMMU

https://git.kernel.org/pub/scm/linux/ke … anit.patch queued for 5.5.6
Edit:
Is the issue resolved by 5.5.6.arch1-1 currently in testing?

Last edited by loqs (2020-02-24 16:16:13)

Offline

#14 Yesterday 20:58:58

ulteq
Member
Registered: 2016-07-16
Posts: 9

Re: 5.5.1 breaks IOMMU

loqs wrote:

Is the issue resolved by 5.5.6.arch1-1 currently in testing?

Yes:

dmesg | grep -i -e DMAR -e IOMMU
[    0.000000] Command line: initrd=\intel-ucode.img initrd=\initramfs-linux.img cryptdevice=UUID=813d8f89-0d76-483b-8e67-52b0b38c2081:lvm root=/dev/mapper/lvm-root lang=en locale=en_US.UTF-8 intel_iommu=on iommu=pt rd.driver.pre=vfio-pci acpi_enforce_resources=lax mitigations=off
[    0.007180] ACPI: DMAR 0x000000003DE8E758 0000F8 (v01 ALASKA A M I    00000001 INTL 20091013)
[    0.321707] Kernel command line: initrd=\intel-ucode.img initrd=\initramfs-linux.img cryptdevice=UUID=813d8f89-0d76-483b-8e67-52b0b38c2081:lvm root=/dev/mapper/lvm-root lang=en locale=en_US.UTF-8 intel_iommu=on iommu=pt rd.driver.pre=vfio-pci acpi_enforce_resources=lax mitigations=off
[    0.321800] DMAR: IOMMU enabled
[    0.536821] DMAR: Host address width 46
[    0.536821] DMAR: DRHD base: 0x000000b5ffc000 flags: 0x0
[    0.536825] DMAR: dmar0: reg_base_addr b5ffc000 ver 1:0 cap 8d2078c106f0466 ecap f020df
[    0.536826] DMAR: DRHD base: 0x000000d8ffc000 flags: 0x0
[    0.536829] DMAR: dmar1: reg_base_addr d8ffc000 ver 1:0 cap 8d2078c106f0466 ecap f020df
[    0.536829] DMAR: DRHD base: 0x000000fbffc000 flags: 0x0
[    0.536834] DMAR: dmar2: reg_base_addr fbffc000 ver 1:0 cap 8d2078c106f0466 ecap f020df
[    0.536834] DMAR: DRHD base: 0x00000092ffc000 flags: 0x1
[    0.536836] DMAR: dmar3: reg_base_addr 92ffc000 ver 1:0 cap 8d2078c106f0466 ecap f020df
[    0.536837] DMAR: RMRR base: 0x0000003e1df000 end: 0x0000003e1e1fff
[    0.536838] DMAR: [Firmware Bug]: No firmware reserved region can cover this RMRR [0x000000003e1df000-0x000000003e1e1fff], contact BIOS vendor for fixes
[    0.536852] WARNING: CPU: 0 PID: 0 at drivers/iommu/intel-iommu.c:4326 dmar_parse_one_rmrr+0x7d/0x10d
[    0.536856] RIP: 0010:dmar_parse_one_rmrr+0x7d/0x10d
[    0.536869]  dmar_walk_remapping_entries+0x76/0x120
[    0.536870]  dmar_table_init+0xce/0x15e
[    0.536871]  ? dmar_free_dev_scope+0x70/0x70
[    0.536872]  ? intel_iommu_setup+0x20b/0x20b
[    0.536873]  ? iommu_resume+0x1b0/0x1b0
[    0.536874]  ? amd_iommu_bind_pasid+0x200/0x200
[    0.536875]  ? amd_iommu_v2_init+0x6d/0x6d
[    0.536891] DMAR: ATSR flags: 0x0
[    0.536892] DMAR-IR: IOAPIC id 12 under DRHD base  0xfbffc000 IOMMU 2
[    0.536893] DMAR-IR: IOAPIC id 11 under DRHD base  0xd8ffc000 IOMMU 1
[    0.536893] DMAR-IR: IOAPIC id 10 under DRHD base  0xb5ffc000 IOMMU 0
[    0.536894] DMAR-IR: IOAPIC id 8 under DRHD base  0x92ffc000 IOMMU 3
[    0.536894] DMAR-IR: IOAPIC id 9 under DRHD base  0x92ffc000 IOMMU 3
[    0.536895] DMAR-IR: HPET id 0 under DRHD base 0x92ffc000
[    0.536896] DMAR-IR: x2apic is disabled because BIOS sets x2apic opt out bit.
[    0.536896] DMAR-IR: Use 'intremap=no_x2apic_optout' to override the BIOS setting.
[    0.537599] DMAR-IR: Enabled IRQ remapping in xapic mode
[    2.233512] iommu: Default domain type: Passthrough (set via kernel command line)

Last edited by ulteq (Yesterday 20:59:46)

Offline

Board footer

Powered by FluxBB