public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* Immedate Values Optimized Jump Fix
       [not found] <20080715024754.GA26471@Krystal>
@ 2008-07-17  2:57 ` Mathieu Desnoyers
  2008-07-17  3:10   ` [ltt-dev] LTTng 0.11 Mathieu Desnoyers
       [not found] ` <000001c8e7aa$b9548600$2bfd9200$@css.fujitsu.com>
  1 sibling, 1 reply; 8+ messages in thread
From: Mathieu Desnoyers @ 2008-07-17  2:57 UTC (permalink / raw)
  To: ltt-dev, linux-kernel, Takashi Nishiie

I rarely emit a single patch for a fix wrt LTTng (I usually just release
a new version), but this one is worth it. It will be in 0.11 pretty
soon, but if you want to apply it to 0.10 meanwhile, it's highly
recommended.

Caused a kernel OOPS when loading the tracepoint probes once in a while
on a 8-way x86_64.


Immedate Values Optimized Jump Fix

Fix the immediate values optimized jump fallback, which parameters were wrong
following the last changes. It should be a 5 bytes instruction (not 2) with a 4
bytes operand.

Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@polymtl.ca>
---
 arch/x86/kernel/immediate.c |    2 +-
 include/asm-x86/immediate.h |    2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

Index: linux-2.6-lttng/arch/x86/kernel/immediate.c
===================================================================
--- linux-2.6-lttng.orig/arch/x86/kernel/immediate.c	2008-07-16 22:50:35.000000000 -0400
+++ linux-2.6-lttng/arch/x86/kernel/immediate.c	2008-07-16 22:51:07.000000000 -0400
@@ -500,7 +500,7 @@ __kprobes int arch_imv_update(struct __i
 				"Jump target fallback at %lX, nr fail %d\n",
 				imv->imv, ++nr_fail);
 #endif
-			imv->size = 1;
+			imv->size = 4;	/* Fallback on movl */
 		} else {
 #ifdef DEBUG_IMMEDIATE
 			static int nr_success;
Index: linux-2.6-lttng/include/asm-x86/immediate.h
===================================================================
--- linux-2.6-lttng.orig/include/asm-x86/immediate.h	2008-07-16 22:49:19.000000000 -0400
+++ linux-2.6-lttng/include/asm-x86/immediate.h	2008-07-16 22:51:07.000000000 -0400
@@ -132,7 +132,7 @@ struct __imv {
 		BUILD_BUG_ON(sizeof(__typeof__(name##__imv)) > 1);	\
 		asm (".section __imv,\"aw\",@progbits\n\t"		\
 			_ASM_PTR "%c1, (3f)-4\n\t"			\
-			".byte 0, 2\n\t"				\
+			".byte 0, 5\n\t"				\
 			".previous\n\t"					\
 			"mov $0,%0\n\t"					\
 			"3:\n\t"					\

-- 
Mathieu Desnoyers
OpenPGP key fingerprint: 8CD5 52C3 8E3C 4140 715F  BA06 3F25 A8FE 3BAE 9A68

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [ltt-dev] LTTng 0.11
  2008-07-17  2:57 ` Immedate Values Optimized Jump Fix Mathieu Desnoyers
