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

[Xen-devel] [BUG] panic: "IO-APIC + timer doesn't work" - several people have reproduced


  • To: xen-devel@xxxxxxxxxxxxxxxxxxxx
  • From: "Aaron Janse" <aaron@xxxxxxxxx>
  • Date: Mon, 30 Dec 2019 23:52:22 -0800
  • Delivery-date: Tue, 31 Dec 2019 07:53:12 +0000
  • List-id: Xen developer discussion <xen-devel.lists.xenproject.org>

Hello all,

After attempting to install QubesOS on a new laptop, I've stumbled upon
a group of people with an assortment of laptops but all the same
problem: a Xen panic stating "IO-APIC + timer doesn't work!"

Many of us are on different stages of debugging this, so I'll cite all
our efforts here.

# Affected Xen versions
- 4.0.5-14.fc25
- 4.13.0
- probably other versions

# Affected hardware

- Dell XPS 7390 13" (i7-10710U) [1] [2] [3] [4]
- Dell XPS 7390 2-in-1 [1]
- Surface Laptop 3 Business Edition (i7-1065G7) [5] [6]
- Lenovo ThinkBook 13s (i7-8565U) [7]
- Mini-PcBarebone [8] [9]

[1]: https://www.reddit.com/r/Qubes/comments/edqrab/qubes_and_ice_lake/

[2]: 
https://www.reddit.com/r/Qubes/comments/dfv6jx/panic_on_cpu_0_ioapic_timer_doesnt_work_on_ice/
[3]: https://groups.google.com/forum/#!topic/qubes-users/W8mX-07xNZU
[4]: https://lists.xenproject.org/archives/html/xen-users/2019-12/msg00031.html

[5]: https://lists.xenproject.org/archives/html/xen-users/2019-12/msg00017.html
[6]: https://groups.google.com/forum/#!topic/qubes-users/4iswU7cfJHY

[7]: 
https://www.reddit.com/r/Qubes/comments/clk0eu/help_install_qubes_4_on_lenovo_thinkbook_13s/

[8]: https://groups.google.com/forum/#!topic/qubes-users/PIyz7BEV1mg
[9]: https://archive.is/RuiAD

# Excerpts from boot logs

Qubes on my XPS 7390 13"

    (XEN) ..TIMER: vector=0xF0 apic1=0 pin1=2 apic2=-1 pin2=-1
    (XEN) ..MP-BIOS bug: 8254 timer not connected to IO-APIC
    (XEN) ...trying to set up timer (IRQ0) through 8259A ,,,
    (XEN) ...trying to set up timer as Virtual Wire IRQ... failed.
    (XEN) ...trying to set up timer as ExtINT IRQ...spurious 8259A interrupt: 
