Re: [RFC 02/15] x86_64: Fold pda into per cpu area

From: Eric W. Biederman
Date: Wed Jul 09 2008 - 18:12:11 EST


Mike Travis <travis@xxxxxxx> writes:

> WARNING: there is still a FIXME in this patch (see arch/x86/kernel/acpi/sleep.c)
>
> * Declare the pda as a per cpu variable.
>
> * Make the x86_64 per cpu area start at zero.
>
> * Relocate the initial pda and per_cpu(gdt_page) in head_64.S for the
> boot cpu (0). For secondary cpus, do_boot_cpu() sets up the correct
> initial pda and gdt_page pointer.
>
> * Initialize per_cpu_offset to point to static pda in the per_cpu area
> (@ __per_cpu_load).
>
> * After allocation of the per cpu area for the boot cpu (0), reload the
> gdt page pointer.
>
> Based on linux-2.6.tip/master

Given that we have not yet understood the weird failure case. This patch needs
to be split in two.
- make the current per cpu variable section zero based.
- Move the pda into the per cpu variable section.

There are too many variables at present the reported failure cases to
guess what is really going on.

We can not optimize the per cpu variable accesses until the pda moves
but we can easily test for linker and tool chain bugs with zero
based pda segment itself.

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