• Jeremy Fitzhardinge's avatar
    [PATCH] i386: Convert PDA into the percpu section · 7c3576d2
    Jeremy Fitzhardinge authored
    Currently x86 (similar to x84-64) has a special per-cpu structure
    called "i386_pda" which can be easily and efficiently referenced via
    the %fs register.  An ELF section is more flexible than a structure,
    allowing any piece of code to use this area.  Indeed, such a section
    already exists: the per-cpu area.
    
    So this patch:
    (1) Removes the PDA and uses per-cpu variables for each current member.
    (2) Replaces the __KERNEL_PDA segment with __KERNEL_PERCPU.
    (3) Creates a per-cpu mirror of __per_cpu_offset called this_cpu_off, which
        can be used to calculate addresses for this CPU's variables.
    (4) Simplifies startup, because %fs doesn't need to be loaded with a
        special segment at early boot; it can be deferred until the first
        percpu area is allocated (or never for UP).
    
    The result is less code and one less x86-specific concept.
    Signed-off-by: default avatarRusty Russell <rusty@rustcorp.com.au>
    Signed-off-by: default avatarJeremy Fitzhardinge <jeremy@xensource.com>
    Signed-off-by: default avatarAndi Kleen <ak@suse.de>
    Cc: Andi Kleen <ak@suse.de>
    7c3576d2
smpboot.c 33.5 KB