This annotates NMI functions with notrace. Some tracers may be able to live with this, but some cannot. So we turn off NMI tracing. One solution might be to make a notrace_nmi which would only turn off NMI tracing if a trace utility needed it off. Signed-off-by: Arnaldo Carvalho de Melo Signed-off-by: Steven Rostedt --- arch/x86/kernel/nmi_32.c | 2 +- arch/x86/kernel/nmi_64.c | 2 +- arch/x86/kernel/traps_32.c | 4 ++-- 3 files changed, 4 insertions(+), 4 deletions(-) Index: linux-mcount.git/arch/x86/kernel/nmi_32.c =================================================================== --- linux-mcount.git.orig/arch/x86/kernel/nmi_32.c 2008-01-25 21:46:50.000000000 -0500 +++ linux-mcount.git/arch/x86/kernel/nmi_32.c 2008-01-25 21:47:08.000000000 -0500 @@ -318,7 +318,7 @@ EXPORT_SYMBOL(touch_nmi_watchdog); extern void die_nmi(struct pt_regs *, const char *msg); -__kprobes int nmi_watchdog_tick(struct pt_regs * regs, unsigned reason) +notrace __kprobes int nmi_watchdog_tick(struct pt_regs *regs, unsigned reason) { /* Index: linux-mcount.git/arch/x86/kernel/nmi_64.c =================================================================== --- linux-mcount.git.orig/arch/x86/kernel/nmi_64.c 2008-01-25 21:46:50.000000000 -0500 +++ linux-mcount.git/arch/x86/kernel/nmi_64.c 2008-01-25 21:47:08.000000000 -0500 @@ -314,7 +314,7 @@ void touch_nmi_watchdog(void) touch_softlockup_watchdog(); } -int __kprobes nmi_watchdog_tick(struct pt_regs * regs, unsigned reason) +notrace __kprobes int nmi_watchdog_tick(struct pt_regs *regs, unsigned reason) { int sum; int touched = 0; Index: linux-mcount.git/arch/x86/kernel/traps_32.c =================================================================== --- linux-mcount.git.orig/arch/x86/kernel/traps_32.c 2008-01-25 21:46:50.000000000 -0500 +++ linux-mcount.git/arch/x86/kernel/traps_32.c 2008-01-25 21:47:08.000000000 -0500 @@ -723,7 +723,7 @@ void __kprobes die_nmi(struct pt_regs *r do_exit(SIGSEGV); } -static __kprobes void default_do_nmi(struct pt_regs * regs) +static notrace __kprobes void default_do_nmi(struct pt_regs *regs) { unsigned char reason = 0; @@ -763,7 +763,7 @@ static __kprobes void default_do_nmi(str static int ignore_nmis; -fastcall __kprobes void do_nmi(struct pt_regs * regs, long error_code) +notrace fastcall __kprobes void do_nmi(struct pt_regs *regs, long error_code) { int cpu; -- -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/