On 10/20/2009 02:35 AM, Ingo Molnar wrote: > > * Jiri Kosina <jkosina@xxxxxxx> wrote: > >> On Tue, 20 Oct 2009, Ingo Molnar wrote: >> >>>> Commit 34d76c41 introduced percpu array update_shares_data, size of which >>>> being proportional to NR_CPUS. Unfortunately this blows up ia64 for large >>>> NR_CPUS configuration, as ia64 allows only 64k for .percpu section. >>>> >>>> Fix this by allocating this array dynamically and keep only pointer to it >>>> percpu. >>>> >>>> Signed-off-by: Jiri Kosina <jkosina@xxxxxxx> >>>> --- >>>> kernel/sched.c | 15 +++++++-------- >>>> 1 files changed, 7 insertions(+), 8 deletions(-) >>> >>> Seems like an IA64 bug to me. >> >> IA64 guys actually use that as some kind of optimization for fast >> access to the percpu data in their pagefault handler, as far as I >> know. > > Still looks like a bug if it causes a breakage (linker error) on IA64, > and if the 'fix' (i'd call it a workaround) causes a (small but nonzero) > performance regression on other architectures. The linker error isn't a bug, it's enforcement. The ia64 linker script explicitly rewinds the location pointer back to the start of .data.percpu + 64k to start the .data section to cause the error if .data.percpu is larger than 64k. -Jeff -- Jeff Mahoney SUSE Labs -- 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
![]() |