lkml.org 
[lkml]   [2009]   [Jan]   [28]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
From
Subjectx86: unify genapic code, unify subarchitectures, remove old subarchitecture code
Date

This series of 114 patches implements a long desired restructuring,
unification and cleanup of the x86 APIC/SMP/subarch code:

- unifies the 32-bit and 64-bit genapic code

- sorts out all the subarch details into standalone and boot-time
probable quirk modules

- removes the build-time subarch hacks that we had on 32-bit.

This inevitably touches an awful lot of x86 code, and rather intrusively
so:

112 files changed, 3277 insertions(+), 3209 deletions(-)

So breakages are to be expected. The commits are queued up in
tip/x86/apic and are in tip/master as well:

http://people.redhat.com/mingo/tip.git/README

I ported the NUMAQ / Summit / bigsmp and ES7000 subarchitectures to the
new setup. They build and boot on regular hardware but are otherwise
untested. The x86/Voyager subarch is not fully ported yet (i cleaned up
its Kconfig impact) and hence disabled it for the time being. It
ought to be relatively straightforward to port it to the new code.

Ingo

----------------------->

arch/x86/Kconfig | 203 ++++-----
arch/x86/Kconfig.debug | 2 +-
arch/x86/Makefile | 26 --
arch/x86/include/asm/apic.h | 33 ++
arch/x86/include/asm/apm.h | 73 ++++
arch/x86/include/asm/bigsmp/apic.h | 71 ++--
arch/x86/include/asm/bigsmp/apicdef.h | 8 +-
arch/x86/include/asm/bigsmp/ipi.h | 16 +-
arch/x86/include/asm/cpu.h | 6 +-
arch/x86/include/asm/do_timer.h | 16 +
arch/x86/include/asm/entry_arch.h | 57 +++
arch/x86/include/asm/es7000/apic.h | 242 -----------
arch/x86/include/asm/es7000/apicdef.h | 13 -
arch/x86/include/asm/es7000/ipi.h | 22 -
arch/x86/include/asm/es7000/mpparse.h | 29 --
arch/x86/include/asm/es7000/wakecpu.h | 37 --
arch/x86/include/asm/genapic.h | 262 ++++++++++++-
arch/x86/include/asm/genapic_32.h | 141 ------
arch/x86/include/asm/genapic_64.h | 60 ---
arch/x86/include/asm/hw_irq.h | 6 +-
arch/x86/include/asm/ipi.h | 95 ++++-
arch/x86/include/asm/mach-default/apm.h | 73 ----
arch/x86/include/asm/mach-default/do_timer.h | 16 -
arch/x86/include/asm/mach-default/entry_arch.h | 52 ---
arch/x86/include/asm/mach-default/mach_apic.h | 168 --------
arch/x86/include/asm/mach-default/mach_apicdef.h | 24 -
arch/x86/include/asm/mach-default/mach_ipi.h | 64 ---
arch/x86/include/asm/mach-default/mach_mpparse.h | 17 -
arch/x86/include/asm/mach-default/mach_mpspec.h | 12 -
arch/x86/include/asm/mach-default/mach_timer.h | 48 ---
arch/x86/include/asm/mach-default/mach_traps.h | 33 --
arch/x86/include/asm/mach-default/mach_wakecpu.h | 41 --
arch/x86/include/asm/mach-default/pci-functions.h | 19 -
arch/x86/include/asm/mach-default/setup_arch.h | 3 -
arch/x86/include/asm/mach-default/smpboot_hooks.h | 61 ---
arch/x86/include/asm/mach-generic/gpio.h | 15 -
arch/x86/include/asm/mach-generic/mach_apic.h | 35 --
arch/x86/include/asm/mach-generic/mach_apicdef.h | 11 -
arch/x86/include/asm/mach-generic/mach_ipi.h | 10 -
arch/x86/include/asm/mach-generic/mach_mpparse.h | 9 -
arch/x86/include/asm/mach-generic/mach_mpspec.h | 12 -
arch/x86/include/asm/mach-generic/mach_wakecpu.h | 12 -
arch/x86/include/asm/mach_timer.h | 48 +++
arch/x86/include/asm/mach_traps.h | 33 ++
arch/x86/include/asm/mpspec.h | 33 ++-
arch/x86/include/asm/numaq/apic.h | 142 -------
arch/x86/include/asm/numaq/apicdef.h | 14 -
arch/x86/include/asm/numaq/ipi.h | 22 -
arch/x86/include/asm/numaq/mpparse.h | 6 -
arch/x86/include/asm/numaq/wakecpu.h | 45 --
arch/x86/include/asm/pci-functions.h | 19 +
arch/x86/include/asm/proto.h | 4 -
arch/x86/include/asm/setup_arch.h | 3 +
arch/x86/include/asm/smp.h | 19 -
arch/x86/include/asm/smpboot_hooks.h | 61 +++
arch/x86/include/asm/summit/apic.h | 202 ---------
arch/x86/include/asm/summit/apicdef.h | 13 -
arch/x86/include/asm/summit/ipi.h | 26 --
arch/x86/include/asm/summit/mpparse.h | 109 -----
arch/x86/kernel/Makefile | 11 +-
arch/x86/kernel/acpi/boot.c | 25 +-
arch/x86/kernel/apic.c | 46 ++-
arch/x86/kernel/apm_32.c | 2 +-
arch/x86/kernel/bigsmp_32.c | 268 ++++++++++++
arch/x86/kernel/cpu/addon_cpuid_features.c | 20 +-
arch/x86/kernel/cpu/amd.c | 2 +-
arch/x86/kernel/cpu/common.c | 19 +-
arch/x86/kernel/cpu/intel.c | 2 +-
arch/x86/kernel/crash.c | 2 +-
arch/x86/kernel/entry_32.S | 2 +-
arch/x86/kernel/es7000_32.c | 468 ++++++++++++++++++++-
arch/x86/kernel/genapic_64.c | 22 +-
arch/x86/kernel/genapic_flat_64.c | 176 ++++++---
arch/x86/kernel/genx2apic_cluster.c | 133 ++++--
arch/x86/kernel/genx2apic_phys.c | 125 ++++---
arch/x86/kernel/genx2apic_uv_x.c | 111 ++++--
arch/x86/kernel/io_apic.c | 197 ++++-----
arch/x86/kernel/ipi.c | 33 +-
arch/x86/kernel/irq_32.c | 2 +-
arch/x86/kernel/kgdb.c | 4 +-
arch/x86/kernel/mpparse.c | 26 +-
arch/x86/kernel/nmi.c | 2 +-
arch/x86/kernel/numaq_32.c | 280 ++++++++++++-
arch/x86/kernel/probe_32.c | 411 ++++++++++++++++++
arch/x86/kernel/probe_roms_32.c | 2 +-
arch/x86/kernel/process.c | 2 +-
arch/x86/kernel/reboot.c | 4 +-
arch/x86/kernel/setup.c | 30 +-
arch/x86/kernel/smp.c | 13 +-
arch/x86/kernel/smpboot.c | 37 +-
arch/x86/kernel/summit_32.c | 417 ++++++++++++++++++-
arch/x86/kernel/time_32.c | 2 +-
arch/x86/kernel/tlb_uv.c | 2 +-
arch/x86/kernel/traps.c | 2 +-
arch/x86/kernel/tsc.c | 2 +-
arch/x86/kernel/visws_quirks.c | 6 +-
arch/x86/kernel/vmiclock_32.c | 2 +-
arch/x86/mach-default/setup.c | 162 -------
arch/x86/mach-generic/Makefile | 11 -
arch/x86/mach-generic/bigsmp.c | 60 ---
arch/x86/mach-generic/default.c | 27 --
arch/x86/mach-generic/es7000.c | 103 -----
arch/x86/mach-generic/numaq.c | 53 ---
arch/x86/mach-generic/probe.c | 152 -------
arch/x86/mach-generic/summit.c | 40 --
arch/x86/mm/Makefile | 2 +-
arch/x86/mm/tlb.c | 4 +-
arch/x86/pci/numaq_32.c | 2 +-
arch/x86/pci/pcbios.c | 2 +-
drivers/clocksource/acpi_pm.c | 2 +-
drivers/clocksource/cyclone.c | 2 +-
drivers/mtd/nand/Kconfig | 2 +-
112 files changed, 3277 insertions(+), 3209 deletions(-)

