linux_dsm_epyc7002/arch/x86/kernel/apic
Dou Liyang 935356cecd x86/apic: Initialize interrupt mode after timer init
A cold or warm boot through BIOS sets the APIC in default interrupt
delivery mode. A dump-capture kernel will not go through a BIOS reset and
leave the interrupt delivery mode in the state which was active on the
crashed kernel, but the dump kernel startup code assumes default delivery
mode which can result in interrupt delivery/handling to fail.

To solve this problem, it's required to set up the final interrupt delivery
mode as soon as possible. As IOAPIC setup needs the timer initialized for
verifying the timer interrupt delivery mode, the earliest point is right
after timer setup in late_time_init().

That results in the following init order:

  1) Set up the legacy timer, if applicable on the platform

  2) Set up APIC/IOAPIC which includes the verification of the legacy timer
     interrupt delivery.

  3) TSC calibration

  4) Local APIC timer setup


Signed-off-by: Dou Liyang <douly.fnst@cn.fujitsu.com>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Cc: yinghai@kernel.org
Cc: bhe@redhat.com
Link: https://lkml.kernel.org/r/1505293975-26005-12-git-send-email-douly.fnst@cn.fujitsu.com
2017-09-25 15:03:17 +02:00
..
apic_flat_64.c x86/apic: Move cpumask and to core code 2017-06-22 18:21:22 +02:00
apic_noop.c x86/apic: Move cpumask and to core code 2017-06-22 18:21:22 +02:00
apic_numachip.c x86/apic: Move cpumask and to core code 2017-06-22 18:21:22 +02:00
apic.c x86/apic: Initialize interrupt mode after timer init 2017-09-25 15:03:17 +02:00
bigsmp_32.c x86/apic: Move cpumask and to core code 2017-06-22 18:21:22 +02:00
htirq.c x86/htirq: Create named domain 2017-06-22 18:21:09 +02:00
hw_nmi.c kernel/watchdog: split up config options 2017-07-12 16:26:02 -07:00
io_apic.c x86/ioapic: Refactor the delay logic in timer_irq_works() 2017-09-25 15:03:16 +02:00
ipi.c x86/kernel: Audit and remove any unnecessary uses of module.h 2016-07-14 15:06:41 +02:00
Makefile kernel: add kcov code coverage 2016-03-22 15:36:02 -07:00
msi.c x86/msi: Create named irq domains 2017-06-22 18:21:11 +02:00
probe_32.c x86/apic: Move cpumask and to core code 2017-06-22 18:21:22 +02:00
probe_64.c x86/apic: Remove duplicated include from probe_64.c 2016-07-19 16:02:31 +02:00
vector.c x86/irq: Get rid of the 'first_system_vector' indirection bogosity 2017-08-29 11:42:21 +02:00
x2apic_cluster.c x86/apic: Implement effective irq mask update 2017-06-22 18:21:23 +02:00
x2apic_phys.c x86/apic: Move cpumask and to core code 2017-06-22 18:21:22 +02:00
x2apic_uv_x.c x86/apic: Add irq_data argument to apic->cpu_mask_to_apicid() 2017-06-22 18:21:22 +02:00