Subject: Re: linux-next: Tree for Jan 7 (rcutorture)

From: "Paul E. McKenney" <[email-masked]>
Date: Mon, 14 Jan 2013 09:32:08 -0800

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" <[email-masked]> 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?

							Thanx, Paul

------------------------------------------------------------------------

diff --git a/kernel/rcutorture.c b/kernel/rcutorture.c
index cd4c35d..36f0106 100644
--- a/kernel/rcutorture.c
+++ b/kernel/rcutorture.c
@@ -1047,11 +1047,13 @@ static void rcu_torture_timer(unsigned long unused)
 	static DEFINE_SPINLOCK(rand_lock);
 	struct rcu_torture *p;
 	int pipe_count;
-	unsigned long long ts;
+	unsigned long long ts = 0;
 
 	idx = cur_ops->readlock();
 	completed = cur_ops->completed();
+#ifdef CONFIG_RCU_TRACE
 	ts = trace_clock_local();
+#endif /* #ifdef CONFIG_RCU_TRACE */
 	p = rcu_dereference_check(rcu_torture_current,
 				  rcu_read_lock_bh_held() ||
 				  rcu_read_lock_sched_held() ||