Format of rcutorture Summary

So what is the meaning of all those numbers in the summary?

Here is a recap of that summary:

 --- Mon Jun 15 10:23:02 PDT 2020 Test summary:
Results directory: /home/git/linux/tools/testing/selftests/rcutorture/res/2020.06.15-10.23.02
tools/testing/selftests/rcutorture/bin/kvm.sh --cpus 12 --duration 5 --trust-make
RUDE01 ------- 2102 GPs (7.00667/s) [tasks-rude: g0 f0x0 ]
SRCU-N ------- 42229 GPs (140.763/s) [srcu: g549860 f0x0 ]
SRCU-P ------- 11887 GPs (39.6233/s) [srcud: g110444 f0x0 ]
SRCU-t ------- 59641 GPs (198.803/s) [srcu: g1 f0x0 ]
SRCU-u ------- 59209 GPs (197.363/s) [srcud: g1 f0x0 ]
TASKS01 ------- 1029 GPs (3.43/s) [tasks: g0 f0x0 ]
TASKS02 ------- 1043 GPs (3.47667/s) [tasks: g0 f0x0 ]
TASKS03 ------- 1019 GPs (3.39667/s) [tasks: g0 f0x0 ]
TINY01 ------- 43373 GPs (144.577/s) [rcu: g0 f0x0 ] n_max_cbs: 34463
TINY02 ------- 46519 GPs (155.063/s) [rcu: g0 f0x0 ] n_max_cbs: 2197
TRACE01 ------- 756 GPs (2.52/s) [tasks-tracing: g0 f0x0 ]
TRACE02 ------- 559 GPs (1.86333/s) [tasks-tracing: g0 f0x0 ]
TREE01 ------- 8930 GPs (29.7667/s) [rcu: g64765 f0x0 ]
TREE02 ------- 17514 GPs (58.38/s) [rcu: g138645 f0x0 ] n_max_cbs: 18010
TREE03 ------- 15920 GPs (53.0667/s) [rcu: g159973 f0x0 ] n_max_cbs: 1025308
CPU count limited from 16 to 12
TREE04 ------- 10821 GPs (36.07/s) [rcu: g70293 f0x0 ] n_max_cbs: 81293
TREE05 ------- 16942 GPs (56.4733/s) [rcu: g123745 f0x0 ] n_max_cbs: 99796
TREE07 ------- 8248 GPs (27.4933/s) [rcu: g52933 f0x0 ] n_max_cbs: 183589
CPU count limited from 16 to 12
TREE09 ------- 39903 GPs (133.01/s) [rcu: g717745 f0x0 ] n_max_cbs: 83002

The first line is the date that the test started, in this case at 10:23AM Pacific Daylight time on June 15, 2020. The second line (beginning with Results directory) is where build products and console output are placed, with one subdirectory per scenario. For example, the RUDE01 scenario's console output will be located at /home/git/linux/tools/testing/selftests/rcutorture/res/2020.06.15-10.23.02/RUDE01/console.log

The third line (beginning with tools) lists the name of the script and its arguments, which can be quite handy on those days of imperfect memory. In this case, it is calling out the fact that 12 CPUs were to be used for the test, that the test was to run for five minutes, and that rcutorture should trust make. Without the --trust-make argument, rcutorture will proceed in its default paranoid manner, deleting any unnecessary files, including any tags or cscope files you might have wanted to preserve for later use.

The two lines reading CPU count limited from 16 to 12 are just rcutorture complaining about my laptop's inadequacy for the TREE03 and TREE07 scenarios. Had rcutorture had any other complaints about a given test, those would be listed after the offending scenario. Potential rcutorture complaints include console splats, too-short RCU grace periods, silent hangs, build failures, and much else besides.

Each of the remaining lines summarize one scenario's test results. Focusing on the TREE09 scenario:

With that, you have been introduced to the deep and dark mysteries of the rcutorture summary line!