> Can you guys on IA64 possibly set ar.k3 simply to zero or to some > other similar value which cancels out the per-cpu computation? > > That's what sparc64 and other platforms do. In cpu_init() we set ar.k3 to the base physical address of the percpu area. The alt-dtlb miss handler uses this register to set up a TLB mapping from virtual address 0xffffffffffff0000 to this physical address. This means that most per-cpu accesses are very cheap (as the compiler can use a small -ve offset from register r0 to load the virtual address). Accessing ar.k3 is a bit slow ... so making the per-cpu code use that on every access to a per-cpu variable would be unpleasant. -Tony -- To unsubscribe from this list: send the line "unsubscribe linux-ia64" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html
![]() |