Subject: Re: 4.9.0-rc8 - rcutorture test failure

From: "Paul E. McKenney" <[email-masked]>
Date: Fri, 9 Dec 2016 05:46:16 -0800

On Fri, Dec 09, 2016 at 04:27:42PM +0530, Sachin Sant wrote:
> > But I am not seeing this as a failure.  The last status print from the
> > log you attached is as follows:
> > 
> > 07:58:25 [ 2778.876118] rcu-torture: rtc:           (null) ver: 24968 tfle: 0 rta: 24968 rtaf: 0 rtf: 24959 rtmbe: 0 rtbe: 0 rtbke: 0 rtbre: 0 rtbf: 0 rtb: 0 nt: 10218404 onoff: 0/0:0/0 -1,0:-1,0 0:0 (HZ=250) barrier: 0/0:0 cbflood: 22703
> > 07:58:25 [ 2778.876251] rcu-torture: Reader Pipe:  161849976604 399197 0 0 0 0 0 0 0 0 0
> > 07:58:25 [ 2778.876438] rcu-torture: Reader Batch:  145090807711 16759538163 0 0 0 0 0 0 0 0 0
> > 07:58:25 [ 2778.876625] rcu-torture: Free-Block Circulation:  24967 24967 24966 24965 24964 24963 24962 24961 24960 24959 0
> > 07:58:25 [ 2778.876829] rcu-torture:--- End of test: SUCCESS: nreaders=79 nfakewriters=4 stat_interval=60 verbose=1 test_no_idle_hz=1 shuffle_interval=3 stutter=5 irqreader=1 fqs_duration=0 fqs_holdoff=0 fqs_stutter=3 test_boost=1/0 test_boost_interval=7 test_boost_duration=4 shutdown_secs=0 stall_cpu=0 stall_cpu_holdoff=10 n_barrier_cbs=0 onoff_interval=0 onoff_holdoff=0
> > 
> > The "SUCCESS" indicates that rcutorture thought that it succeeded.
> > Also, in the "Reader Pipe" and "Reader Batch" lines, only the first two
> > numbers in the series at the end of each line are non-zero, which also
> > indicates a non-broken RCU.
> > 
> > So could you please let me know what your scripting didn't like about
> > this log?
> > 
> 
> The test case has following piece of code which prints the failure
> message during result analysis.
> 
> Checks for known bugs
> """
> utils.system('dmesg -c  > /dev/null')
> pipe1 = [r for r in self.results if "!!! Reader Pipe:" in r]
> if len(pipe1) != 0:
>      raise error.TestError('\nBUG: grace-period failure !’)
>      sys.exit(0)
> 
> pipe2 = [r for r in self.results if "Reader Pipe" in r]
> for p in pipe2:
>       nmiss = p.split(" ")[7]
>       if int(nmiss):
>           raise error.TestError('\nBUG: rcutorture tests failed !')
>           sys.exit(0)
> 
> I will double check on this.

I suggest using this script in the Linux kernel source as a guide:

	tools/testing/selftests/rcutorture/bin/parse-console.sh

							Thanx, Paul