Re: Dell XPS 13 9360: DMAR errors `DRHD: handling fault status reg 2` and `[INTR-REMAP] Request device [f0:1f.0] fault index 0x0`

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



[Cc: +linux-i2c, +linux-acpi, +Hans, cf original message [1]]

Dear Christian,


Thank you for your reply.

Am 19.01.24 um 18:57 schrieb Christian A. Ehrhardt:

On Fri, Jan 19, 2024 at 01:59:29PM +0100, Paul Menzel wrote:
On a Dell XPS 13 9360 Linux 6.6.8, 6.6.11 and 6.7 (and earlier versions) log
the lines below when resuming from ACPI S3 (deep):

     [    0.000000] Linux version 6.7-amd64 (debian-kernel@xxxxxxxxxxxxxxxx) (x86_64-linux-gnu-gcc-13 (Debian 13.2.0-9) 13.2.0, GNU ld (GNU Binutils for Debian) 2.41.50.20231227) #1 SMP PREEMPT_DYNAMIC Debian 6.7-1~exp1 (2024-01-08)
     [    0.000000] Command line: BOOT_IMAGE=/vmlinuz-6.7-amd64 root=UUID=32e29882-d94d-4a92-9ee4-4d03002bfa29 ro quiet pci=noaer mem_sleep_default=deep log_buf_len=8M
     […]
     [    0.000000] DMI: Dell Inc. XPS 13 9360/0596KF, BIOS 2.21.0 06/02/2022
     […]
     [   99.711230] PM: suspend entry (deep)
     […]
     [   99.722101] printk: Suspending console(s) (use no_console_suspend to debug)
     [  100.285178] ACPI: EC: interrupt blocked
     [  100.319908] ACPI: PM: Preparing to enter system sleep state S3
     [  100.331793] ACPI: EC: event blocked
     [  100.331798] ACPI: EC: EC stopped
     [  100.331800] ACPI: PM: Saving platform NVS memory
     [  100.335224] Disabling non-boot CPUs ...
     [  100.337412] smpboot: CPU 1 is now offline
     [  100.341065] smpboot: CPU 2 is now offline
     [  100.346441] smpboot: CPU 3 is now offline
     [  100.353086] ACPI: PM: Low-level resume complete
     [  100.353129] ACPI: EC: EC started
     [  100.353129] ACPI: PM: Restoring platform NVS memory
     [  100.355219] Enabling non-boot CPUs ...
     [  100.355244] smpboot: Booting Node 0 Processor 1 APIC 0x2
     [  100.355954] CPU1 is up
     [  100.355972] smpboot: Booting Node 0 Processor 2 APIC 0x1
     [  100.356698] CPU2 is up
     [  100.356716] smpboot: Booting Node 0 Processor 3 APIC 0x3
     [  100.357371] CPU3 is up
     [  100.360217] ACPI: PM: Waking up from system sleep state S3
     [  100.668380] ACPI: EC: interrupt unblocked
     [  100.668598] pcieport 0000:00:1c.0: Intel SPT PCH root port ACS workaround enabled
     [  100.668606] pcieport 0000:00:1c.4: Intel SPT PCH root port ACS workaround enabled
     [  100.668643] pcieport 0000:00:1d.0: Intel SPT PCH root port ACS workaround enabled
     [  100.690996] DMAR: DRHD: handling fault status reg 2
     [  100.691001] DMAR: [INTR-REMAP] Request device [f0:1f.0] fault index 0x0 [fault reason 0x25] Blocked a compatibility format interrupt request

But I am unable to find the device f0:1f.0:

This is probably an ACPI enumerated device. These are platform
devices that pose as a PCI device for the purpose of interrupt
remapping but do not enumerate via PCI. The PCI ID assigned to
these hidden devices is enumerated via ANDD entries in the
DMAR table. You can decode this table with from
/sys/firmware/acpi/tables/DMAR with iasl to verify.

I disassembled it with `iasl -d` (attached), and there are indeed two devices:

    [058h 0088 001h]           Device Scope Type : 03 [IOAPIC Device]
    [059h 0089 001h]                Entry Length : 08
    [05Ah 0090 002h]                    Reserved : 0000
    [05Ch 0092 001h]              Enumeration ID : 02
    [05Dh 0093 001h]              PCI Bus Number : F0

    [05Eh 0094 002h]                    PCI Path : 1F,00


[060h 0096 001h] Device Scope Type : 04 [Message-capable HPET Device]
    [061h 0097 001h]                Entry Length : 08
    [062h 0098 002h]                    Reserved : 0000
    [064h 0100 001h]              Enumeration ID : 00
    [065h 0101 001h]              PCI Bus Number : 00

    [066h 0102 002h]                    PCI Path : 1F,00

    $ grep Name DMAR.dsl
