From: Mathieu Desnoyers on 29 Mar 2010 23:40 * Mathieu Desnoyers (mathieu.desnoyers(a)efficios.com) wrote: > Should use per_cpu_ptr() to obfuscate the per cpu pointers (RELOC_HIDE is needed > for per cpu pointers). > > Introduced by commit: > > module.c: commit 6b588c18f8dacfa6d7957c33c5ff832096e752d3 > > This patch should be queued for the stable branch, for kernels 2.6.29.x to > 2.6.33.x. > (tested on 2.6.33.1 x86_64) It's actually needed for mainline too (2.6.34-rc2). Thanks, Mathieu > > Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers(a)efficios.com> > CC: Randy Dunlap <randy.dunlap(a)oracle.com> > CC: Eric Dumazet <dada1(a)cosmosbay.com> > CC: Rusty Russell <rusty(a)rustcorp.com.au> > CC: Peter Zijlstra <a.p.zijlstra(a)chello.nl> > CC: Tejun Heo <tj(a)kernel.org> > CC: Ingo Molnar <mingo(a)elte.hu> > CC: Andrew Morton <akpm(a)linux-foundation.org> > CC: Linus Torvalds <torvalds(a)linux-foundation.org> > CC: Greg Kroah-Hartman <gregkh(a)suse.de> > CC: Steven Rostedt <rostedt(a)goodmis.org> > CC: stable <stable(a)kernel.org> > --- > kernel/module.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > Index: linux-2.6-lttng/kernel/module.c > =================================================================== > --- linux-2.6-lttng.orig/kernel/module.c 2010-03-29 23:47:05.000000000 -0400 > +++ linux-2.6-lttng/kernel/module.c 2010-03-29 23:47:27.000000000 -0400 > @@ -412,7 +412,7 @@ static void percpu_modcopy(void *pcpudes > int cpu; > > for_each_possible_cpu(cpu) > - memcpy(pcpudest + per_cpu_offset(cpu), from, size); > + memcpy(per_cpu_ptr(pcpudest, cpu), from, size); > } > > #else /* ... !CONFIG_SMP */ > > -- > Mathieu Desnoyers > Operating System Efficiency R&D Consultant > EfficiOS Inc. > http://www.efficios.com -- Mathieu Desnoyers Operating System Efficiency R&D Consultant EfficiOS Inc. http://www.efficios.com -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo(a)vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
From: Steven Rostedt on 30 Mar 2010 09:30 On Mon, 2010-03-29 at 23:36 -0400, Mathieu Desnoyers wrote: > * Mathieu Desnoyers (mathieu.desnoyers(a)efficios.com) wrote: > > Should use per_cpu_ptr() to obfuscate the per cpu pointers (RELOC_HIDE is needed > > for per cpu pointers). > > > > Introduced by commit: > > > > module.c: commit 6b588c18f8dacfa6d7957c33c5ff832096e752d3 > > > > This patch should be queued for the stable branch, for kernels 2.6.29.x to > > 2.6.33.x. > > (tested on 2.6.33.1 x86_64) > > It's actually needed for mainline too (2.6.34-rc2). Then all you need to do is submit it for mainline with a "Cc: stable(a)kernel.org" as you did below. It will then automatically be added to the stable queue when Linus pulls it. -- Steve > > Thanks, > > Mathieu > > > > > Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers(a)efficios.com> > > CC: Randy Dunlap <randy.dunlap(a)oracle.com> > > CC: Eric Dumazet <dada1(a)cosmosbay.com> > > CC: Rusty Russell <rusty(a)rustcorp.com.au> > > CC: Peter Zijlstra <a.p.zijlstra(a)chello.nl> > > CC: Tejun Heo <tj(a)kernel.org> > > CC: Ingo Molnar <mingo(a)elte.hu> > > CC: Andrew Morton <akpm(a)linux-foundation.org> > > CC: Linus Torvalds <torvalds(a)linux-foundation.org> > > CC: Greg Kroah-Hartman <gregkh(a)suse.de> > > CC: Steven Rostedt <rostedt(a)goodmis.org> > > CC: stable <stable(a)kernel.org> > > --- > > kernel/module.c | 2 +- > > 1 file changed, 1 insertion(+), 1 deletion(-) > > > > -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo(a)vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
From: Mathieu Desnoyers on 30 Mar 2010 10:00 * Steven Rostedt (rostedt(a)goodmis.org) wrote: > On Mon, 2010-03-29 at 23:36 -0400, Mathieu Desnoyers wrote: > > * Mathieu Desnoyers (mathieu.desnoyers(a)efficios.com) wrote: > > > Should use per_cpu_ptr() to obfuscate the per cpu pointers (RELOC_HIDE is needed > > > for per cpu pointers). > > > > > > Introduced by commit: > > > > > > module.c: commit 6b588c18f8dacfa6d7957c33c5ff832096e752d3 > > > > > > This patch should be queued for the stable branch, for kernels 2.6.29.x to > > > 2.6.33.x. > > > (tested on 2.6.33.1 x86_64) > > > > It's actually needed for mainline too (2.6.34-rc2). > > Then all you need to do is submit it for mainline with a > "Cc: stable(a)kernel.org" as you did below. It will then automatically be > added to the stable queue when Linus pulls it. OK, thanks for the info. Mathieu > > -- Steve > > > > > Thanks, > > > > Mathieu > > > > > > > > Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers(a)efficios.com> > > > CC: Randy Dunlap <randy.dunlap(a)oracle.com> > > > CC: Eric Dumazet <dada1(a)cosmosbay.com> > > > CC: Rusty Russell <rusty(a)rustcorp.com.au> > > > CC: Peter Zijlstra <a.p.zijlstra(a)chello.nl> > > > CC: Tejun Heo <tj(a)kernel.org> > > > CC: Ingo Molnar <mingo(a)elte.hu> > > > CC: Andrew Morton <akpm(a)linux-foundation.org> > > > CC: Linus Torvalds <torvalds(a)linux-foundation.org> > > > CC: Greg Kroah-Hartman <gregkh(a)suse.de> > > > CC: Steven Rostedt <rostedt(a)goodmis.org> > > > CC: stable <stable(a)kernel.org> > > > --- > > > kernel/module.c | 2 +- > > > 1 file changed, 1 insertion(+), 1 deletion(-) > > > > > > > -- Mathieu Desnoyers Operating System Efficiency R&D Consultant EfficiOS Inc. http://www.efficios.com -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo(a)vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
From: Andrew Morton on 30 Mar 2010 16:00 On Tue, 30 Mar 2010 09:52:08 -0400 Mathieu Desnoyers <mathieu.desnoyers(a)efficios.com> wrote: > Should use per_cpu_ptr() to obfuscate the per cpu pointers (RELOC_HIDE is needed > for per cpu pointers). > > Introduced by commit: > > module.c: commit 6b588c18f8dacfa6d7957c33c5ff832096e752d3 > > It applies to mainline as of 2.6.34-rc2. This patch should be queued for the > stable branch, for kernels 2.6.29.x to 2.6.33.x. > (based on 2.6.33.1, also applies to 2.6.34-rc2 -tip) Why do you beleive this should be backported to -stable? What are the user-visible effects of this change? -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo(a)vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
From: Mathieu Desnoyers on 30 Mar 2010 16:30
* Andrew Morton (akpm(a)linux-foundation.org) wrote: > On Tue, 30 Mar 2010 09:52:08 -0400 > Mathieu Desnoyers <mathieu.desnoyers(a)efficios.com> wrote: > > > Should use per_cpu_ptr() to obfuscate the per cpu pointers (RELOC_HIDE is needed > > for per cpu pointers). > > > > Introduced by commit: > > > > module.c: commit 6b588c18f8dacfa6d7957c33c5ff832096e752d3 > > > > It applies to mainline as of 2.6.34-rc2. This patch should be queued for the > > stable branch, for kernels 2.6.29.x to 2.6.33.x. > > (based on 2.6.33.1, also applies to 2.6.34-rc2 -tip) > > Why do you beleive this should be backported to -stable? What are the > user-visible effects of this change? > As for the user-visible impact of this specific patch, I guess nobody noticed any problem because we've been lucky enough that the compiler did not generate the inappropriate optimization pattern there. This inappropriate use of per_cpu_ptr() elsewhere (in __module_ref_addr() from module.h) caused a NULL pointer exception on Randy's machine. So either we consider that the code is better left untouched, or we apply this patch to module.c in order to prevent compiler optimizations from subtly breaking the generated assembly with specific configurations of the current or future versions of the compiler. At that level, it becomes a policy question about what should go in -stable, for which I will defer to Greg and you. I would perfectly understand if you consider that it does not belong to -stable, because there is no perceived user impact so far. Thanks, Mathieu -- Mathieu Desnoyers Operating System Efficiency R&D Consultant EfficiOS Inc. http://www.efficios.com -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo(a)vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/ |