Re: [PATCH] i386-pda: Initialize the PDA early, before any C code runs.

From: Ingo Molnar
Date: Tue Sep 12 2006 - 02:02:11 EST



* Jeremy Fitzhardinge <jeremy@xxxxxxxx> wrote:

> Jeremy Fitzhardinge wrote:
> >Not sure, but I think this replicates the behaviour of the original
> >code (ie, INIT_THREAD_INFO initializes cpu to 0, so smp_processor_id
> >will return 0). Hm, Voyager will probably need a little patch to
> >update the the PDA cpu_number properly in smp_setup_processor_id().
>
> Something like this, perhaps:
>
> Subject: set the boot CPU number in the boot_pda
>
> Signed-off-by: Jeremy Fitzhardinge <jeremy@xxxxxxxxxxxxx>

> +++ b/arch/i386/mach-voyager/voyager_smp.c Mon Sep 11 16:34:09 2006

> smp_setup_processor_id(void)
> {
> current_thread_info()->cpu = hard_smp_processor_id();
> -}
> + write_pda(cpu_number, hard_smp_processor_id());
> +}

yeah. On all other x86 SMP platforms we use the logical APIC ID 0 for
the boot CPU. (the physical ID might be different, but that doesnt
matter)

NOTE: you'll also need to patch smp_voyager.c:find_smp_config(), where
it sets current_thread_info()->cpu to boot_cpu_id.

Ingo
-
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/