* Format: [HexOffset DecimalOffset ByteLength] FieldName : FieldValue (in hex)
    [068h 0104 001h]           Device Scope Type : 05 [Namespace Device]
    [070h 0112 001h]           Device Scope Type : 05 [Namespace Device]
[0B8h 0184 002h] Subtable Type : 0004 [ACPI Namespace Device Declaration]
    [0C0h 0192 00Fh]                 Device Name : "\_SB.PCI0.I2C0"
[0D4h 0212 002h] Subtable Type : 0004 [ACPI Namespace Device Declaration]
    [0DCh 0220 00Fh]                 Device Name : "\_SB.PCI0.I2C1"

Your dmesg shows two ANDD records for your I2C controllers,
so somehow the I2C controller is sending interrupts that DMAR
doesn't like (probably because the I2C controller is not yet
resumed properly).

Thus my guess is that this is an issue with the suspend/resume hooks
of the I2C controllers not with the IOMMU.

I am adding the Linux I2C and ACPI folks. Maybe they have an idea.


Kind regards,

Paul


[1]: https://lore.kernel.org/all/5517f76a-94ad-452c-bae6-34ecc0ec4831@xxxxxxxxxxxxx/
/*
 * Intel ACPI Component Architecture
 * AML/ASL+ Disassembler version 20230628 (64-bit version)
 * Copyright (c) 2000 - 2023 Intel Corporation
 * 
 * Disassembly of DMAR, Sat Jan 20 09:34:20 2024
 *
 * ACPI Data Table [DMAR]
 *
 * Format: [HexOffset DecimalOffset ByteLength]  FieldName : FieldValue (in hex)
 */

[000h 0000 004h]                   Signature : "DMAR"    [DMA Remapping Table]
[004h 0004 004h]                Table Length : 000000F0
[008h 0008 001h]                    Revision : 01
[009h 0009 001h]                    Checksum : 08
[00Ah 0010 006h]                      Oem ID : "INTEL "
[010h 0016 008h]                Oem Table ID : "KBL "
[018h 0024 004h]                Oem Revision : 00000001
[01Ch 0028 004h]             Asl Compiler ID : "INTL"
[020h 0032 004h]       Asl Compiler Revision : 00000001

[024h 0036 001h]          Host Address Width : 26
[025h 0037 001h]                       Flags : 01
[026h 0038 00Ah]                    Reserved : 00 00 00 00 00 00 00 00 00 00

[030h 0048 002h]               Subtable Type : 0000 [Hardware Unit Definition]
[032h 0050 002h]                      Length : 0018

[034h 0052 001h]                       Flags : 00
[035h 0053 001h]                    Reserved : 00
[036h 0054 002h]          PCI Segment Number : 0000
[038h 0056 008h]       Register Base Address : 00000000FED90000

[040h 0064 001h]           Device Scope Type : 01 [PCI Endpoint Device]
[041h 0065 001h]                Entry Length : 08
[042h 0066 002h]                    Reserved : 0000
[044h 0068 001h]              Enumeration ID : 00
[045h 0069 001h]              PCI Bus Number : 00

[046h 0070 002h]                    PCI Path : 02,00


[048h 0072 002h]               Subtable Type : 0000 [Hardware Unit Definition]
[04Ah 0074 002h]                      Length : 0030

[04Ch 0076 001h]                       Flags : 01
[04Dh 0077 001h]                    Reserved : 00
[04Eh 0078 002h]          PCI Segment Number : 0000
[050h 0080 008h]       Register Base Address : 00000000FED91000

[058h 0088 001h]           Device Scope Type : 03 [IOAPIC Device]
[059h 0089 001h]                Entry Length : 08
[05Ah 0090 002h]                    Reserved : 0000
[05Ch 0092 001h]              Enumeration ID : 02
[05Dh 0093 001h]              PCI Bus Number : F0

[05Eh 0094 002h]                    PCI Path : 1F,00


[060h 0096 001h]           Device Scope Type : 04 [Message-capable HPET Device]
[061h 0097 001h]                Entry Length : 08
[062h 0098 002h]                    Reserved : 0000
[064h 0100 001h]              Enumeration ID : 00
[065h 0101 001h]              PCI Bus Number : 00

[066h 0102 002h]                    PCI Path : 1F,00


[068h 0104 001h]           Device Scope Type : 05 [Namespace Device]
[069h 0105 001h]                Entry Length : 08
[06Ah 0106 002h]                    Reserved : 0000
[06Ch 0108 001h]              Enumeration ID : 01
[06Dh 0109 001h]              PCI Bus Number : 00

[06Eh 0110 002h]                    PCI Path : 15,00


