2009-12-10 01:07:00

by Mike Frysinger

[permalink] [raw]
Subject: [PATCH] sched: mark sched_clock() as notrace

The core ftrace code (trace_clock_local) calls sched_clock() directly, so
we don't want to recurisvely trigger the ftrace code. Rather than update
every sched_clock() definition, tag the prototype for everyone as notrace.

Signed-off-by: Mike Frysinger <[email protected]>
---
include/linux/sched.h | 3 ++-
1 files changed, 2 insertions(+), 1 deletions(-)

diff --git a/include/linux/sched.h b/include/linux/sched.h
index 89115ec..3f4fa73 100644
--- a/include/linux/sched.h
+++ b/include/linux/sched.h
@@ -1840,7 +1840,8 @@ static inline int set_cpus_allowed(struct task_struct *p, cpumask_t new_mask)
extern int sched_clock_stable;
#endif

-extern unsigned long long sched_clock(void);
+/* ftrace calls sched_clock() directly */
+extern unsigned long long notrace sched_clock(void);

extern void sched_clock_init(void);
extern u64 sched_clock_cpu(int cpu);
--
1.6.5.5


2009-12-10 07:52:55

by Mike Frysinger

[permalink] [raw]
Subject: [tip:perf/urgent] sched: Mark sched_clock() as notrace

Commit-ID: 1bbfa6f25673019dc0acc9308b667c96f6cda8bf
Gitweb: http://git.kernel.org/tip/1bbfa6f25673019dc0acc9308b667c96f6cda8bf
Author: Mike Frysinger <[email protected]>
AuthorDate: Wed, 9 Dec 2009 20:07:03 -0500
Committer: Ingo Molnar <[email protected]>
CommitDate: Thu, 10 Dec 2009 08:30:27 +0100

sched: Mark sched_clock() as notrace

The core ftrace code (trace_clock_local) calls sched_clock()
directly, so we don't want to recurisvely trigger the ftrace
code. Rather than update every sched_clock() definition, tag
the prototype for everyone as notrace.

Signed-off-by: Mike Frysinger <[email protected]>
Cc: Peter Zijlstra <[email protected]>
LKML-Reference: <[email protected]>
Signed-off-by: Ingo Molnar <[email protected]>
---
include/linux/sched.h | 3 ++-
1 files changed, 2 insertions(+), 1 deletions(-)

diff --git a/include/linux/sched.h b/include/linux/sched.h
index 75e6e60..576d838 100644
--- a/include/linux/sched.h
+++ b/include/linux/sched.h
@@ -1836,7 +1836,8 @@ static inline int set_cpus_allowed(struct task_struct *p, cpumask_t new_mask)
extern int sched_clock_stable;
#endif

-extern unsigned long long sched_clock(void);
+/* ftrace calls sched_clock() directly */
+extern unsigned long long notrace sched_clock(void);

extern void sched_clock_init(void);
extern u64 sched_clock_cpu(int cpu);