]>
Commit | Line | Data |
---|---|---|
27ac1ddf PM |
1 | This document gives a brief rationale for the TREE_RCU-related test |
2 | cases, a group that includes TREE_PREEMPT_RCU. | |
3 | ||
4 | ||
5 | Kconfig Parameters: | |
6 | ||
7 | CONFIG_DEBUG_LOCK_ALLOC -- Do three, covering CONFIG_PROVE_LOCKING & not. | |
8 | CONFIG_DEBUG_OBJECTS_RCU_HEAD -- Do one. | |
9 | CONFIG_HOTPLUG_CPU -- Do half. (Every second.) | |
10 | CONFIG_HZ_PERIODIC -- Do one. | |
11 | CONFIG_NO_HZ_IDLE -- Do those not otherwise specified. (Groups of two.) | |
12 | CONFIG_NO_HZ_FULL -- Do two, one with CONFIG_NO_HZ_FULL_SYSIDLE. | |
13 | CONFIG_NO_HZ_FULL_SYSIDLE -- Do one. | |
14 | CONFIG_PREEMPT -- Do half. (First three and #8.) | |
15 | CONFIG_PROVE_LOCKING -- Do all but two, covering CONFIG_PROVE_RCU and not. | |
16 | CONFIG_PROVE_RCU -- Do all but one under CONFIG_PROVE_LOCKING. | |
27ac1ddf | 17 | CONFIG_RCU_BOOST -- one of TREE_PREEMPT_RCU. |
21871d7e CW |
18 | CONFIG_RCU_KTHREAD_PRIO -- set to 2 for _BOOST testing. |
19 | CONFIG_RCU_CPU_STALL_INFO -- Do one. | |
27ac1ddf PM |
20 | CONFIG_RCU_CPU_STALL_VERBOSE -- do one with and without _INFO. |
21 | CONFIG_RCU_FANOUT -- Cover hierarchy as currently, but overlap with others. | |
22 | CONFIG_RCU_FANOUT_EXACT -- Do one. | |
23 | CONFIG_RCU_FANOUT_LEAF -- Do one non-default. | |
24 | CONFIG_RCU_FAST_NO_HZ -- Do one, but not with CONFIG_RCU_NOCB_CPU_ALL. | |
25 | CONFIG_RCU_NOCB_CPU -- Do three, see below. | |
26 | CONFIG_RCU_NOCB_CPU_ALL -- Do one. | |
27 | CONFIG_RCU_NOCB_CPU_NONE -- Do one. | |
28 | CONFIG_RCU_NOCB_CPU_ZERO -- Do one. | |
29 | CONFIG_RCU_TRACE -- Do half. | |
30 | CONFIG_SMP -- Need one !SMP for TREE_PREEMPT_RCU. | |
31 | RCU-bh: Do one with PREEMPT and one with !PREEMPT. | |
32 | RCU-sched: Do one with PREEMPT but not BOOST. | |
33 | ||
34 | ||
35 | Hierarchy: | |
36 | ||
37 | TREE01. CONFIG_NR_CPUS=8, CONFIG_RCU_FANOUT=8, CONFIG_RCU_FANOUT_EXACT=n. | |
38 | TREE02. CONFIG_NR_CPUS=8, CONFIG_RCU_FANOUT=3, CONFIG_RCU_FANOUT_EXACT=n, | |
39 | CONFIG_RCU_FANOUT_LEAF=3. | |
40 | TREE03. CONFIG_NR_CPUS=8, CONFIG_RCU_FANOUT=4, CONFIG_RCU_FANOUT_EXACT=n, | |
41 | CONFIG_RCU_FANOUT_LEAF=4. | |
42 | TREE04. CONFIG_NR_CPUS=8, CONFIG_RCU_FANOUT=2, CONFIG_RCU_FANOUT_EXACT=n, | |
43 | CONFIG_RCU_FANOUT_LEAF=2. | |
44 | TREE05. CONFIG_NR_CPUS=8, CONFIG_RCU_FANOUT=6, CONFIG_RCU_FANOUT_EXACT=n | |
45 | CONFIG_RCU_FANOUT_LEAF=6. | |
46 | TREE06. CONFIG_NR_CPUS=8, CONFIG_RCU_FANOUT=6, CONFIG_RCU_FANOUT_EXACT=y | |
47 | CONFIG_RCU_FANOUT_LEAF=6. | |
48 | TREE07. CONFIG_NR_CPUS=16, CONFIG_RCU_FANOUT=2, CONFIG_RCU_FANOUT_EXACT=n, | |
49 | CONFIG_RCU_FANOUT_LEAF=2. | |
50 | TREE08. CONFIG_NR_CPUS=16, CONFIG_RCU_FANOUT=3, CONFIG_RCU_FANOUT_EXACT=y, | |
51 | CONFIG_RCU_FANOUT_LEAF=2. | |
52 | TREE09. CONFIG_NR_CPUS=1. | |
53 | ||
54 | ||
55 | Kconfig Parameters Ignored: | |
56 | ||
57 | CONFIG_64BIT | |
58 | ||
59 | Used only to check CONFIG_RCU_FANOUT value, inspection suffices. | |
60 | ||
61 | CONFIG_NO_HZ_FULL_SYSIDLE_SMALL | |
62 | ||
63 | Defer until Frederic uses this. | |
64 | ||
65 | CONFIG_PREEMPT_COUNT | |
66 | CONFIG_PREEMPT_RCU | |
67 | ||
68 | Redundant with CONFIG_PREEMPT, ignore. | |
69 | ||
70 | CONFIG_RCU_BOOST_DELAY | |
71 | ||
72 | Inspection suffices, ignore. | |
73 | ||
74 | CONFIG_RCU_CPU_STALL_TIMEOUT | |
75 | ||
76 | Inspection suffices, ignore. | |
77 | ||
78 | CONFIG_RCU_STALL_COMMON | |
79 | ||
80 | Implied by TREE_RCU and TREE_PREEMPT_RCU. | |
81 | ||
82 | CONFIG_RCU_TORTURE_TEST | |
83 | CONFIG_RCU_TORTURE_TEST_RUNNABLE | |
84 | ||
85 | Always used in KVM testing. | |
86 | ||
87 | CONFIG_RCU_USER_QS | |
88 | ||
89 | Redundant with CONFIG_NO_HZ_FULL. | |
90 | ||
91 | CONFIG_TREE_PREEMPT_RCU | |
92 | CONFIG_TREE_RCU | |
93 | ||
94 | These are controlled by CONFIG_PREEMPT. |