FYI, critical bug in rcutorture
From: Paul E. McKenney
Date: Mon Aug 06 2018 - 13:39:36 EST
Hello, David,
So I have updated rcutorture to include need_resched()-protected calls to
cond_resched() in a tight loop that includes an RCU read-side critical
section on each pass. This loop runs for five seconds by default and
complains bitterly if grace periods did not complete during that time.
But my over-the-weekend rcutorture run completed 30 hours on each of 16
RCU scenario without any errors whatsoever, not even forward-progress
failures (see below). Since I know that there have to be bugs somewhere
in RCU, this result represents a critical bug against rcutorture.
Fortunately, I do have a list of things to improve rcutorture. ;-)
Thanx, Paul
------------------------------------------------------------------------
--- Fri Aug 3 15:53:08 PDT 2018 Test summary:
Results directory: /home/paulmck/public_git/linux-rcu/tools/testing/selftests/rcutorture/res/2018.08.03-15:53:08
tools/testing/selftests/rcutorture/bin/kvm.sh --cpus 43 --duration 1800
SRCU-N ------- 15203951 GPs (140.777/s) [srcu: g195826884 f0x0 ]
SRCU-P ------- 7528468 GPs (69.708/s) [srcud: g87633528 f0x0 ]
SRCU-t ------- 21870375 GPs (202.503/s) [srcu: g1 f0x0 ]
SRCU-u ------- 21374470 GPs (197.912/s) [srcud: g1 f0x0 ]
TASKS01 ------- 395438 GPs (3.66146/s) [tasks: g0 f0x0 ]
TASKS02 ------- 412989 GPs (3.82397/s) [tasks: g0 f0x0 ]
TASKS03 ------- 421585 GPs (3.90356/s) [tasks: g0 f0x0 ]
TINY01 ------- 12811682 GPs (118.627/s) [rcu: g0 f0x0 ]
TINY02 ------- 11254299 GPs (104.206/s) [rcu: g0 f0x0 ]
TREE01 ------- 2090954 GPs (19.3607/s) [rcu: g38972161 f0x0 ]
TREE02 ------- 3073826 GPs (28.4614/s) [rcu: g64778613 f0x0 ]
TREE03 ------- 3511639 GPs (32.5152/s) [rcu: g64357389 f0x2 ]
TREE04 ------- 1106148 GPs (10.2421/s) [rcu: g44600225 f0x0 ]
TREE05 ------- 3999197 GPs (37.0296/s) [rcu: g65814873 f0x0 ]
TREE07 ------- 624753 GPs (5.78475/s) [rcu: g44894817 f0x0 ]
TREE09 ------- 9566891 GPs (88.5823/s) [rcu: g420697921 f0x0 ]