On Mon, Jan 14, 2013 at 10:49:05AM -0800, Randy Dunlap wrote: > On 01/14/13 09:32, Paul E. McKenney wrote: > > On Mon, Jan 14, 2013 at 08:45:06AM -0800, Randy Dunlap wrote: > >> On 01/07/13 19:53, Paul E. McKenney wrote: > >>> On Mon, Jan 07, 2013 at 07:36:19PM -0500, Steven Rostedt wrote: > >>>> On Mon, 2013-01-07 at 18:12 -0500, Steven Rostedt wrote: > >>>>> On Tue, 2013-01-08 at 09:59 +1100, Stephen Rothwell wrote: > >>>>>> Hi Paul, > >>>>>> > >>>>>> On Mon, 7 Jan 2013 14:16:27 -0800 "Paul E. McKenney" <paulmck@xxxxxxxxxxxxxxxxxx> wrote: > >>>>>>> > >>>>>>> On Mon, Jan 07, 2013 at 11:42:36AM -0800, Randy Dunlap wrote: > >>>>>>>> > >>>>>>>> on i386 or x86_64: > >>>>>>>> > >>>>>>>> ERROR: "trace_clock_local" [kernel/rcutorture.ko] undefined! > >>>>>>> > >>>>>>> Hello, Randy, > >>>>>>> > >>>>>>> Did your build include the following, also pushed to -next in that same > >>>>>>> batch from -rcu? Including Steven Rostedt on CC for his take. > >>>>>> > >>>>>> That commit was certainly in next-20130107. > >>>>> > >>>>> Could be bad config dependencies. > >>>> > >>>> Paul, > >>>> > >>>> You need to also select TRACE_CLOCK if you are going to use it. > >>> > >>> Thank you, Steve! > >>> > >>> Randy, does the following patch help? > >>> > >>> Thanx, Paul > >> > >> Hi Paul, > >> > >> This patch fixed the Jan. 7 linux-next build errors, but there is > >> still some similar problem with current linux-next (0114 and late > >> last week as well). > >> > >> ERROR: "trace_clock_local" [kernel/rcutorture.ko] undefined! > > > > Ah, my bad... > > > > Does the following (rough and untested) patch help? > > Yes, it helps, but there is still the same problem in > rcu_torture_reader() -- after that it builds OK. One of those days, I guess... Thank you for fixing it up. Please see below for a more civilized fix. Thanx, Paul ------------------------------------------------------------------------ diff --git a/kernel/rcu.h b/kernel/rcu.h index 7f8e759..b5d30c3 100644 --- a/kernel/rcu.h +++ b/kernel/rcu.h @@ -24,6 +24,7 @@ #define __LINUX_RCU_H #ifdef CONFIG_RCU_TRACE +#include <linux/trace_clock.h> #define RCU_TRACE(stmt) stmt #else /* #ifdef CONFIG_RCU_TRACE */ #define RCU_TRACE(stmt) @@ -118,4 +119,13 @@ int rcu_jiffies_till_stall_check(void); #endif /* #ifdef CONFIG_RCU_STALL_COMMON */ +static inline u64 notrace rcu_trace_clock_local(void) +{ +#ifdef CONFIG_RCU_TRACE + return trace_clock_local(); +#else /* #ifdef CONFIG_RCU_TRACE */ + return 0; +#endif /* #else #ifdef CONFIG_RCU_TRACE */ +} + #endif /* __LINUX_RCU_H */ diff --git a/kernel/rcutorture.c b/kernel/rcutorture.c index cd4c35d..f28f501 100644 --- a/kernel/rcutorture.c +++ b/kernel/rcutorture.c @@ -46,8 +46,9 @@ #include <linux/stat.h> #include <linux/srcu.h> #include <linux/slab.h> -#include <linux/trace_clock.h> #include <asm/byteorder.h> +#include <trace/events/rcu.h> +#include "rcu.h" MODULE_LICENSE("GPL"); MODULE_AUTHOR("Paul E. McKenney <paulmck@xxxxxxxxxx> and Josh Triplett <josh@xxxxxxxxxxxxxxx>"); @@ -1051,7 +1052,7 @@ static void rcu_torture_timer(unsigned long unused) idx = cur_ops->readlock(); completed = cur_ops->completed(); - ts = trace_clock_local(); + ts = rcu_trace_clock_local(); p = rcu_dereference_check(rcu_torture_current, rcu_read_lock_bh_held() || rcu_read_lock_sched_held() || @@ -1122,7 +1123,7 @@ rcu_torture_reader(void *arg) } idx = cur_ops->readlock(); completed = cur_ops->completed(); - ts = trace_clock_local(); + ts = rcu_trace_clock_local(); p = rcu_dereference_check(rcu_torture_current, rcu_read_lock_bh_held() || rcu_read_lock_sched_held() || -- To unsubscribe from this list: send the line "unsubscribe linux-next" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html