Re: [PATCH 00/13] convert voyager over to the x86 quirks model

From: James Bottomley
Date: Tue Mar 10 2009 - 18:02:48 EST


On Tue, 2009-03-10 at 14:58 -0700, Yinghai Lu wrote:
> On Sun, Mar 8, 2009 at 9:48 AM, James Bottomley
> <James.Bottomley@xxxxxxxxxxxxxxxxxxxxx> wrote:
> > Given the lack of feedback, I went ahead and implemented the additions
> > to smp_ops and x86_quirks (and a dynamic mca NMI hook) to allow
> > voyager to be plumbed in.
> >
> > There also needs to be changes in the boot setup to make voyager work
> > dynamically: It has to be detected first, so the a20 gate check is
> > only executed if a voyager is not found.
> >
> > I also completed some of the subarchitecture eliminations, so all the
> > include file infrastructure should be gone.
> >
> > The result is that I can boot both my PC SMP x86 boxes and voyager
> > with the same kernel.
> >
> > This patch series applies on the x86/apic branch of the x86 tree
> > (obviously with 965c7ecaf2e2b083d711a01ab33735a4bdeee1a4 reverted)
> >
> > James
> >
> > ---
> >
> > [VOYAGER] x86: add {safe,hard}_smp_processor_id to smp_ops
> > [VOYAGER] x86/mca: make mca_nmi_hook external
> > [VOYAGER] x86: add prefill_possible_map to x86_quirks
> > [VOYAGER] x86: use boot_cpu_id instead of zero for checking boot
> > processor
> > [VOYAGER] x86/voyager: Move voyager detection to a new bootparam area
> > [VOYAGER] x86: eliminate subarchitecture file setup_arch.h
> > [VOYAGER] x86: eliminate subarchitecture file entry_arch.h
> > [VOYAGER] x86: eliminate subarchitecture file do_timer.h
> > [VOYAGER] x86: redo irq2 cascade setup
> > [VOYAGER] x86: make disabling the apics functional instead of a flag
> > [VOYAGER] x86/Voyager: add missing QIC call function single gate
> > [VOYAGER] x86/Voyager: replace inline io area reads with readX
> > accessors
> > [VOYAGER] x86/Voyager: Plumb voyager back into the build
> >
> > arch/x86/Kconfig | 4 +-
> > arch/x86/Makefile | 2 +
> > arch/x86/boot/Makefile | 4 +-
> > arch/x86/boot/a20.c | 13 +-
> > arch/x86/boot/boot.h | 2 +-
> > arch/x86/boot/voyager.c | 5 +-
> > arch/x86/include/asm/apic.h | 6 +
> > arch/x86/include/asm/bootparam.h | 5 +-
> > arch/x86/include/asm/do_timer.h | 16 -
> > arch/x86/include/asm/entry_arch.h | 57 ---
> > arch/x86/include/asm/hw_irq.h | 11 +
> > arch/x86/include/asm/mach-voyager/do_timer.h | 17 -
> > arch/x86/include/asm/mach-voyager/entry_arch.h | 26 --
> > arch/x86/include/asm/mach-voyager/setup_arch.h | 12 -
>
> could remove "mach-" here.

This directory is actually gone after the patch.

> > arch/x86/include/asm/mca.h | 3 +
> > arch/x86/include/asm/setup.h | 6 +-
> > arch/x86/include/asm/setup_arch.h | 3 -
> > arch/x86/include/asm/smp.h | 13 +-
> > arch/x86/include/asm/voyager.h | 80 ++---
> > arch/x86/include/asm/voyager_bios.h | 21 +
> > arch/x86/include/asm/voyager_boot.h | 27 ++
> > arch/x86/include/asm/voyager_vectors.h | 37 ++
> > arch/x86/kernel/apic/apic.c | 8 +-
> > arch/x86/kernel/apic/ipi.c | 2 +-
> > arch/x86/kernel/apic/probe_32.c | 3 +
> > arch/x86/kernel/entry_32.S | 70 +++-
> > arch/x86/kernel/irqinit_32.c | 15 +-
> > arch/x86/kernel/mca_32.c | 12 +
> > arch/x86/kernel/probe_roms_32.c | 1 -
> > arch/x86/kernel/setup.c | 35 +--
> > arch/x86/kernel/smp.c | 7 +
> > arch/x86/kernel/smpboot.c | 2 +-
> > arch/x86/kernel/time_32.c | 11 +-
> > arch/x86/kernel/visws_quirks.c | 7 -
> > arch/x86/mach-voyager/setup.c | 66 ++--
> > arch/x86/mach-voyager/voyager_basic.c | 98 ++---
> > arch/x86/mach-voyager/voyager_smp.c | 544 ++++++++----------------
> > arch/x86/mach-voyager/voyager_thread.c | 5 +-
>
> same here

Heh, that would blow my nice diffstat out of the water ...

It's useful to keep code like this separated, since you don't
necessarily want some kernelnewby wandering across it as an example of
how to do SMP on x86 ... I'm not wedded to the name, but mach-voyager is
as good a descriptive directory name as any other.

James


--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/