* [PATCH] lockdep fix incorrect percpu usage @ 2010-03-30 3:34 Mathieu Desnoyers 2010-03-30 8:47 ` Peter Zijlstra 0 siblings, 1 reply; 9+ messages in thread From: Mathieu Desnoyers @ 2010-03-30 3:34 UTC (permalink / raw) To: linux-kernel Cc: Randy Dunlap, Eric Dumazet, Rusty Russell, Peter Zijlstra, Tejun Heo, Ingo Molnar, Andrew Morton, Linus Torvalds, Greg Kroah-Hartman, Steven Rostedt, stable Should use per_cpu_ptr() to obfuscate the per cpu pointers (RELOC_HIDE is needed for per cpu pointers). git blame points to commit: lockdep.c: commit 8e18257d29238311e82085152741f0c3aa18b74d But it's really just moving the code around. But it's enough to say that the problems appeared before Jul 19 01:48:54 2007, which brings us back to 2.6.23. So it should be applied to stable 2.6.23.x to 2.6.33.x (or whichever of these stable branches are still maintained) and to mainline 2.6.34-rc2. This patch should be queued for the stable branch. (tested on 2.6.33.1 x86_64) Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com> CC: Randy Dunlap <randy.dunlap@oracle.com> CC: Eric Dumazet <dada1@cosmosbay.com> CC: Rusty Russell <rusty@rustcorp.com.au> CC: Peter Zijlstra <a.p.zijlstra@chello.nl> CC: Tejun Heo <tj@kernel.org> CC: Ingo Molnar <mingo@elte.hu> CC: Andrew Morton <akpm@linux-foundation.org> CC: Linus Torvalds <torvalds@linux-foundation.org> CC: Greg Kroah-Hartman <gregkh@suse.de> CC: Steven Rostedt <rostedt@goodmis.org> CC: stable <stable@kernel.org> --- kernel/lockdep.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) Index: linux-2.6-lttng/kernel/lockdep.c =================================================================== --- linux-2.6-lttng.orig/kernel/lockdep.c 2010-03-29 23:54:31.000000000 -0400 +++ linux-2.6-lttng/kernel/lockdep.c 2010-03-29 23:54:38.000000000 -0400 @@ -609,9 +609,9 @@ static int static_obj(void *obj) * percpu var? */ for_each_possible_cpu(i) { - start = (unsigned long) &__per_cpu_start + per_cpu_offset(i); - end = (unsigned long) &__per_cpu_start + PERCPU_ENOUGH_ROOM - + per_cpu_offset(i); + start = (unsigned long) per_cpu_ptr(&__per_cpu_start, i); + end = (unsigned long) per_cpu_ptr(&__per_cpu_start + + PERCPU_ENOUGH_ROOM, i); if ((addr >= start) && (addr < end)) return 1; -- Mathieu Desnoyers Operating System Efficiency R&D Consultant EfficiOS Inc. http://www.efficios.com ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH] lockdep fix incorrect percpu usage 2010-03-30 3:34 [PATCH] lockdep fix incorrect percpu usage Mathieu Desnoyers @ 2010-03-30 8:47 ` Peter Zijlstra 2010-03-30 13:45 ` Mathieu Desnoyers 0 siblings, 1 reply; 9+ messages in thread From: Peter Zijlstra @ 2010-03-30 8:47 UTC (permalink / raw) To: Mathieu Desnoyers Cc: linux-kernel, Randy Dunlap, Eric Dumazet, Rusty Russell, Tejun Heo, Ingo Molnar, Andrew Morton, Linus Torvalds, Greg Kroah-Hartman, Steven Rostedt, stable On Mon, 2010-03-29 at 23:34 -0400, Mathieu Desnoyers wrote: > Should use per_cpu_ptr() to obfuscate the per cpu pointers (RELOC_HIDE is needed > for per cpu pointers). > > git blame points to commit: > > lockdep.c: commit 8e18257d29238311e82085152741f0c3aa18b74d > > But it's really just moving the code around. But it's enough to say that the > problems appeared before Jul 19 01:48:54 2007, which brings us back to 2.6.23. > > So it should be applied to stable 2.6.23.x to 2.6.33.x (or whichever of these > stable branches are still maintained) and to mainline 2.6.34-rc2. well, definately not to mainline, since that code is utterly busted in mainline due to recent per-cpu changes. ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH] lockdep fix incorrect percpu usage 2010-03-30 8:47 ` Peter Zijlstra @ 2010-03-30 13:45 ` Mathieu Desnoyers 2010-03-30 14:25 ` Peter Zijlstra 0 siblings, 1 reply; 9+ messages in thread From: Mathieu Desnoyers @ 2010-03-30 13:45 UTC (permalink / raw) To: Peter Zijlstra Cc: linux-kernel, Randy Dunlap, Eric Dumazet, Rusty Russell, Tejun Heo, Ingo Molnar, Andrew Morton, Linus Torvalds, Greg Kroah-Hartman, Steven Rostedt, stable * Peter Zijlstra (peterz@infradead.org) wrote: > On Mon, 2010-03-29 at 23:34 -0400, Mathieu Desnoyers wrote: > > Should use per_cpu_ptr() to obfuscate the per cpu pointers (RELOC_HIDE is needed > > for per cpu pointers). > > > > git blame points to commit: > > > > lockdep.c: commit 8e18257d29238311e82085152741f0c3aa18b74d > > > > But it's really just moving the code around. But it's enough to say that the > > problems appeared before Jul 19 01:48:54 2007, which brings us back to 2.6.23. > > > > So it should be applied to stable 2.6.23.x to 2.6.33.x (or whichever of these > > stable branches are still maintained) and to mainline 2.6.34-rc2. > > well, definately not to mainline, since that code is utterly busted in > mainline due to recent per-cpu changes. How recent ? I'm based on commit f57d4e859a8acd63f878cd0534ec4b990b1710dc Merge: 0528faa... eed6351... Author: Ingo Molnar <mingo@elte.hu> Date: Mon Mar 29 18:56:00 2010 +0200 from -tip and I see the problem there, both in module.c and lockdep.c. Thanks, Mathieu -- Mathieu Desnoyers Operating System Efficiency R&D Consultant EfficiOS Inc. http://www.efficios.com ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH] lockdep fix incorrect percpu usage 2010-03-30 13:45 ` Mathieu Desnoyers @ 2010-03-30 14:25 ` Peter Zijlstra 2010-03-30 15:05 ` Mathieu Desnoyers 0 siblings, 1 reply; 9+ messages in thread From: Peter Zijlstra @ 2010-03-30 14:25 UTC (permalink / raw) To: Mathieu Desnoyers Cc: linux-kernel, Randy Dunlap, Eric Dumazet, Rusty Russell, Tejun Heo, Ingo Molnar, Andrew Morton, Linus Torvalds, Greg Kroah-Hartman, Steven Rostedt, stable On Tue, 2010-03-30 at 09:45 -0400, Mathieu Desnoyers wrote: > * Peter Zijlstra (peterz@infradead.org) wrote: > > On Mon, 2010-03-29 at 23:34 -0400, Mathieu Desnoyers wrote: > > > Should use per_cpu_ptr() to obfuscate the per cpu pointers (RELOC_HIDE is needed > > > for per cpu pointers). > > > > > > git blame points to commit: > > > > > > lockdep.c: commit 8e18257d29238311e82085152741f0c3aa18b74d > > > > > > But it's really just moving the code around. But it's enough to say that the > > > problems appeared before Jul 19 01:48:54 2007, which brings us back to 2.6.23. > > > > > > So it should be applied to stable 2.6.23.x to 2.6.33.x (or whichever of these > > > stable branches are still maintained) and to mainline 2.6.34-rc2. > > > > well, definately not to mainline, since that code is utterly busted in > > mainline due to recent per-cpu changes. > > How recent ? I'm based on > > commit f57d4e859a8acd63f878cd0534ec4b990b1710dc > Merge: 0528faa... eed6351... > Author: Ingo Molnar <mingo@elte.hu> > Date: Mon Mar 29 18:56:00 2010 +0200 > > from -tip and I see the problem there, both in module.c and lockdep.c. Yeah, its basically been busted since the early merge window period, hopefully Tejun's patches will make it in soon: http://lkml.org/lkml/2010/3/10/79 ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH] lockdep fix incorrect percpu usage 2010-03-30 14:25 ` Peter Zijlstra @ 2010-03-30 15:05 ` Mathieu Desnoyers 2010-03-31 2:43 ` Tejun Heo 0 siblings, 1 reply; 9+ messages in thread From: Mathieu Desnoyers @ 2010-03-30 15:05 UTC (permalink / raw) To: Peter Zijlstra Cc: linux-kernel, Randy Dunlap, Eric Dumazet, Rusty Russell, Tejun Heo, Ingo Molnar, Andrew Morton, Linus Torvalds, Greg Kroah-Hartman, Steven Rostedt, stable * Peter Zijlstra (peterz@infradead.org) wrote: > On Tue, 2010-03-30 at 09:45 -0400, Mathieu Desnoyers wrote: > > * Peter Zijlstra (peterz@infradead.org) wrote: > > > On Mon, 2010-03-29 at 23:34 -0400, Mathieu Desnoyers wrote: > > > > Should use per_cpu_ptr() to obfuscate the per cpu pointers (RELOC_HIDE is needed > > > > for per cpu pointers). > > > > > > > > git blame points to commit: > > > > > > > > lockdep.c: commit 8e18257d29238311e82085152741f0c3aa18b74d > > > > > > > > But it's really just moving the code around. But it's enough to say that the > > > > problems appeared before Jul 19 01:48:54 2007, which brings us back to 2.6.23. > > > > > > > > So it should be applied to stable 2.6.23.x to 2.6.33.x (or whichever of these > > > > stable branches are still maintained) and to mainline 2.6.34-rc2. > > > > > > well, definately not to mainline, since that code is utterly busted in > > > mainline due to recent per-cpu changes. > > > > How recent ? I'm based on > > > > commit f57d4e859a8acd63f878cd0534ec4b990b1710dc > > Merge: 0528faa... eed6351... > > Author: Ingo Molnar <mingo@elte.hu> > > Date: Mon Mar 29 18:56:00 2010 +0200 > > > > from -tip and I see the problem there, both in module.c and lockdep.c. > > Yeah, its basically been busted since the early merge window period, > hopefully Tejun's patches will make it in soon: > > http://lkml.org/lkml/2010/3/10/79 I see. These patches are "on their way" to mainline, so it's better not to create conflicts. So the lockdep patch should only be applied to -stable, but separate module.c patch should apply to both -stable and mainline. Am I correct ? Thanks, Mathieu > > > -- Mathieu Desnoyers Operating System Efficiency R&D Consultant EfficiOS Inc. http://www.efficios.com ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH] lockdep fix incorrect percpu usage 2010-03-30 15:05 ` Mathieu Desnoyers @ 2010-03-31 2:43 ` Tejun Heo 2010-04-19 18:29 ` [stable] " Greg KH 0 siblings, 1 reply; 9+ messages in thread From: Tejun Heo @ 2010-03-31 2:43 UTC (permalink / raw) To: Mathieu Desnoyers Cc: Peter Zijlstra, linux-kernel, Randy Dunlap, Eric Dumazet, Rusty Russell, Ingo Molnar, Andrew Morton, Linus Torvalds, Greg Kroah-Hartman, Steven Rostedt, stable On 03/31/2010 12:05 AM, Mathieu Desnoyers wrote: > I see. These patches are "on their way" to mainline, so it's better not to > create conflicts. So the lockdep patch should only be applied to -stable, but > separate module.c patch should apply to both -stable and mainline. Am I > correct ? I'll push proper fixes to mainline in a few days. For -stable, yeah, probably. Thanks. -- tejun ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [stable] [PATCH] lockdep fix incorrect percpu usage 2010-03-31 2:43 ` Tejun Heo @ 2010-04-19 18:29 ` Greg KH 2010-04-20 14:33 ` Mathieu Desnoyers 0 siblings, 1 reply; 9+ messages in thread From: Greg KH @ 2010-04-19 18:29 UTC (permalink / raw) To: Tejun Heo Cc: Mathieu Desnoyers, Randy Dunlap, Greg Kroah-Hartman, Peter Zijlstra, stable, Rusty Russell, linux-kernel, Steven Rostedt, Eric Dumazet, Ingo Molnar, Linus Torvalds, Andrew Morton On Wed, Mar 31, 2010 at 11:43:16AM +0900, Tejun Heo wrote: > On 03/31/2010 12:05 AM, Mathieu Desnoyers wrote: > > I see. These patches are "on their way" to mainline, so it's better not to > > create conflicts. So the lockdep patch should only be applied to -stable, but > > separate module.c patch should apply to both -stable and mainline. Am I > > correct ? > > I'll push proper fixes to mainline in a few days. For -stable, yeah, > probably. Ok, did a patch ever end up in Linus's tree for this that I can pull into the -stable releases? thanks, greg k-h ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [stable] [PATCH] lockdep fix incorrect percpu usage 2010-04-19 18:29 ` [stable] " Greg KH @ 2010-04-20 14:33 ` Mathieu Desnoyers 2010-04-21 10:52 ` Tejun Heo 0 siblings, 1 reply; 9+ messages in thread From: Mathieu Desnoyers @ 2010-04-20 14:33 UTC (permalink / raw) To: Greg KH Cc: Tejun Heo, Randy Dunlap, Greg Kroah-Hartman, Peter Zijlstra, stable, Rusty Russell, linux-kernel, Steven Rostedt, Eric Dumazet, Ingo Molnar, Linus Torvalds, Andrew Morton * Greg KH (greg@kroah.com) wrote: > On Wed, Mar 31, 2010 at 11:43:16AM +0900, Tejun Heo wrote: > > On 03/31/2010 12:05 AM, Mathieu Desnoyers wrote: > > > I see. These patches are "on their way" to mainline, so it's better not to > > > create conflicts. So the lockdep patch should only be applied to -stable, but > > > separate module.c patch should apply to both -stable and mainline. Am I > > > correct ? > > > > I'll push proper fixes to mainline in a few days. For -stable, yeah, > > probably. > > Ok, did a patch ever end up in Linus's tree for this that I can pull > into the -stable releases? > > thanks, > > greg k-h Hi Greg, Here is the updated patch, stating which mainline commit from Tejun fixes it by refactoring the code. I'll leave the decision to pick this targeted fix or Tejun refactoring into -stable up to you. lockdep fix incorrect percpu usage Should use per_cpu_ptr() to obfuscate the per cpu pointers (RELOC_HIDE is needed for per cpu pointers). git blame points to commit: lockdep.c: commit 8e18257d29238311e82085152741f0c3aa18b74d But it's really just moving the code around. But it's enough to say that the problems appeared before Jul 19 01:48:54 2007, which brings us back to 2.6.23. It should be applied to stable 2.6.23.x to 2.6.33.x (or whichever of these stable branches are still maintained). The mainline kernel as of 2.6.34-rc5 is not affected by this problem because commit 10fad5e46f6c7bdfb01b1a012380a38e3c6ab346 fixed it by refactoring. (tested on 2.6.33.1 x86_64) Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com> CC: Randy Dunlap <randy.dunlap@oracle.com> CC: Eric Dumazet <dada1@cosmosbay.com> CC: Rusty Russell <rusty@rustcorp.com.au> CC: Peter Zijlstra <a.p.zijlstra@chello.nl> CC: Tejun Heo <tj@kernel.org> CC: Ingo Molnar <mingo@elte.hu> CC: Andrew Morton <akpm@linux-foundation.org> CC: Linus Torvalds <torvalds@linux-foundation.org> CC: Greg Kroah-Hartman <gregkh@suse.de> CC: Steven Rostedt <rostedt@goodmis.org> CC: stable <stable@kernel.org> --- kernel/lockdep.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) Index: linux.trees.git/kernel/lockdep.c =================================================================== --- linux.trees.git.orig/kernel/lockdep.c 2010-03-19 16:18:34.000000000 -0400 +++ linux.trees.git/kernel/lockdep.c 2010-03-30 09:48:43.000000000 -0400 @@ -600,9 +600,9 @@ static int static_obj(void *obj) * percpu var? */ for_each_possible_cpu(i) { - start = (unsigned long) &__per_cpu_start + per_cpu_offset(i); - end = (unsigned long) &__per_cpu_start + PERCPU_ENOUGH_ROOM - + per_cpu_offset(i); + start = (unsigned long) per_cpu_ptr(&__per_cpu_start, i); + end = (unsigned long) per_cpu_ptr(&__per_cpu_start + + PERCPU_ENOUGH_ROOM, i); if ((addr >= start) && (addr < end)) return 1; -- Mathieu Desnoyers Operating System Efficiency R&D Consultant EfficiOS Inc. http://www.efficios.com ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [stable] [PATCH] lockdep fix incorrect percpu usage 2010-04-20 14:33 ` Mathieu Desnoyers @ 2010-04-21 10:52 ` Tejun Heo 0 siblings, 0 replies; 9+ messages in thread From: Tejun Heo @ 2010-04-21 10:52 UTC (permalink / raw) To: Mathieu Desnoyers Cc: Greg KH, Randy Dunlap, Greg Kroah-Hartman, Peter Zijlstra, stable, Rusty Russell, linux-kernel, Steven Rostedt, Eric Dumazet, Ingo Molnar, Linus Torvalds, Andrew Morton On 04/20/2010 04:33 PM, Mathieu Desnoyers wrote: > Here is the updated patch, stating which mainline commit from Tejun > fixes it by refactoring the code. I'll leave the decision to pick > this targeted fix or Tejun refactoring into -stable up to you. Ditto, please take this one. Thanks. -- tejun ^ permalink raw reply [flat|nested] 9+ messages in thread
end of thread, other threads:[~2010-04-22 8:31 UTC | newest] Thread overview: 9+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2010-03-30 3:34 [PATCH] lockdep fix incorrect percpu usage Mathieu Desnoyers 2010-03-30 8:47 ` Peter Zijlstra 2010-03-30 13:45 ` Mathieu Desnoyers 2010-03-30 14:25 ` Peter Zijlstra 2010-03-30 15:05 ` Mathieu Desnoyers 2010-03-31 2:43 ` Tejun Heo 2010-04-19 18:29 ` [stable] " Greg KH 2010-04-20 14:33 ` Mathieu Desnoyers 2010-04-21 10:52 ` Tejun Heo
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.