Mailing List Archive

IO-APIC Error on Xen 4.12 with Surface Laptop 3 (Intel) - Likely ACPI Issues
Hello,

I'm getting the following error when booting Xen 4.12 (Qubes OS)

I'm running a Surface Laptop 3 Business Edition (i7-1065G7)

I believe this issue has something to do with the ACPI Tables for APIC.

IO-APIC + timer doesn't work! Boot with apic_verbosity=debug and send a
report. Then try booting with the 'noapic' option

Added Logging:

Enabling IO-APIC IRQs
...
MP-BIOS bug: 8254 timer not connected to IO-APIC
... trying to set up timer (IRQ0) through the 8259A ... failed.
... trying to set up timer as Virtual Wire IRQ ... failed.
... trying to set up timer as ExtINT IRQ...spurious 8259A interrupt: IRQ7.
CPU0: No irq handler for vector e7 (IRQ -8)

Adding noapic results in Xen booting however the device resets, I assume
the APIC is required to setup IOMMU.

I'm not sure where to start looking, I can post my ACPI Tables if that
would help.

If anyone can point me in the right direction any help would be appreciated.

Apologies if I'm posting in the wrong area.

Cheers!
IO-APIC Error on Xen 4.12 with Surface Laptop 3 (Intel) - Likely ACPI Issues [ In reply to ]
Hello,

I'm getting the following error when booting Xen 4.12 (Qubes OS)

I'm running a Surface Laptop 3 Business Edition (i7-1065G7)

I believe this issue has something to do with the ACPI Tables for APIC.

IO-APIC + timer doesn't work! Boot with apic_verbosity=debug and send a
report. Then try booting with the 'noapic' option

Added Logging:

Enabling IO-APIC IRQs
...
MP-BIOS bug: 8254 timer not connected to IO-APIC
... trying to set up timer (IRQ0) through the 8259A ... failed.
... trying to set up timer as Virtual Wire IRQ ... failed.
... trying to set up timer as ExtINT IRQ...spurious 8259A interrupt: IRQ7.
CPU0: No irq handler for vector e7 (IRQ -8)

Adding noapic results in Xen booting however the device resets, I assume
the APIC is required to setup IOMMU.

I'm not sure where to start looking, I can post my ACPI Tables if that
would help.

If anyone can point me in the right direction any help would be appreciated.

Apologies if I'm posting in the wrong area.

Cheers!
Re: IO-APIC Error on Xen 4.12 with Surface Laptop 3 (Intel) - Likely ACPI Issues [ In reply to ]
To provide some more information, Fedora 31 boots perfectly, so I believe
it's an issue specifically relating to Xen.

Booting into Fedora 31 I can see some dmesg logs relating to APIC

ACPI: APIC 0x0000000007BFE5000 00012C (v03 MSFT MSFT 00000002 MSFT 20160422)
ACPI: Local APIC address 0xfee00000
IOAPIC[0]: apic_id 2, version 32, address 0xfec00000, GSI 0-119
APIC: Switch to symmetric I/O mode setup
Using ACPI (MADT) for SMP configuration information
ACPI: HPET id: 0x8086a201 base: 0xfed00000
DMAR-IR: x2apic is disabled because BIOS sets x2apic opt out bit.
ACPI: Using IOAPIC for interrupt routing.

Cheers

On Sat, Dec 14, 2019 at 6:23 PM Dylanger Daly <dylanger@diagnostix.io>
wrote:

> Hello,
>
> I'm getting the following error when booting Xen 4.12 (Qubes OS)
>
> I'm running a Surface Laptop 3 Business Edition (i7-1065G7)
>
> I believe this issue has something to do with the ACPI Tables for APIC.
>
> IO-APIC + timer doesn't work! Boot with apic_verbosity=debug and send a
> report. Then try booting with the 'noapic' option
>
> Added Logging:
>
> Enabling IO-APIC IRQs
> ...
> MP-BIOS bug: 8254 timer not connected to IO-APIC
> ... trying to set up timer (IRQ0) through the 8259A ... failed.
> ... trying to set up timer as Virtual Wire IRQ ... failed.
> ... trying to set up timer as ExtINT IRQ...spurious 8259A interrupt: IRQ7.
> CPU0: No irq handler for vector e7 (IRQ -8)
>
> Adding noapic results in Xen booting however the device resets, I assume
> the APIC is required to setup IOMMU.
>
> I'm not sure where to start looking, I can post my ACPI Tables if that
> would help.
>
> If anyone can point me in the right direction any help would be
> appreciated.
>
> Apologies if I'm posting in the wrong area.
>
> Cheers!
>
Re: IO-APIC Error on Xen 4.12 with Surface Laptop 3 (Intel) - Likely ACPI Issues [ In reply to ]
Another update, I observed that if I added acpi=noirq, it wouldn't error
out, meaning the issue I'm having is directly related to the APIC/MADT ACPI
Table on this laptop, with this in mind, I've attached the Surface Laptop
3's APIC ACPI Table.

Comparing the table against a Lenovo P43s (8th Gen Intel, known working
with Xen) the differences are as follows