@ 2008-07-17  3:10   ` Mathieu Desnoyers
  0 siblings, 0 replies; 8+ messages in thread
From: Mathieu Desnoyers @ 2008-07-17  3:10 UTC (permalink / raw)
  To: ltt-dev, linux-kernel, Takashi Nishiie

LTTng 0.11 is released, which contains this bugfix.

http://ltt.polymtl.ca/lttng/patch-2.6.26-0.11.tar.bz2

Mathieu

* Mathieu Desnoyers (compudj@krystal.dyndns.org) wrote:
> I rarely emit a single patch for a fix wrt LTTng (I usually just release
> a new version), but this one is worth it. It will be in 0.11 pretty
> soon, but if you want to apply it to 0.10 meanwhile, it's highly
> recommended.
> 
> Caused a kernel OOPS when loading the tracepoint probes once in a while
> on a 8-way x86_64.
> 
> 
> Immedate Values Optimized Jump Fix
> 
> Fix the immediate values optimized jump fallback, which parameters were wrong
> following the last changes. It should be a 5 bytes instruction (not 2) with a 4
> bytes operand.
> 
> Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@polymtl.ca>
> ---
>  arch/x86/kernel/immediate.c |    2 +-
>  include/asm-x86/immediate.h |    2 +-
>  2 files changed, 2 insertions(+), 2 deletions(-)
> 
> Index: linux-2.6-lttng/arch/x86/kernel/immediate.c
> ===================================================================
> --- linux-2.6-lttng.orig/arch/x86/kernel/immediate.c	2008-07-16 22:50:35.000000000 -0400
> +++ linux-2.6-lttng/arch/x86/kernel/immediate.c	2008-07-16 22:51:07.000000000 -0400
> @@ -500,7 +500,7 @@ __kprobes int arch_imv_update(struct __i
>  				"Jump target fallback at %lX, nr fail %d\n",
>  				imv->imv, ++nr_fail);
>  #endif
> -			imv->size = 1;
> +			imv->size = 4;	/* Fallback on movl */
>  		} else {
>  #ifdef DEBUG_IMMEDIATE
>  			static int nr_success;
> Index: linux-2.6-lttng/include/asm-x86/immediate.h
> ===================================================================
> --- linux-2.6-lttng.orig/include/asm-x86/immediate.h	2008-07-16 22:49:19.000000000 -0400
> +++ linux-2.6-lttng/include/asm-x86/immediate.h	2008-07-16 22:51:07.000000000 -0400
> @@ -132,7 +132,7 @@ struct __imv {
>  		BUILD_BUG_ON(sizeof(__typeof__(name##__imv)) > 1);	\
>  		asm (".section __imv,\"aw\",@progbits\n\t"		\
>  			_ASM_PTR "%c1, (3f)-4\n\t"			\
> -			".byte 0, 2\n\t"				\
> +			".byte 0, 5\n\t"				\
>  			".previous\n\t"					\
>  			"mov $0,%0\n\t"					\
>  			"3:\n\t"					\
> 
> -- 
> Mathieu Desnoyers
> OpenPGP key fingerprint: 8CD5 52C3 8E3C 4140 715F  BA06 3F25 A8FE 3BAE 9A68
> 
> _______________________________________________
> ltt-dev mailing list
> ltt-dev@lists.casi.polymtl.ca
> http://lists.casi.polymtl.ca/cgi-bin/mailman/listinfo/ltt-dev
> 

-- 
Mathieu Desnoyers
OpenPGP key fingerprint: 8CD5 52C3 8E3C 4140 715F  BA06 3F25 A8FE 3BAE 9A68

^ permalink raw reply	[flat|nested] 8+ messages in thread

* [PATCH] Fix markers duplicate modpost entry
       [not found]     ` <487ED503.2060503@oracle.com>
@ 2008-07-17  7:03       ` Mathieu Desnoyers
  2008-07-17  7:16         ` Andrew Morton
  0 siblings, 1 reply; 8+ messages in thread
From: Mathieu Desnoyers @ 2008-07-17  7:03 UTC (permalink / raw)
  To: akpm, Wenji Huang; +Cc: Takashi Nishiie, ltt-dev, systemtap, linux-kernel

When a kernel was rebuilt, the previous Module.markers was not cleared. It
caused markers with different format strings to appear as duplicates when a
markers was changed.

I merely merged the patches from Roland and Wenji here. It applies to
mainline (and is not intrusive, so will also apply to linux-next).

Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@polymtl.ca>
From: Roland McGrath <roland@redhat dot com>
From: Wenji Huang <wenji.huang@oracle.com>
CC: akpm@linux-foundation.org
---
 scripts/Makefile.modpost |    1 +
 scripts/mod/modpost.c    |    3 ++-
 2 files changed, 3 insertions(+), 1 deletion(-)

Index: linux-2.6-lttng/scripts/Makefile.modpost
===================================================================
--- linux-2.6-lttng.orig/scripts/Makefile.modpost	2008-07-17 02:47:44.000000000 -0400
+++ linux-2.6-lttng/scripts/Makefile.modpost	2008-07-17 02:48:17.000000000 -0400
@@ -101,6 +101,7 @@ quiet_cmd_kernel-mod = MODPOST $@
       cmd_kernel-mod = $(modpost) $@
 
 vmlinux.o: FORCE
+	@rm -fr $(kernelmarkersfile)
 	$(call cmd,kernel-mod)
 
 # Declare generated files as targets for modpost
Index: linux-2.6-lttng/scripts/mod/modpost.c
===================================================================
--- linux-2.6-lttng.orig/scripts/mod/modpost.c	2008-07-17 02:49:33.000000000 -0400
+++ linux-2.6-lttng/scripts/mod/modpost.c	2008-07-17 02:50:10.000000000 -0400
@@ -1992,7 +1992,8 @@ static void read_markers(const char *fna
 			mod->skip = 1;
 		}
 
-		add_marker(mod, marker, fmt);
+		if (!mod->skip)
+			add_marker(mod, marker, fmt);
 	}
 	return;
 fail:

-- 
Mathieu Desnoyers
OpenPGP key fingerprint: 8CD5 52C3 8E3C 4140 715F  BA06 3F25 A8FE 3BAE 9A68

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [PATCH] Fix markers duplicate modpost entry
  2008-07-17  7:03       ` [PATCH] Fix markers duplicate modpost entry Mathieu Desnoyers
@ 2008-07-17  7:16         ` Andrew Morton
  2008-07-17 14:13           ` Mathieu Desnoyers
  2008-07-17 14:52           ` [PATCH] Fix markers duplicate modpost entry (update) Mathieu Desnoyers
  0 siblings, 2 replies; 8+ messages in thread
From: Andrew Morton @ 2008-07-17  7:16 UTC (permalink / raw)
  To: Mathieu Desnoyers
  Cc: Wenji Huang, Takashi Nishiie, ltt-dev, systemtap, linux-kernel

On Thu, 17 Jul 2008 03:03:21 -0400 Mathieu Desnoyers <compudj@krystal.dyndns.org> wrote:

> When a kernel was rebuilt, the previous Module.markers was not cleared. It
> caused markers with different format strings to appear as duplicates when a
> markers was changed.
> 
> I merely merged the patches from Roland and Wenji here. It applies to
> mainline (and is not intrusive, so will also apply to linux-next).

Is this fix needed in 2.6.26.x?  2.6.25.x?

> Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@polymtl.ca>
> From: Roland McGrath <roland@redhat dot com>
> From: Wenji Huang <wenji.huang@oracle.com>
> CC: akpm@linux-foundation.org

whoa, what's all that about?

Patches can only have one Author: in git, and we indicate that in
emails by putting a From: line right at the top of the changelog. 
(Additional credits can and should be mentioned in the changelog text
of course).  When that From: line is missing we take the authorship
info from the email headers.

So according to the above, this patch has three authors.  Geeze, even I
can type faster than that!

Who wrote it?

> ---
>  scripts/Makefile.modpost |    1 +
>  scripts/mod/modpost.c    |    3 ++-
>  2 files changed, 3 insertions(+), 1 deletion(-)
> 
> Index: linux-2.6-lttng/scripts/Makefile.modpost
> ===================================================================
> --- linux-2.6-lttng.orig/scripts/Makefile.modpost	2008-07-17 02:47:44.000000000 -0400
> +++ linux-2.6-lttng/scripts/Makefile.modpost	2008-07-17 02:48:17.000000000 -0400
> @@ -101,6 +101,7 @@ quiet_cmd_kernel-mod = MODPOST $@
>        cmd_kernel-mod = $(modpost) $@
>  
>  vmlinux.o: FORCE
> +	@rm -fr $(kernelmarkersfile)
>  	$(call cmd,kernel-mod)
>  
>  # Declare generated files as targets for modpost
> Index: linux-2.6-lttng/scripts/mod/modpost.c
> ===================================================================
> --- linux-2.6-lttng.orig/scripts/mod/modpost.c	2008-07-17 02:49:33.000000000 -0400
> +++ linux-2.6-lttng/scripts/mod/modpost.c	2008-07-17 02:50:10.000000000 -0400
> @@ -1992,7 +1992,8 @@ static void read_markers(const char *fna
>  			mod->skip = 1;
>  		}
>  
> -		add_marker(mod, marker, fmt);
> +		if (!mod->skip)
> +			add_marker(mod, marker, fmt);
>  	}
>  	return;
>  fail:


^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [PATCH] Fix markers duplicate modpost entry
  2008-07-17  7:16         ` Andrew Morton
@ 2008-07-17 14:13           ` Mathieu Desnoyers
  2008-07-17 14:52           ` [PATCH] Fix markers duplicate modpost entry (update) Mathieu Desnoyers
  1 sibling, 0 replies; 8+ messages in thread
From: Mathieu Desnoyers @ 2008-07-17 14:13 UTC (permalink / raw)
  To: Andrew Morton
  Cc: Wenji Huang, Takashi Nishiie, ltt-dev, systemtap, linux-kernel

* Andrew Morton (akpm@linux-foundation.org) wrote:
> On Thu, 17 Jul 2008 03:03:21 -0400 Mathieu Desnoyers <compudj@krystal.dyndns.org> wrote:
> 
> > When a kernel was rebuilt, the previous Module.markers was not cleared. It
> > caused markers with different format strings to appear as duplicates when a
> > markers was changed.
> > 
> > I merely merged the patches from Roland and Wenji here. It applies to
> > mainline (and is not intrusive, so will also apply to linux-next).
> 
> Is this fix needed in 2.6.26.x?  2.6.25.x?
> 

Yes, it's needed in 2.6.26.x and 2.6.25, but I doubt it is critical :
only needed for systemtap users which use markers and rebuild their
kernel after having changed a marker format string.

> > Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@polymtl.ca>
> > From: Roland McGrath <roland@redhat dot com>
> > From: Wenji Huang <wenji.huang@oracle.com>
> > CC: akpm@linux-foundation.org
> 
> whoa, what's all that about?
> 
> Patches can only have one Author: in git, and we indicate that in
> emails by putting a From: line right at the top of the changelog. 
> (Additional credits can and should be mentioned in the changelog text
> of course).  When that From: line is missing we take the authorship
> info from the email headers.
> 
> So according to the above, this patch has three authors.  Geeze, even I
> can type faster than that!
> 

hehehe :)

> Who wrote it?
> 

I took the diffs Roland and Wenji sent in separate emails and created
this patch. They are the ones who actually identified the solution. So I
guess I should be the author, with credits to them, if they are ok with
that.

Mathieu


> > ---
> >  scripts/Makefile.modpost |    1 +
> >  scripts/mod/modpost.c    |    3 ++-
> >  2 files changed, 3 insertions(+), 1 deletion(-)
> > 
> > Index: linux-2.6-lttng/scripts/Makefile.modpost
> > ===================================================================
> > --- linux-2.6-lttng.orig/scripts/Makefile.modpost	2008-07-17 02:47:44.000000000 -0400
> > +++ linux-2.6-lttng/scripts/Makefile.modpost	2008-07-17 02:48:17.000000000 -0400
> > @@ -101,6 +101,7 @@ quiet_cmd_kernel-mod = MODPOST $@
> >        cmd_kernel-mod = $(modpost) $@
> >  
> >  vmlinux.o: FORCE
> > +	@rm -fr $(kernelmarkersfile)
> >  	$(call cmd,kernel-mod)
> >  
> >  # Declare generated files as targets for modpost
> > Index: linux-2.6-lttng/scripts/mod/modpost.c
> > ===================================================================
> > --- linux-2.6-lttng.orig/scripts/mod/modpost.c	2008-07-17 02:49:33.000000000 -0400
> > +++ linux-2.6-lttng/scripts/mod/modpost.c	2008-07-17 02:50:10.000000000 -0400
> > @@ -1992,7 +1992,8 @@ static void read_markers(const char *fna
> >  			mod->skip = 1;
> >  		}
> >  
> > -		add_marker(mod, marker, fmt);
> > +		if (!mod->skip)
> > +			add_marker(mod, marker, fmt);
> >  	}
> >  	return;
> >  fail:
> 

-- 
Mathieu Desnoyers
OpenPGP key fingerprint: 8CD5 52C3 8E3C 4140 715F  BA06 3F25 A8FE 3BAE 9A68

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [PATCH] Fix markers duplicate modpost entry (update)
  2008-07-17  7:16         ` Andrew Morton
  2008-07-17 14:13           ` Mathieu Desnoyers
@ 2008-07-17 14:52           ` Mathieu Desnoyers
  2008-07-17 22:28             ` Andrew Morton
  1 sibling, 1 reply; 8+ messages in thread
From: Mathieu Desnoyers @ 2008-07-17 14:52 UTC (permalink / raw)
  To: Andrew Morton
  Cc: Wenji Huang, Roland McGrath, Takashi Nishiie, ltt-dev, systemtap,
	linux-kernel

When a kernel was rebuilt, the previous Module.markers was not cleared. It
caused markers with different format strings to appear as duplicates when a
markers was changed. This problem is present since scripts/mod/modpost.c started
to generate Module.markers,
commit b2e3e658b344c6bcfb8fb694100ab2f2b5b2edb0

It therefore applies to 2.6.25, 2.6.26 and linux-next.

I merely merged the patches from Roland, Wenji and Takashi here.

Credits to
Roland McGrath <roland@redhat.com>
Wenji Huang <wenji.huang@oracle.com> 
and
Takashi Nishiie <t-nishiie@np.css.fujitsu.com>

for providing the individual fixes.

- Changelog :
  - Integrated Takashi's Makefile modification to clear Module.markers upon
    make clean.

Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@polymtl.ca>
CC: Roland McGrath <roland@redhat.com>
CC: Wenji Huang <wenji.huang@oracle.com>
CC: Takashi Nishiie <t-nishiie@np.css.fujitsu.com>
CC: akpm@linux-foundation.org
---
 Makefile                 |    3 ++-
 scripts/Makefile.modpost |    1 +
 scripts/mod/modpost.c    |    3 ++-
 3 files changed, 5 insertions(+), 2 deletions(-)

Index: linux-2.6-lttng/scripts/Makefile.modpost
===================================================================
--- linux-2.6-lttng.orig/scripts/Makefile.modpost	2008-07-17 02:47:44.000000000 -0400
+++ linux-2.6-lttng/scripts/Makefile.modpost	2008-07-17 02:48:17.000000000 -0400
@@ -101,6 +101,7 @@ quiet_cmd_kernel-mod = MODPOST $@
       cmd_kernel-mod = $(modpost) $@
 
 vmlinux.o: FORCE
+	@rm -fr $(kernelmarkersfile)
 	$(call cmd,kernel-mod)
 
 # Declare generated files as targets for modpost
Index: linux-2.6-lttng/scripts/mod/modpost.c
===================================================================
--- linux-2.6-lttng.orig/scripts/mod/modpost.c	2008-07-17 02:49:33.000000000 -0400
+++ linux-2.6-lttng/scripts/mod/modpost.c	2008-07-17 02:50:10.000000000 -0400
@@ -1992,7 +1992,8 @@ static void read_markers(const char *fna
 			mod->skip = 1;
 		}
 
-		add_marker(mod, marker, fmt);
+		if (!mod->skip)
+			add_marker(mod, marker, fmt);
 	}
 	return;
 fail:
Index: linux-2.6-lttng/Makefile
===================================================================
--- linux-2.6-lttng.orig/Makefile	2008-07-17 10:37:44.000000000 -0400
+++ linux-2.6-lttng/Makefile	2008-07-17 10:38:34.000000000 -0400
@@ -1133,7 +1133,8 @@ clean: archclean $(clean-dirs)
 	@find . $(RCS_FIND_IGNORE) \
 		\( -name '*.[oas]' -o -name '*.ko' -o -name '.*.cmd' \
 		-o -name '.*.d' -o -name '.*.tmp' -o -name '*.mod.c' \
-		-o -name '*.symtypes' -o -name 'modules.order' \) \
+		-o -name '*.symtypes' -o -name 'modules.order' \
+		-o -name 'Module.markers' \) \
 		-type f -print | xargs rm -f
 
 # mrproper - Delete all generated files, including .config
-- 
Mathieu Desnoyers
OpenPGP key fingerprint: 8CD5 52C3 8E3C 4140 715F  BA06 3F25 A8FE 3BAE 9A68

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [PATCH] Fix markers duplicate modpost entry (update)
  2008-07-17 14:52           ` [PATCH] Fix markers duplicate modpost entry (update) Mathieu Desnoyers