Ingo Molnar (114):
x86, genapic: refactor genapic_64.h
x86, genapic: refactor genapic_32.h
x86, genapic: unify struct genapic
x86, genapic: finish unification
x86, genapic: cleanups
x86, genapic: provide IPI callbacks unconditionally
x86: rename 'genapic' to 'apic'
x86: clean up genapic_flat
x86: clean up genapic_phys_flat
x86: clean up apic_x2apic_uv_x
x86: clean up apic_x2apic_phys
x86: clean up apic_x2apic_cluster
x86, genapic: cleanup 32-bit apic_default template
x86, genapic: cleanup 32-bit apic_bigsmp template
x86, genapic: cleanup 32-bit apic_numaq template
x86, genapic: cleanup 32-bit apic_es7000 template
x86, genapic: cleanup 32-bit apic_summit template
x86: remove APIC_INIT / APICFUNC / IPIFUNC
x86: clean up apic->acpi_madt_oem_check methods
x86: clean up apic->apic_id_registered() methods
x86, genapic: rename int_delivery_mode, et. al.
x86, apic: remove IRQ_DEST_MODE / IRQ_DELIVERY_MODE
x86, apic: remove DEFAULT_IRQ_DELIVERY_MODE and DEFAULT_IRQ_DEST_MODE
x86, apic: remove SUMMIT_IRQ_DELIVERY_MODE and SUMMIT_IRQ_DEST_MODE
x86, apic: remove NUMAQ_IRQ_DELIVERY_MODE and NUMAQ_IRQ_DEST_MODE
x86, apic: remove BIGSMP_IRQ_DELIVERY_MODE and BIGSMP_IRQ_DEST_MODE
x86, apic: remove ES7000_IRQ_DELIVERY_MODE and ES7000_IRQ_DEST_MODE
x86, apic: remove IRQ_DEST_MODE
x86, apic: clean up target_cpus methods
x86, apic: clean up / remove TARGET_CPUS
x86: clean up esr_disable() methods
x86: rename ->ESR_DISABLE to ->disable_esr
x86: clean up the APIC_DEST_LOGICAL logic
x86, apic: rename genapic::apic_destination_logical to genapic::dest_logical
x86, apic: clean up check_apicid*() callbacks
x86, apic: remove no_balance_irq and no_ioapic_check flags
x86, apic: clean up ->vector_allocation_domain()
x86, apic: clean up ->init_apic_ldr()
x86, apic: clean up ->ioapic_phys_id_map()
x86, apic: clean up ->setup_apic_routing()
x86, apic: streamline the ->multi_timer_check() quirk
x86, apic: clean up ->apicid_to_node()
x86, apic: clean up ->cpu_to_logical_apicid()
x86, apic: clean up ->cpu_present_to_apicid()
x86, apic: clean up ->apicid_to_cpu_present()
x86: refactor ->setup_portio_remap() subarch methods
x86: refactor ->check_phys_apicid_present() subarch methods
x86: refactor ->enable_apic_mode() subarch methods
x86, es7000: clean up es7000_enable_apic_mode()
x86, apic: unify phys_pkg_id()
x86, apic: refactor ->phys_pkg_id()
x86, smp: clean up mps_oem_check()
x86, mpparse: call the generic quirk handlers early
x86: consolidate the ->mps_oem_check() code
x86, apic: refactor ->get_apic_id() & GET_APIC_ID()
x86, apic: refactor ->apic_id_mask & APIC_ID_MASK
x86, apic: get rid of *_APIC_ID_MASK definitions
x86, apic: refactor ->cpu_mask_to_apicid*()
x86, apic: untangle the send_IPI_*() jungle
x86, smp: clean up ->trampoline_phys_low/high handling
x86: set ->trampoline_phys_low/high on 64-bit too
x86, smp: refactor ->wait_for_init_deassert()
x86, smp: refactor ->smp_callin_clear_local_apic() methods
x86, smp: refactor ->store/restore_NMI_vector() methods
x86, smp: remove ->restore_NMI_vector()
x86, smp: refactor ->inquire_remote_apic() methods
x86, ES7000: consolidate the APIC code
x86, smp: eliminate asm/mach-default/mach_wakecpu.h
x86: eliminate asm/mach-*/mach_mpparse.h
x86: remove mach_mpspec.h
x86: remove mach_apicdef.h
x86, smp: refactor ->wake_cpu
x86, numaq: consolidate code
x86, summit: consolidate code
x86: remove mach_apic.h
x86, ES7000: Consolidate code
x86, NUMAQ: Consolidate code
x86, bigsmp: consolidate code
x86, bigsmp: consolidate header code
x86, smp: remove mach_ipi.h
x86: remove subarchitecture support code
x86: move mach-default/*.h files to asm/
x86: remove subarchitecture support
x86/Voyager: clean up BROKEN Kconfig reference
x86: disable Voyager temporarily
x86/Voyager: remove MCA Kconfig quirk
x86/Voyager: remove NATSEMI Kconfig quirk
x86/Voyager: remove KVM Kconfig quirk
x86/Voyager: remove KGDB Kconfig quirk
x86/Voyager: remove HIBERNATION Kconfig quirk
x86/Voyager: remove ARCH_SUSPEND_POSSIBLE Kconfig quirk
x86: replace CONFIG_X86_SMP with CONFIG_SMP
x86: generalize boot_cpu_id
x86/Voyager: remove X86_HT Kconfig quirk
x86/Voyager: remove X86_BIOS_REBOOT Kconfig quirk
x86/Voyager: remove X86_FIND_SMP_CONFIG Kconfig quirk
x86/VisWS: remove Kconfig quirk
x86/Voyager: remove VMI Kconfig quirk
x86/Voyager: remove KVM_CLOCK quirk
x86/Voyager: remove KVM_GUEST quirk
x86/Voyager: remove PARAVIRT Kconfig quirk
x86/Voyager: remove APIC/IO-APIC Kbuild quirk
x86/Voyager: remove MCE quirk
x86/Voyager: remove HOTPLUG_CPU Kconfig quirk
x86/Voyager: remove power management Kconfig quirk
x86/Voyager: remove ISA quirk
x86: cleanup, introduce CONFIG_NON_STANDARD_PLATFORMS
x86: move ELAN to the NON_STANDARD_PLATFORM section
x86: move VOYAGER to the NON_STANDARD_PLATFORM section
x86: move non-standard 32-bit platform Kconfig entries
x86: move X86_VSMP from subarch menu
x86: remove the subarch menu
x86: rename X86_GENERICARCH to X86_32_NON_STANDARD
x86/Voyager: move to the X86_32_NON_STANDARD code section




\
 
 \ /
  Last update: 2009-01-29 00:47    [W:1.191 / U:0.388 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site