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

From: Ingo Molnar
Date: Sun Jul 13 2008 - 13:54:36 EST



* Eric W. Biederman <ebiederm@xxxxxxxxxxxx> wrote:

> 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.

agreed, a patch of this gravity and with a diffstat:

12 files changed, 112 insertions(+), 142 deletions(-)

is indeed too large. Test failures that get bisected to this patch will
still cause people to guess about which aspect of the large patch caused
the problem.

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/