>Per-cpu variables are messed up for modules and UP kernel builds. >They're always placed in a special area (whether built for UP or SMP), >but the code for copying the .data.small segment for a module into the >per-cpu area is compiled only if !CONFIG_SMP. > >In fact, in the generic percpu_modcopy for UP, there's a BUG_ON if the >percpu data area is non-zero-sized (which we don't hit, because IA64 >uses its own percpu_modcopy). > >There's code, for example, in the kernel entry/exit path that relies >on the per-cpu area being specially mapped (getting the number of >physical stacked registers), so doing the same as other architectures >isn't really an option. > >So what to do?
At first glance it looks like ia64 should not be treating the UP case differently from the SMP case. UP kernels place the per-cpu data up in the top 64K (PERCPU_PAGE_SIZE) of the virtual address space mapped by DTR[1], just like SMP kernels do ... so all the space allocation, mapping, and relocation code should be the same for UP and SMP ... shouldn't they? -Tony - To unsubscribe from this list: send the line "unsubscribe linux-ia64" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html