[070h 0112 001h]           Device Scope Type : 05 [Namespace Device]
[071h 0113 001h]                Entry Length : 08
[072h 0114 002h]                    Reserved : 0000
[074h 0116 001h]              Enumeration ID : 02
[075h 0117 001h]              PCI Bus Number : 00

[076h 0118 002h]                    PCI Path : 15,01


[078h 0120 002h]               Subtable Type : 0001 [Reserved Memory Region]
[07Ah 0122 002h]                      Length : 0020

[07Ch 0124 002h]                    Reserved : 0000
[07Eh 0126 002h]          PCI Segment Number : 0000
[080h 0128 008h]                Base Address : 0000000064EC2000
[088h 0136 008h]         End Address (limit) : 0000000064EE1FFF

[090h 0144 001h]           Device Scope Type : 01 [PCI Endpoint Device]
[091h 0145 001h]                Entry Length : 08
[092h 0146 002h]                    Reserved : 0000
[094h 0148 001h]              Enumeration ID : 00
[095h 0149 001h]              PCI Bus Number : 00

[096h 0150 002h]                    PCI Path : 14,00


[098h 0152 002h]               Subtable Type : 0001 [Reserved Memory Region]
[09Ah 0154 002h]                      Length : 0020

[09Ch 0156 002h]                    Reserved : 0000
[09Eh 0158 002h]          PCI Segment Number : 0000
[0A0h 0160 008h]                Base Address : 000000007A000000
[0A8h 0168 008h]         End Address (limit) : 000000007C7FFFFF

[0B0h 0176 001h]           Device Scope Type : 01 [PCI Endpoint Device]
[0B1h 0177 001h]                Entry Length : 08
[0B2h 0178 002h]                    Reserved : 0000
[0B4h 0180 001h]              Enumeration ID : 00
[0B5h 0181 001h]              PCI Bus Number : 00

[0B6h 0182 002h]                    PCI Path : 02,00


[0B8h 0184 002h]               Subtable Type : 0004 [ACPI Namespace Device Declaration]
[0BAh 0186 002h]                      Length : 001C

[0BCh 0188 003h]                    Reserved : 000000
[0BFh 0191 001h]               Device Number : 01
[0C0h 0192 00Fh]                 Device Name : "\_SB.PCI0.I2C0"

[0D4h 0212 002h]               Subtable Type : 0004 [ACPI Namespace Device Declaration]
[0D6h 0214 002h]                      Length : 001C

[0D8h 0216 003h]                    Reserved : 000000
[0DBh 0219 001h]               Device Number : 02
[0DCh 0220 00Fh]                 Device Name : "\_SB.PCI0.I2C1"

Raw Table Data: Length 240 (0xF0)

    0000: 44 4D 41 52 F0 00 00 00 01 08 49 4E 54 45 4C 20  // DMAR......INTEL 
    0010: 4B 42 4C 20 00 00 00 00 01 00 00 00 49 4E 54 4C  // KBL ........INTL
    0020: 01 00 00 00 26 01 00 00 00 00 00 00 00 00 00 00  // ....&...........
    0030: 00 00 18 00 00 00 00 00 00 00 D9 FE 00 00 00 00  // ................
    0040: 01 08 00 00 00 00 02 00 00 00 30 00 01 00 00 00  // ..........0.....
    0050: 00 10 D9 FE 00 00 00 00 03 08 00 00 02 F0 1F 00  // ................
    0060: 04 08 00 00 00 00 1F 00 05 08 00 00 01 00 15 00  // ................
    0070: 05 08 00 00 02 00 15 01 01 00 20 00 00 00 00 00  // .......... .....
    0080: 00 20 EC 64 00 00 00 00 FF 1F EE 64 00 00 00 00  // . .d.......d....
    0090: 01 08 00 00 00 00 14 00 01 00 20 00 00 00 00 00  // .......... .....
    00A0: 00 00 00 7A 00 00 00 00 FF FF 7F 7C 00 00 00 00  // ...z.......|....
    00B0: 01 08 00 00 00 00 02 00 04 00 1C 00 00 00 00 01  // ................
    00C0: 5C 5F 53 42 2E 50 43 49 30 2E 49 32 43 30 00 00  // \_SB.PCI0.I2C0..
    00D0: 00 00 00 00 04 00 1C 00 00 00 00 02 5C 5F 53 42  // ............\_SB
    00E0: 2E 50 43 49 30 2E 49 32 43 31 00 00 00 00 00 00  // .PCI0.I2C1......

[Index of Archives]     [Linux GPIO]     [Linux SPI]     [Linux Hardward Monitoring]     [LM Sensors]     [Linux USB Devel]     [Linux Media]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux