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

From: Randy Dunlap <[email-masked]>
Date: Mon, 14 Jan 2013 10:49:05 -0800

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" <[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?

Yes, it helps, but there is still the same problem in
rcu_torture_reader() -- after that it builds OK.

Thanks.

> 							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() ||
> 
> --

-- 
~Randy