Skip to content
  • Baoquan He's avatar
    x86/apic: Set up through-local-APIC mode on the boot CPU if 'noapic' specified · bee3204e
    Baoquan He authored
    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:
    
      522e6646 ("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 522e6646
    
    ,
    to further improve robustness set up the through-local-APIC mode
    explicitly, do not rely on the default boot IRQ mode.
    
    Signed-off-by: default avatarBaoquan He <bhe@redhat.com>
    Reviewed-by: default avatarEric 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: default avatarIngo Molnar <mingo@kernel.org>
    bee3204e