6c6
< * Disassembly of APIC, Sun Dec 15 11:38:46 2019
---
> * Disassembly of APIC, Sun Dec 15 11:43:24 2019
16,21c16,21
< [009h 0009 1] Checksum : 56
< [00Ah 0010 6] Oem ID : "MSFT "
< [010h 0016 8] Oem Table ID : "MSFT "
< [018h 0024 4] Oem Revision : 00000002
< [01Ch 0028 4] Asl Compiler ID : "MSFT"
< [020h 0032 4] Asl Compiler Revision : 20160422
---
> [009h 0009 1] Checksum : CA
> [00Ah 0010 6] Oem ID : "LENOVO"
> [010h 0016 8] Oem Table ID : "TP-N2I "
> [018h 0024 4] Oem Revision : 00001580
> [01Ch 0028 4] Asl Compiler ID : "PTEC"
> [020h 0032 4] Asl Compiler Revision : 00000002
62,64c62,64
< [04Fh 0079 1] Local Apic ID : 01
< [050h 0080 4] Flags (decoded below) : 00000001
< Processor Enabled : 1
---
> [04Fh 0079 1] Local Apic ID : FF
> [050h 0080 4] Flags (decoded below) : 00000000
> Processor Enabled : 0
70,72c70,72
< [057h 0087 1] Local Apic ID : 03
< [058h 0088 4] Flags (decoded below) : 00000001
< Processor Enabled : 1
---
> [057h 0087 1] Local Apic ID : FF
> [058h 0088 4] Flags (decoded below) : 00000000
> Processor Enabled : 0
78,80c78,80
< [05Fh 0095 1] Local Apic ID : 05
< [060h 0096 4] Flags (decoded below) : 00000001
< Processor Enabled : 1
---
> [05Fh 0095 1] Local Apic ID : FF
> [060h 0096 4] Flags (decoded below) : 00000000
> Processor Enabled : 0
86,88c86,88
< [067h 0103 1] Local Apic ID : 07
< [068h 0104 4] Flags (decoded below) : 00000001
< Processor Enabled : 1
---
> [067h 0103 1] Local Apic ID : FF
> [068h 0104 4] Flags (decoded below) : 00000000
> Processor Enabled : 0
310,312c310,312
< 0000: 41 50 49 43 2C 01 00 00 03 56 4D 53 46 54 20 20 //
APIC,....VMSFT
< 0010: 4D 53 46 54 20 20 20 20 02 00 00 00 4D 53 46 54 // MSFT
....MSFT
< 0020: 22 04 16 20 00 00 E0 FE 01 00 00 00 00 08 01 00 // "..
............
---
> 0000: 41 50 49 43 2C 01 00 00 03 CA 4C 45 4E 4F 56 4F //
APIC,.....LENOVO
> 0010: 54 50 2D 4E 32 49 20 20 80 15 00 00 50 54 45 43 // TP-N2I
....PTEC
> 0020: 02 00 00 00 00 00 E0 FE 01 00 00 00 00 08 01 00 //
................
314,316c314,316
< 0040: 01 00 00 00 00 08 04 06 01 00 00 00 00 08 05 01 //
................
< 0050: 01 00 00 00 00 08 06 03 01 00 00 00 00 08 07 05 //
................
< 0060: 01 00 00 00 00 08 08 07 01 00 00 00 00 08 09 FF //
................
---
> 0040: 01 00 00 00 00 08 04 06 01 00 00 00 00 08 05 FF //
................
> 0050: 00 00 00 00 00 08 06 FF 00 00 00 00 00 08 07 FF //
................
> 0060: 00 00 00 00 00 08 08 FF 00 00 00 00 00 08 09 FF //
................


A graphical diff:

[image: 2019-12-15-115439.png]
[image: 2019-12-15-115454.png]

It looks like Lenovo disables the Local APIC (lapic) where as the SL3
enables it.

Other difference is the OEM ID, OEM Table ID and OEM Revision ID.

Cheers


On Sat, Dec 14, 2019 at 11:30 PM Dylanger Daly <dylanger@diagnostix.io>
wrote:

> To provide some more information, Fedora 31 boots perfectly, so I believe
> it's an issue specifically relating to Xen.
>
> Booting into Fedora 31 I can see some dmesg logs relating to APIC
>
> ACPI: APIC 0x0000000007BFE5000 00012C (v03 MSFT MSFT 00000002 MSFT
> 20160422)
> ACPI: Local APIC address 0xfee00000
> IOAPIC[0]: apic_id 2, version 32, address 0xfec00000, GSI 0-119
> APIC: Switch to symmetric I/O mode setup
> Using ACPI (MADT) for SMP configuration information
> ACPI: HPET id: 0x8086a201 base: 0xfed00000
> DMAR-IR: x2apic is disabled because BIOS sets x2apic opt out bit.
> ACPI: Using IOAPIC for interrupt routing.
>
> Cheers
>
> On Sat, Dec 14, 2019 at 6:23 PM Dylanger Daly <dylanger@diagnostix.io>
> wrote:
>
>> Hello,
>>
>> I'm getting the following error when booting Xen 4.12 (Qubes OS)
>>
>> I'm running a Surface Laptop 3 Business Edition (i7-1065G7)
>>
>> I believe this issue has something to do with the ACPI Tables for APIC.
>>
>> IO-APIC + timer doesn't work! Boot with apic_verbosity=debug and send a
>> report. Then try booting with the 'noapic' option
>>
>> Added Logging:
>>
>> Enabling IO-APIC IRQs
>> ...
>> MP-BIOS bug: 8254 timer not connected to IO-APIC
>> ... trying to set up timer (IRQ0) through the 8259A ... failed.
>> ... trying to set up timer as Virtual Wire IRQ ... failed.
>> ... trying to set up timer as ExtINT IRQ...spurious 8259A interrupt: IRQ7
>> .
>> CPU0: No irq handler for vector e7 (IRQ -8)
>>
>> Adding noapic results in Xen booting however the device resets, I assume
>> the APIC is required to setup IOMMU.
>>
>> I'm not sure where to start looking, I can post my ACPI Tables if that
>> would help.
>>
>> If anyone can point me in the right direction any help would be
>> appreciated.
>>
>> Apologies if I'm posting in the wrong area.
>>
>> Cheers!
>>
>