148a21d5cSPaul BolleThis document gives a brief rationale for the TREE_RCU-related test 228f6569aSPranith Kumarcases, a group that includes PREEMPT_RCU. 348a21d5cSPaul Bolle 448a21d5cSPaul Bolle 548a21d5cSPaul BolleKconfig Parameters: 648a21d5cSPaul Bolle 748a21d5cSPaul BolleCONFIG_DEBUG_LOCK_ALLOC -- Do three, covering CONFIG_PROVE_LOCKING & not. 848a21d5cSPaul BolleCONFIG_DEBUG_OBJECTS_RCU_HEAD -- Do one. 948a21d5cSPaul BolleCONFIG_HZ_PERIODIC -- Do one. 1048a21d5cSPaul BolleCONFIG_NO_HZ_IDLE -- Do those not otherwise specified. (Groups of two.) 11fe5ac724SPaul E. McKenneyCONFIG_NO_HZ_FULL -- Do two, one with partial CPU enablement. 1248a21d5cSPaul BolleCONFIG_PREEMPT -- Do half. (First three and #8.) 13ccd60ad3SPaul E. McKenneyCONFIG_PROVE_LOCKING -- Do several, covering CONFIG_DEBUG_LOCK_ALLOC=y and not. 14ccd60ad3SPaul E. McKenneyCONFIG_PROVE_RCU -- Hardwired to CONFIG_PROVE_LOCKING. 1528f6569aSPranith KumarCONFIG_RCU_BOOST -- one of PREEMPT_RCU. 16ccd60ad3SPaul E. McKenneyCONFIG_RCU_FANOUT -- Cover hierarchy, but overlap with others. 1748a21d5cSPaul BolleCONFIG_RCU_FANOUT_LEAF -- Do one non-default. 1844c65ff2SPaul E. McKenneyCONFIG_RCU_NOCB_CPU -- Do three, one with no rcu_nocbs CPUs, one with 1944c65ff2SPaul E. McKenney rcu_nocbs=0, and one with all rcu_nocbs CPUs. 2048a21d5cSPaul BolleCONFIG_RCU_TRACE -- Do half. 2128f6569aSPranith KumarCONFIG_SMP -- Need one !SMP for PREEMPT_RCU. 22b1c14a39SPaul E. McKenneyCONFIG_RCU_EXPERT=n -- Do a few, but these have to be vanilla configurations. 23b1c14a39SPaul E. McKenneyCONFIG_RCU_EQS_DEBUG -- Do at least one for CONFIG_NO_HZ_FULL and not. 24b1c14a39SPaul E. McKenney 2548a21d5cSPaul BolleRCU-bh: Do one with PREEMPT and one with !PREEMPT. 2648a21d5cSPaul BolleRCU-sched: Do one with PREEMPT but not BOOST. 2748a21d5cSPaul Bolle 2848a21d5cSPaul Bolle 29ccd60ad3SPaul E. McKenneyBoot parameters: 3048a21d5cSPaul Bolle 31ccd60ad3SPaul E. McKenneynohz_full - do at least one. 32ccd60ad3SPaul E. McKenneymaxcpu -- do at least one. 33ccd60ad3SPaul E. McKenneyrcupdate.rcu_self_test_bh -- Do at least one each, offloaded and not. 34ccd60ad3SPaul E. McKenneyrcupdate.rcu_self_test_sched -- Do at least one each, offloaded and not. 35ccd60ad3SPaul E. McKenneyrcupdate.rcu_self_test -- Do at least one each, offloaded and not. 36ccd60ad3SPaul E. McKenneyrcutree.rcu_fanout_exact -- Do at least one. 3748a21d5cSPaul Bolle 3848a21d5cSPaul Bolle 3948a21d5cSPaul BolleKconfig Parameters Ignored: 4048a21d5cSPaul Bolle 4148a21d5cSPaul BolleCONFIG_64BIT 4248a21d5cSPaul Bolle 4348a21d5cSPaul Bolle Used only to check CONFIG_RCU_FANOUT value, inspection suffices. 4448a21d5cSPaul Bolle 4548a21d5cSPaul BolleCONFIG_PREEMPT_COUNT 4648a21d5cSPaul BolleCONFIG_PREEMPT_RCU 4748a21d5cSPaul Bolle 4848a21d5cSPaul Bolle Redundant with CONFIG_PREEMPT, ignore. 4948a21d5cSPaul Bolle 5048a21d5cSPaul BolleCONFIG_RCU_BOOST_DELAY 5148a21d5cSPaul Bolle 5248a21d5cSPaul Bolle Inspection suffices, ignore. 5348a21d5cSPaul Bolle 5448a21d5cSPaul BolleCONFIG_RCU_CPU_STALL_TIMEOUT 5548a21d5cSPaul Bolle 5648a21d5cSPaul Bolle Inspection suffices, ignore. 5748a21d5cSPaul Bolle 5848a21d5cSPaul BolleCONFIG_RCU_STALL_COMMON 5948a21d5cSPaul Bolle 6028f6569aSPranith Kumar Implied by TREE_RCU and PREEMPT_RCU. 6148a21d5cSPaul Bolle 6248a21d5cSPaul BolleCONFIG_RCU_TORTURE_TEST 6348a21d5cSPaul BolleCONFIG_RCU_TORTURE_TEST_RUNNABLE 6448a21d5cSPaul Bolle 6548a21d5cSPaul Bolle Always used in KVM testing. 6648a21d5cSPaul Bolle 6728f6569aSPranith KumarCONFIG_PREEMPT_RCU 6848a21d5cSPaul BolleCONFIG_TREE_RCU 69b1c14a39SPaul E. McKenneyCONFIG_TINY_RCU 70*7e42776dSPaul E. McKenneyCONFIG_TASKS_RCU 7148a21d5cSPaul Bolle 72b1c14a39SPaul E. McKenney These are controlled by CONFIG_PREEMPT and/or CONFIG_SMP. 73b1c14a39SPaul E. McKenney 74b1c14a39SPaul E. McKenney 75b1c14a39SPaul E. McKenneyboot parameters ignored: TBD 76