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 ]