IRQ7.
    (XEN) CPU0: no irq handler for vector e7 (IRQ -8)
    (XEN) IRQ7 a=0001[0001,0000] v=60[ffffffff] t=IO-APIC-edge s=00000002
    (XEN)  failed :(.
    (XEN)
    (XEN) ***************************************
    (XEN) Panic on CPU 0:
    (XEN) IO-APIC + timer doesn't work! Boot with apic_verbosity=debug and send 
a report.  Then try booting with the 'noapic' option
    (XEN) ***************************************

Ubuntu (w/out Xen) on my XPS 7390 13"
(full logs: https://pastebin.com/SdRg87F8 https://pastebin.com/E3zCfb35)

    [    0.000000] microcode: microcode updated early to revision 0xca, date = 
2019-10-03
    [    0.000000] Linux version 5.3.0-24-generic (buildd@lgw01-amd64-035) (gcc 
version 9.2.1 20191008 (Ubuntu 9.2.1-9ubuntu2)) #26-Ubuntu SMP Thu Nov 14 
01:33:18 UTC 2019 (Ubuntu 5.3.0-24.26-generic 5.3.10)
    [    0.000000] Command line: BOOT_IMAGE=/boot/vmlinuz-5.3.0-24-generic 
root=UUID=062d0c69-31dc-4c7f-9915-731505fea81b ro quiet splash apic=debug 
vt.handoff=7
    [    ....    ]
    [    0.188468] x2apic enabled
    [    0.188492] Switched APIC routing to cluster x2apic.
    [    0.188493] masked ExtINT on CPU#0
    [    0.195266] ENABLING IO-APIC IRQs
    [    0.195267] init IO_APIC IRQs
    [    ....    ]
    [    0.195633] ..TIMER: vector=0x30 apic1=0 pin1=2 apic2=-1 pin2=-1
    [    0.213854] clocksource: tsc-early: mask: 0xffffffffffffffff max_cycles: 
0x170fff30cc4, max_idle_ns: 440795237869 ns
    [    0.213857] Calibrating delay loop (skipped), value calculated using 
timer frequency.. 3199.92 BogoMIPS (lpj=6399840)
    [    0.213859] pid_max: default: 32768 minimum: 301
    [    0.215117] LSM: Security Framework initializing
    [    0.215124] Yama: becoming mindful.
    [    0.215172] AppArmor: AppArmor initialized

I'd like to note that Ubuntu, unlike Qubes, doesn't need to try
any `MP-BIOS bug` fallbacks.

# Relevant source code

Xen: 
https://github.com/xen-project/xen/blob/0cd791c499bdc698d14a24050ec56d60b45732e0/xen/arch/x86/io_apic.c#L1923-L1933
Linux: 
https://github.com/torvalds/linux/blob/fd6988496e79a6a4bdb514a4655d2920209eb85d/arch/x86/kernel/apic/io_apic.c#L2185-L2211

# Things that have been tried

Disabling APIC entirely (`noapic x2apic=off`)
- This is avoiding the problem, not fixing it
- QubeOS requires APIC anyway, so this is not an option for many of us

Switching the timer to HPET (via the `clocksource` flag)
- This didn't fix the panic (I've tried `acpi` and `pit`)
- On my XPS 13, this doesn't change any of the timer error output
- Ubuntu works on my laptop using HPET
- 
http://xenbits.xen.org/docs/unstable/misc/xen-command-line.html#clocksource-x86

Updating to 5.4 Linux kernel [77]
- This didn't fix the panic
- https://www.reddit.com/r/Qubes/comments/edqrab/qubes_and_ice_lake/fcak799/

Reproducing the problem on Ubuntu
- I'm able to reproduce Xen crashing, but I'm unable to enable verbose
  logging
- https://lists.xenproject.org/archives/html/xen-users/2019-12/msg00031.html

# More verbose boot logs

I had to type these up by hand so please excuse the lack of detail.

    (XEN) [...]
    (XEN) CPU0: No irq handler for vector 40 (IRC -2147483648, LAPIC)
    (XEN) PCI: MCFG configuration 0: base e0000000 segment 0000 buses 00 - ff
    (XEN) PCI: Not using MCFG for segment 0000 bus 00-ff
    (XEN) Intel VT-d iommu 0 supported page sizes: 4kB, 2MB, 1GB.
    (XEN) Intel VT-d iommu 1 supported page sizes: 4kB, 2MB, 1GB.
    (XEN) Intel VT-d Snoop Control not enabled.
    (XEN) Intel VT-d Dom0 DMA Passthrough not enabled.
    (XEN) Intel VT-d Queued Invalidation enabled.
    (XEN) Intel VT-d Posted Interrupt not enabled.
    (XEN) Intel VT-d Shared EPT tables enabled.
    (XEN) I/O virtualization enabled.
    (XEN)  - Dom0 mode: Relaxed

    (XEN) Interrupt remapping enabled
    (XEN) nr_sockets: 2
    (XEN) Getting VERSION: 1060015
    (XEN) Getting VERSION: 1060015

    (XEN) Enabled directed EOI with ioapic_ack_old on!
    (XEN) Getting ID: 0
    (XEN) Getting LVT0: 700
    (XEN) Getting LVT1: 400
    (XEN) Suppress EOI broadcast on CPU#0
    (XEN) enabled ExtINT on CPU#0

    (XEN) ENABLING IO_APIC IRQs
    (XEN)  -> Using old ACK method
    (XEN) init IO_APIC IRQs
    (XEN)  IO-APIC (apicid-pin) 2-0, 2-16, 2-17, 2-18, 2-19, 2-20, 2-21, 2-22, 
2-23, 2-24, 2-25, [...], 2-115, 2-116, 2-117, 2-118, 2-119 not connected.

    (XEN) ..TIMER: vector=0xF0 apic1=0 pin1=2 apic2=-1 pin2=-1
    (XEN) ..MP-BIOS bug: 8254 timer not connected to IO-APIC
    (XEN) ...trying to set up timer (IRQ0) through 8259A ,,,
    (XEN) ...trying to set up timer as Virtual Wire IRQ... failed.
    (XEN) ...trying to set up timer as ExtINT IRQ...spurious 8259A interrupt: 
IRQ7.
    (XEN) CPU0: no irq handler for vector e7 (IRQ -8)
    (XEN) IRQ7 a=0001[0001,0000] v=60[ffffffff] t=IO-APIC-edge s=00000002
    (XEN)  failed :(.
    (XEN)
    (XEN) ***************************************
    (XEN) Panic on CPU 0:
    (XEN) IO-APIC + timer doesn't work! Boot with apic_verbosity=debug and send 
a report.  Then try booting with the 'noapic' option
    (XEN) ***************************************
    (XEN)
    (XEN) Reboot in five seconds...


Cheers,
Aaron Janse

_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxxx
https://lists.xenproject.org/mailman/listinfo/xen-devel

 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.