DMAR: DRHD: handling fault status reg 3 on GPU passthrough to LibreELEC VM

cosmos

Renowned Member
Apr 1, 2013
134
5
83
I've created a LibreELEC 12 VM, based on an image suitable for Intel N150 graphics and written a howto here: https://forum.libreelec.tv/thread/29811-x86-64-le-12-as-a-proxmox-vm-with-gpu-pass-through/

Using GPU passthrough I watch Kodi on my television. It works perfectly, until it doesn't (after 2-3 videos). The screen starts flickering and I receive the following messages in dmesg:
Code:
[50828.888678] dmar_fault: 384015 callbacks suppressed
[50828.888690] DMAR: DRHD: handling fault status reg 3
[50828.888699] DMAR: [DMA Read NO_PASID] Request device [00:02.0] fault addr 0x3                                                                                                             87878fff000 [fault reason 0x06] PTE Read access is not set
[50828.888735] DMAR: DRHD: handling fault status reg 3
[50828.888740] DMAR: [DMA Read NO_PASID] Request device [00:02.0] fault addr 0x3                                                                                                             87878fff000 [fault reason 0x06] PTE Read access is not set
[50828.888795] DMAR: DRHD: handling fault status reg 3
[50828.888799] DMAR: [DMA Read NO_PASID] Request device [00:02.0] fault addr 0x3                                                                                                             87878fff000 [fault reason 0x06] PTE Read access is not set
[50828.888812] DMAR: DRHD: handling fault status reg 3
[50833.889443] dmar_fault: 486366 callbacks suppressed
[50833.889451] DMAR: DRHD: handling fault status reg 3
[50833.889457] DMAR: [DMA Read NO_PASID] Request device [00:02.0] fault addr 0x3                                                                                                             3ce4fff3000 [fault reason 0x06] PTE Read access is not set
[50833.889501] DMAR: DRHD: handling fault status reg 3
[50833.889504] DMAR: [DMA Read NO_PASID] Request device [00:02.0] fault addr 0x3                                                                                                             3ce4fff3000 [fault reason 0x06] PTE Read access is not set
[50833.889513] DMAR: DRHD: handling fault status reg 3
[50833.889516] DMAR: [DMA Read NO_PASID] Request device [00:02.0] fault addr 0x3                                                                                                             fffffff3000 [fault reason 0x06] PTE Read access is not set
[50833.889560] DMAR: DRHD: handling fault status reg 3
Any idea if and how this can be solved? In the thread I'm describing my PVE and VM configuration.
 
Stumbled upon a thread in Arch forums with a similar issue on a system (no hypervisor), that was solved by modifying GRUB_CMDLINE_LINUX_DEFAULT to "quiet iommu=pt,igfx_off" (basically adding ,igfx_off to the iommu option). Did not solve the issue...
 
Tried it, but did not notice any changed in dmesg. Regardless of igfx_off is used, I received the following:
Code:
..
[    0.027691] DMAR: IOMMU enabled
[    0.069681] DMAR-IR: IOAPIC id 2 under DRHD base  0xfed91000 IOMMU 1
[    0.261239] pci 0000:00:02.0: DMAR: Skip IOMMU disabling for graphics
...
Not an expert here, but does the third line state the essentially it's like igfx_off is always enabled?
 
Last edited:
Addendum: the libreelec VM does not start when intel_iommu=on,igfx_off is used. Error:
Code:
Cannot open iommu_group: No such file or directory
Obviously I had to revert to my previous setup containing only iommu=pt.

What's driving me crazy is that the issue appears after some videos are played (1-2 hours); it's not an issue appearing immediately.
 
Last edited:
Shouldn't the kernel complain about an invalid option though?
No, it simply ignores it. Maybe it warns in the log but that depends on the module.
Tried it, but did not notice any changed in dmesg. Regardless of igfx_off is used, I received the following:
Code:
..
[    0.027691] DMAR: IOMMU enabled
[    0.069681] DMAR-IR: IOAPIC id 2 under DRHD base  0xfed91000 IOMMU 1
[    0.261239] pci 0000:00:02.0: DMAR: Skip IOMMU disabling for graphics
...
Not an expert here, but does the third line state the essentially it's like igfx_off is always enabled?
IOMMU is automatically disabled for some integrated graphics (Broadwell, I think). It says "skip IOMMU disabling" which to me means that is does not do igfx_off automatically.
Addendum: the libreelec VM does not start when intel_iommu=on,igfx_off is used. Error:
Code:
Cannot open iommu_group: No such file or directory
Obviously I had to revert to my previous setup containing only iommu=pt.
If you disable IOMMU for the integrated graphics then you cannot passthrough the integrated graphics. I did not read the whole thread but it seems to me that you want contradictory things.
What's driving me crazy is that the issue appears after some videos are played (1-2 hours); it's not an issue appearing immediately.
Integrated graphics is always problematic. I have no experience with your hardware and cannot help with this, sorry.