linux_dsm_epyc7002/arch/x86/kernel
Baoquan He bee3204ec3 x86/apic: Set up through-local-APIC mode on the boot CPU if 'noapic' specified
Currently the kdump kernel becomes very slow if 'noapic' is specified.
Normal kernel doesn't have this bug.

Kernel parameter 'noapic' is used to disable IO-APIC in system for
testing or special purpose. Here the root cause is that in kdump
kernel LAPIC is disabled since commit:

  522e664644 ("x86/apic: Disable I/O APIC before shutdown of the local APIC")

In this case we need set up through-local-APIC on boot CPU in
setup_local_APIC().

In normal kernel the legacy irq mode is enabled by the BIOS. If
it is virtual wire mode, the local-APIC has been enabled and set as
through-local-APIC.

Though we fixed the regression introduced by commit 522e664644,
to further improve robustness set up the through-local-APIC mode
explicitly, do not rely on the default boot IRQ mode.

Signed-off-by: Baoquan He <bhe@redhat.com>
Reviewed-by: Eric W. Biederman <ebiederm@xmission.com>
Cc: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: douly.fnst@cn.fujitsu.com
Cc: joro@8bytes.org
Cc: prarit@redhat.com
Cc: uobergfe@redhat.com
Link: http://lkml.kernel.org/r/20180214054656.3780-7-bhe@redhat.com
[ Rewrote the changelog. ]
Signed-off-by: Ingo Molnar <mingo@kernel.org>
2018-02-17 11:47:46 +01:00
..
acpi ACPI: SPCR: Make SPCR available to x86 2018-02-07 11:39:58 +01:00
apic x86/apic: Set up through-local-APIC mode on the boot CPU if 'noapic' specified 2018-02-17 11:47:46 +01:00
cpu vfs: do bulk POLL* -> EPOLL* replacement 2018-02-11 14:34:03 -08:00
fpu
kprobes Merge branch 'x86-pti-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2018-01-21 10:48:35 -08:00
.gitignore
alternative.c x86/paravirt: Remove 'noreplace-paravirt' cmdline option 2018-01-31 10:37:45 +01:00
amd_gart_64.c dma-mapping: move swiotlb arch helpers to a new header 2018-01-10 16:40:54 +01:00
amd_nb.c
apb_timer.c
aperture_64.c x86/gart: Exclude GART aperture from vmcore 2018-01-11 15:09:24 +01:00
apm_32.c vfs: do bulk POLL* -> EPOLL* replacement 2018-02-11 14:34:03 -08:00
asm-offsets_32.c
asm-offsets_64.c
asm-offsets.c x86/mm: Use/Fix PCID to optimize user/kernel switches 2017-12-23 21:13:00 +01:00
audit_64.c
bootflag.c
check.c
cpuid.c
crash_dump_32.c
crash_dump_64.c
crash.c x86/apic: Fix restoring boot IRQ mode in reboot and kexec/kdump 2018-02-17 11:47:45 +01:00
devicetree.c x86: remove arch specific early_init_dt_alloc_memory_arch 2018-01-30 11:17:37 -06:00
doublefault.c
dumpstack_32.c
dumpstack_64.c
dumpstack.c x86/dumpstack: Avoid uninitlized variable 2018-02-02 23:33:50 +01:00
e820.c
early_printk.c
early-quirks.c
ebda.c
eisa.c
espfix_64.c
ftrace_32.S x86/retpoline/ftrace: Convert ftrace assembler indirect jumps 2018-01-12 00:14:30 +01:00
ftrace_64.S Merge branch 'x86-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2018-01-28 12:19:23 -08:00
ftrace.c
head32.c
head64.c x86/mm: Encrypt the initrd earlier for BSP microcode update 2018-01-16 01:50:59 +01:00
head_32.S
head_64.S x86/mm/pti: Allocate a separate user PGD 2017-12-23 21:13:00 +01:00
hpet.c
hw_breakpoint.c
i8237.c
i8253.c
i8259.c
idt.c x86/idt: Mark IDT tables __initconst 2018-01-14 20:09:45 +01:00
io_delay.c
ioport.c
irq_32.c x86/retpoline/irq32: Convert assembler indirect jumps 2018-01-12 00:14:32 +01:00
irq_64.c
irq_work.c
irq.c x86/irq: Count Hyper-V reenlightenment interrupts 2018-01-30 23:55:33 +01:00
irqinit.c x86/apic: Simplify init_bsp_APIC() usage 2018-02-13 17:30:38 +01:00
itmt.c
jailhouse.c x86/jailhouse: Respect pci=lastbus command line settings 2018-01-20 08:15:44 +01:00
jump_label.c
kdebugfs.c
kexec-bzimage64.c
kgdb.c
ksysfs.c
kvm.c KVM: X86: use paravirtualized TLB Shootdown 2018-01-16 16:34:13 +01:00
kvmclock.c
ldt.c x86/ldt: Make LDT pgtable free conditional 2017-12-31 16:55:09 +01:00
livepatch.c
machine_kexec_32.c x86/apic: Remove the (now) unused disable_IO_APIC() function 2018-02-17 11:47:45 +01:00
machine_kexec_64.c x86/apic: Remove the (now) unused disable_IO_APIC() function 2018-02-17 11:47:45 +01:00
Makefile Merge branch 'x86-platform-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2018-01-29 18:17:39 -08:00
mmconf-fam10h_64.c
module.c
mpparse.c x86: Introduce and use MP IRQ trigger and polarity defines 2018-01-14 21:11:54 +01:00
msr.c
nmi_selftest.c
nmi.c
paravirt_patch_32.c
paravirt_patch_64.c
paravirt-spinlocks.c
paravirt.c
pci-calgary_64.c
pci-dma.c dma-mapping: add an arch_dma_supported hook 2018-01-15 09:34:59 +01:00
pci-iommu_table.c
pci-nommu.c dma-mapping: move swiotlb arch helpers to a new header 2018-01-10 16:40:54 +01:00
pci-swiotlb.c swiotlb: rename swiotlb_free to swiotlb_exit 2018-01-15 09:35:39 +01:00
pcspeaker.c
perf_regs.c
platform-quirks.c x86/platform: Control warm reset setup via legacy feature flag 2018-01-14 21:11:53 +01:00
pmem.c
probe_roms.c
process_32.c
process_64.c x86/asm: Move 'status' from thread_struct to thread_info 2018-01-30 15:30:36 +01:00
process.c Merge branch 'x86-cleanups-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2018-01-30 13:01:09 -08:00
ptrace.c x86/asm: Move 'status' from thread_struct to thread_info 2018-01-30 15:30:36 +01:00
pvclock.c
quirks.c
reboot_fixups_32.c
reboot.c x86/apic: Fix restoring boot IRQ mode in reboot and kexec/kdump 2018-02-17 11:47:45 +01:00
relocate_kernel_32.S
relocate_kernel_64.S x86/kexec: Make kexec (mostly) work in 5-level paging mode 2018-01-31 08:39:40 +01:00
resource.c
rtc.c
setup_percpu.c
setup.c Merge branch 'x86-cleanups-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2018-01-30 13:01:09 -08:00
signal_compat.c signal: Unify and correct copy_siginfo_to_user32 2018-01-15 19:56:20 -06:00
signal.c x86/asm: Move 'status' from thread_struct to thread_info 2018-01-30 15:30:36 +01:00
smp.c
smpboot.c Merge branch 'x86-cleanups-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2018-01-30 13:01:09 -08:00
stacktrace.c Merge branch 'x86-pti-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2018-01-03 16:41:07 -08:00
step.c
sys_x86_64.c
sysfb_efi.c
sysfb_simplefb.c
sysfb.c
tboot.c x86/pti: Make unpoison of pgd for trusted boot work for real 2018-01-11 23:36:59 +01:00
tce_64.c
time.c x86/time: Unconditionally register legacy timer interrupt 2018-01-14 20:18:23 +01:00
tls.c x86/ldt: Make the LDT mapping RO 2017-12-23 21:13:01 +01:00
tls.h
topology.c
trace_clock.c
tracepoint.c
traps.c Merge branch 'x86/urgent' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2017-12-31 13:13:56 -08:00
tsc_msr.c
tsc_sync.c
tsc.c x86/tsc: Introduce early tsc clocksource 2018-01-14 20:18:23 +01:00
umip.c
unwind_frame.c
unwind_guess.c
unwind_orc.c ftrace, orc, x86: Handle ftrace dynamically allocated trampolines 2018-01-23 15:56:55 -05:00
uprobes.c
verify_cpu.S
vm86_32.c
vmlinux.lds.S retpoline: Introduce start/end markers of indirect thunk 2018-01-19 16:31:28 +01:00
vsmp_64.c
x86_init.c x86/apic: Rename variables and functions related to x86_io_apic_ops 2018-02-17 11:47:45 +01:00