@ 2008-07-17 22:28             ` Andrew Morton
  2008-07-17 22:40               ` Randy Dunlap
  0 siblings, 1 reply; 8+ messages in thread
From: Andrew Morton @ 2008-07-17 22:28 UTC (permalink / raw)
  To: Mathieu Desnoyers
  Cc: wenji.huang, roland, t-nishiie, ltt-dev, systemtap, linux-kernel

On Thu, 17 Jul 2008 10:52:17 -0400
Mathieu Desnoyers <compudj@krystal.dyndns.org> wrote:

> Subject: Re: [PATCH] Fix markers duplicate modpost entry (update)

Please prepare the patch titles along the lines of

	[patch] subsystem-identifer: what i did to it

so this one would have been

	[patch] markers: fix markers duplicate modpost entry


It's for consistency, and for ease of reading commits mailing lists and
gitk titles and git-shortlog output, etc.

Thanks.

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [PATCH] Fix markers duplicate modpost entry (update)
  2008-07-17 22:28             ` Andrew Morton
@ 2008-07-17 22:40               ` Randy Dunlap
  0 siblings, 0 replies; 8+ messages in thread
From: Randy Dunlap @ 2008-07-17 22:40 UTC (permalink / raw)
  To: Andrew Morton
  Cc: Mathieu Desnoyers, wenji.huang, roland, t-nishiie, ltt-dev,
	systemtap, linux-kernel

