Subject: Re: Next April 24: [S390] allmodconfig build failure (trace/events)

From: Heiko Carstens <[email-masked]>
Date: Wed, 29 Apr 2009 13:51:39 +0200

On Wed, 29 Apr 2009 15:21:39 +0530
Sachin Sant <[email-masked]> wrote:
> Heiko Carstens wrote:
> > On Fri, 24 Apr 2009 09:25:33 +0200
> > Ingo Molnar <[email-masked]> wrote:
> >> * Sachin Sant <[email-masked]> wrote:
> >>> Today's next tree build(s390 allmodconfig) failed with
> >>>
> >>> kernel/built-in.o: In function `trace_softirq_entry'
> >>> include/trace/events/irq.h:42: undefined reference to  
> >>> `'
> >>> include/trace/events/irq.h:42: undefined reference to  
> >>> `__tracepoint_softirq_entry'
> >>> kernel/built-in.o: In function `trace_softirq_exit':
> >>> include/trace/events/irq.h:48: undefined reference to  
> >>> `__tracepoint_softirq_exit'
> >>> include/trace/events/irq.h:48: undefined reference to  
> >>> `__tracepoint_softirq_exit'
> >>>       
> >> Hm, that's weird - s390 does not build kernel/softirq.o? Hm, it does 
> >> - softirq.o is an obj-y object.
> >
> > s390 does build kernel/softirq.o. However it's anything but obvious to
> > me how the tracepoint infrastructure works. Too many #ifdefs, #define's
> > and #undefine's...
> >
> > I would expect that struct __tracepoint_softirq_entry somehow gets
> > defined via one of the TRACE_FORMAT macros, no?
> Today's next tree also has this failure. Any solution for this problem ?

Ingo, could you pick up the patch below please?

Subject: [PATCH] tracing: fix compile error

From: Heiko Carstens <[email-masked]>

"tracing: create automated trace defines" causes this compile error on s390:

kernel/built-in.o: In function `__do_softirq':
(.text+0x1c680): undefined reference to `__tracepoint_softirq_entry'

This happens because the definitions of the softirq tracepoints were moved
from kernel/softirq.c to kernel/irq/handle.c. Since s390 doesn't support
generic hardirqs handle.c doesn't get compiled and the definitions are
missing.
So move the tracepoints to softirq.c again.

Reported-by: Sachin Sant <[email-masked]>
Cc: Steven Rostedt <[email-masked]>
Signed-off-by: Heiko Carstens <[email-masked]>
---
 kernel/irq/handle.c |    2 --
 kernel/softirq.c    |    2 ++
 2 files changed, 2 insertions(+), 2 deletions(-)

Index: linux-next/kernel/irq/handle.c
===================================================================
--- linux-next.orig/kernel/irq/handle.c
+++ linux-next/kernel/irq/handle.c
@@ -18,8 +18,6 @@
 #include <linux/rculist.h>
 #include <linux/hash.h>
 #include <linux/bootmem.h>
-
-#define CREATE_TRACE_POINTS
 #include <trace/events/irq.h>
 
 #include "internals.h"
Index: linux-next/kernel/softirq.c
===================================================================
--- linux-next.orig/kernel/softirq.c
+++ linux-next/kernel/softirq.c
@@ -24,6 +24,8 @@
 #include <linux/ftrace.h>
 #include <linux/smp.h>
 #include <linux/tick.h>
+
+#define CREATE_TRACE_POINTS
 #include <trace/events/irq.h>
 
 #include <asm/irq.h>