Re: [PATCH 1/6] Initialize the per-CPU data area.

From: Jeremy Fitzhardinge
Date: Mon Sep 25 2006 - 17:33:40 EST

Andi Kleen wrote:
I'll respin it against your patches later today.

Thanks. It's not that urgent because the merge will need a few days
at least.

I guess I should just use plain 2.6.19 as a base.

Also I must admit I haven't figured out yet if yours or Rusty's patchkit
is better. So far I was leaning towards yours, but that might be because
I haven't looked closely at Rusty's version.

The basic machinery is similar, though he's gone and made things like the per-cpu GDTs actual percpu variables, with a bit of gymnastics to use them from assembler. I haven't looked at the last iteration which does all the setup in the head.S assembler.

On the plus side, he makes some use of %gs to reference percpu data, and it's a nice simple patch to do so. One slightly odd aspect of it is that %gs:0 is actually at a large offset below the percpu memory, in order to compensate for the offset of the percpu data section in the kernel address space.

And in my heart of hearts I'd prefer to use the compiler TLS support to do this; it gets better generated code (at least in the non-Xen case), with the downside of needing some more support in the module loader. It also gets rid of all the special access macros/assembler for percpu variables. (And ideally we can convince the gcc folks to allow generation of positive offset TLS relocations, and solve the Xen problem that way.)

To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at
Please read the FAQ at