On Thu, 17 Jul 2008 15:28:37 -0700 Andrew Morton wrote:

> On Thu, 17 Jul 2008 10:52:17 -0400
> Mathieu Desnoyers <compudj@krystal.dyndns.org> wrote:
> 
> > Subject: Re: [PATCH] Fix markers duplicate modpost entry (update)
> 
> Please prepare the patch titles along the lines of
> 
> 	[patch] subsystem-identifer: what i did to it
> 
> so this one would have been
> 
> 	[patch] markers: fix markers duplicate modpost entry
> 
> 
> It's for consistency, and for ease of reading commits mailing lists and
> gitk titles and git-shortlog output, etc.

Agreed, although I would have used

	[PATCH] modpost: fix duplicate markers entries


---
~Randy
Linux Plumbers Conference, 17-19 September 2008, Portland, Oregon USA
http://linuxplumbersconf.org/

^ permalink raw reply	[flat|nested] 8+ messages in thread

end of thread, other threads:[~2008-07-17 22:42 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
     [not found] <20080715024754.GA26471@Krystal>
2008-07-17  2:57 ` Immedate Values Optimized Jump Fix Mathieu Desnoyers
2008-07-17  3:10   ` [ltt-dev] LTTng 0.11 Mathieu Desnoyers
     [not found] ` <000001c8e7aa$b9548600$2bfd9200$@css.fujitsu.com>
     [not found]   ` <20080717024550.GA22869@Krystal>
     [not found]     ` <487ED503.2060503@oracle.com>
2008-07-17  7:03       ` [PATCH] Fix markers duplicate modpost entry Mathieu Desnoyers
2008-07-17  7:16         ` Andrew Morton
2008-07-17 14:13           ` Mathieu Desnoyers
2008-07-17 14:52           ` [PATCH] Fix markers duplicate modpost entry (update) Mathieu Desnoyers
2008-07-17 22:28             ` Andrew Morton
2008-07-17 22:40               ` Randy Dunlap

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox