Re: next-20081106: today's ftrace episode

From: Steven Rostedt
Date: Thu Nov 06 2008 - 15:28:54 EST


Alexey Dobriyan wrote:

basically all that would be needed in that file is this:

#ifdef CONFIG_DYNAMIC_FTRACE
extern void ftrace_nmi_enter(void);
extern void ftrace_nmi_exit(void);
#else
static inline void ftrace_nmi_enter(void) { }
static inline void ftrace_nmi_exit(void) { }
#endif /* CONFIG_DYNAMIC_FTRACE */

Oh, this is only for that.

Here is patch that allows m68k to compile, I've came up with.

That is quite a bit of change. I'm nervous about that because it might break some different combinations of configs.

I'll write up a patch that does what I propose. It has a much smaller impact.

-- Steve


--- a/include/linux/ftrace.h
+++ b/include/linux/ftrace.h
@@ -1,14 +1,12 @@
#ifndef _LINUX_FTRACE_H
#define _LINUX_FTRACE_H
+#include <linux/kallsyms.h>
+#ifdef CONFIG_FUNCTION_TRACER
#include <linux/linkage.h>
-#include <linux/fs.h>
#include <linux/ktime.h>
#include <linux/init.h>
#include <linux/types.h>
-#include <linux/kallsyms.h>
-
-#ifdef CONFIG_FUNCTION_TRACER
extern int ftrace_enabled;
extern int
@@ -236,7 +234,7 @@ static inline void
ftrace_init_module(unsigned long *start, unsigned long *end) { }
#endif
-
+#ifdef CONFIG_BOOT_TRACER
struct boot_trace {
pid_t caller;
char func[KSYM_NAME_LEN];
@@ -246,12 +244,10 @@ struct boot_trace {
ktime_t rettime;
};
-#ifdef CONFIG_BOOT_TRACER
extern void trace_boot(struct boot_trace *it, initcall_t fn);
extern void start_boot_trace(void);
extern void stop_boot_trace(void);
#else
-static inline void trace_boot(struct boot_trace *it, initcall_t fn) { }
static inline void start_boot_trace(void) { }
static inline void stop_boot_trace(void) { }
#endif
--- a/init/main.c
+++ b/init/main.c
@@ -728,6 +728,7 @@ core_param(initcall_debug, initcall_debug, bool, 0644);
int do_one_initcall(initcall_t fn)
{
+#ifdef CONFIG_BOOT_TRACER
int count = preempt_count();
ktime_t delta;
char msgbuf[64];
@@ -768,6 +769,9 @@ int do_one_initcall(initcall_t fn)
}
return it.result;
+#else
+ return fn();
+#endif
}

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/