Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

rcu: Remove redundant TREE_PREEMPT_RCU config option

PREEMPT_RCU and TREE_PREEMPT_RCU serve the same function after
TINY_PREEMPT_RCU has been removed. This patch removes TREE_PREEMPT_RCU
and uses PREEMPT_RCU config option in its place.

Signed-off-by: Pranith Kumar <bobby.prani@gmail.com>
Signed-off-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com>

authored by

Pranith Kumar and committed by
Paul E. McKenney
28f6569a 21871d7e

+74 -80
+2 -2
Documentation/RCU/rcu.txt
··· 36 36 executed in user mode, or executed in the idle loop, we can 37 37 safely free up that item. 38 38 39 - Preemptible variants of RCU (CONFIG_TREE_PREEMPT_RCU) get the 39 + Preemptible variants of RCU (CONFIG_PREEMPT_RCU) get the 40 40 same effect, but require that the readers manipulate CPU-local 41 41 counters. These counters allow limited types of blocking within 42 42 RCU read-side critical sections. SRCU also uses CPU-local ··· 81 81 o I hear that RCU needs work in order to support realtime kernels? 82 82 83 83 This work is largely completed. Realtime-friendly RCU can be 84 - enabled via the CONFIG_TREE_PREEMPT_RCU kernel configuration 84 + enabled via the CONFIG_PREEMPT_RCU kernel configuration 85 85 parameter. However, work is in progress for enabling priority 86 86 boosting of preempted RCU read-side critical sections. This is 87 87 needed if you have CPU-bound realtime threads.
+4 -4
Documentation/RCU/stallwarn.txt
··· 77 77 and that the stall was affecting RCU-sched. This message will normally be 78 78 followed by a stack dump of the offending CPU. On TREE_RCU kernel builds, 79 79 RCU and RCU-sched are implemented by the same underlying mechanism, 80 - while on TREE_PREEMPT_RCU kernel builds, RCU is instead implemented 80 + while on PREEMPT_RCU kernel builds, RCU is instead implemented 81 81 by rcu_preempt_state. 82 82 83 83 On the other hand, if the offending CPU fails to print out a stall-warning ··· 89 89 This message indicates that CPU 2 detected that CPUs 3 and 5 were both 90 90 causing stalls, and that the stall was affecting RCU-bh. This message 91 91 will normally be followed by stack dumps for each CPU. Please note that 92 - TREE_PREEMPT_RCU builds can be stalled by tasks as well as by CPUs, 92 + PREEMPT_RCU builds can be stalled by tasks as well as by CPUs, 93 93 and that the tasks will be indicated by PID, for example, "P3421". 94 94 It is even possible for a rcu_preempt_state stall to be caused by both 95 95 CPUs -and- tasks, in which case the offending CPUs and tasks will all ··· 205 205 o A CPU-bound real-time task in a CONFIG_PREEMPT_RT kernel that 206 206 is running at a higher priority than the RCU softirq threads. 207 207 This will prevent RCU callbacks from ever being invoked, 208 - and in a CONFIG_TREE_PREEMPT_RCU kernel will further prevent 208 + and in a CONFIG_PREEMPT_RCU kernel will further prevent 209 209 RCU grace periods from ever completing. Either way, the 210 210 system will eventually run out of memory and hang. In the 211 - CONFIG_TREE_PREEMPT_RCU case, you might see stall-warning 211 + CONFIG_PREEMPT_RCU case, you might see stall-warning 212 212 messages. 213 213 214 214 o A hardware or software issue shuts off the scheduler-clock
+2 -2
Documentation/RCU/trace.txt
··· 8 8 for rcutree and next for rcutiny. 9 9 10 10 11 - CONFIG_TREE_RCU and CONFIG_TREE_PREEMPT_RCU debugfs Files and Formats 11 + CONFIG_TREE_RCU and CONFIG_PREEMPT_RCU debugfs Files and Formats 12 12 13 13 These implementations of RCU provide several debugfs directories under the 14 14 top-level directory "rcu": ··· 18 18 rcu/rcu_sched 19 19 20 20 Each directory contains files for the corresponding flavor of RCU. 21 - Note that rcu/rcu_preempt is only present for CONFIG_TREE_PREEMPT_RCU. 21 + Note that rcu/rcu_preempt is only present for CONFIG_PREEMPT_RCU. 22 22 For CONFIG_TREE_RCU, the RCU flavor maps onto the RCU-sched flavor, 23 23 so that activity for both appears in rcu/rcu_sched. 24 24
+1 -1
Documentation/RCU/whatisRCU.txt
··· 137 137 Used by a reader to inform the reclaimer that the reader is 138 138 entering an RCU read-side critical section. It is illegal 139 139 to block while in an RCU read-side critical section, though 140 - kernels built with CONFIG_TREE_PREEMPT_RCU can preempt RCU 140 + kernels built with CONFIG_PREEMPT_RCU can preempt RCU 141 141 read-side critical sections. Any RCU-protected data structure 142 142 accessed during an RCU read-side critical section is guaranteed to 143 143 remain unreclaimed for the full duration of that critical section.
+1 -1
include/linux/init_task.h
··· 102 102 #define INIT_IDS 103 103 #endif 104 104 105 - #ifdef CONFIG_TREE_PREEMPT_RCU 105 + #ifdef CONFIG_PREEMPT_RCU 106 106 #define INIT_TASK_RCU_TREE_PREEMPT() \ 107 107 .rcu_blocked_node = NULL, 108 108 #else
+3 -3
include/linux/rcupdate.h
··· 57 57 INVALID_RCU_FLAVOR 58 58 }; 59 59 60 - #if defined(CONFIG_TREE_RCU) || defined(CONFIG_TREE_PREEMPT_RCU) 60 + #if defined(CONFIG_TREE_RCU) || defined(CONFIG_PREEMPT_RCU) 61 61 void rcutorture_get_gp_data(enum rcutorture_type test_type, int *flags, 62 62 unsigned long *gpnum, unsigned long *completed); 63 63 void rcutorture_record_test_transition(void); ··· 365 365 void (*func)(struct rcu_head *head)); 366 366 void wait_rcu_gp(call_rcu_func_t crf); 367 367 368 - #if defined(CONFIG_TREE_RCU) || defined(CONFIG_TREE_PREEMPT_RCU) 368 + #if defined(CONFIG_TREE_RCU) || defined(CONFIG_PREEMPT_RCU) 369 369 #include <linux/rcutree.h> 370 370 #elif defined(CONFIG_TINY_RCU) 371 371 #include <linux/rcutiny.h> ··· 852 852 * 853 853 * In non-preemptible RCU implementations (TREE_RCU and TINY_RCU), 854 854 * it is illegal to block while in an RCU read-side critical section. 855 - * In preemptible RCU implementations (TREE_PREEMPT_RCU) in CONFIG_PREEMPT 855 + * In preemptible RCU implementations (PREEMPT_RCU) in CONFIG_PREEMPT 856 856 * kernel builds, RCU read-side critical sections may be preempted, 857 857 * but explicit blocking is illegal. Finally, in preemptible RCU 858 858 * implementations in real-time (with -rt patchset) kernel builds, RCU
+2 -2
include/linux/sched.h
··· 1278 1278 union rcu_special rcu_read_unlock_special; 1279 1279 struct list_head rcu_node_entry; 1280 1280 #endif /* #ifdef CONFIG_PREEMPT_RCU */ 1281 - #ifdef CONFIG_TREE_PREEMPT_RCU 1281 + #ifdef CONFIG_PREEMPT_RCU 1282 1282 struct rcu_node *rcu_blocked_node; 1283 - #endif /* #ifdef CONFIG_TREE_PREEMPT_RCU */ 1283 + #endif /* #ifdef CONFIG_PREEMPT_RCU */ 1284 1284 #ifdef CONFIG_TASKS_RCU 1285 1285 unsigned long rcu_tasks_nvcsw; 1286 1286 bool rcu_tasks_holdout;
+2 -2
include/trace/events/rcu.h
··· 36 36 37 37 #ifdef CONFIG_RCU_TRACE 38 38 39 - #if defined(CONFIG_TREE_RCU) || defined(CONFIG_TREE_PREEMPT_RCU) 39 + #if defined(CONFIG_TREE_RCU) || defined(CONFIG_PREEMPT_RCU) 40 40 41 41 /* 42 42 * Tracepoint for grace-period events. Takes a string identifying the ··· 345 345 __entry->cpu, __entry->qsevent) 346 346 ); 347 347 348 - #endif /* #if defined(CONFIG_TREE_RCU) || defined(CONFIG_TREE_PREEMPT_RCU) */ 348 + #endif /* #if defined(CONFIG_TREE_RCU) || defined(CONFIG_PREEMPT_RCU) */ 349 349 350 350 /* 351 351 * Tracepoint for dyntick-idle entry/exit events. These take a string
+8 -14
init/Kconfig
··· 477 477 thousands of CPUs. It also scales down nicely to 478 478 smaller systems. 479 479 480 - config TREE_PREEMPT_RCU 480 + config PREEMPT_RCU 481 481 bool "Preemptible tree-based hierarchical RCU" 482 482 depends on PREEMPT 483 483 select IRQ_WORK ··· 501 501 502 502 endchoice 503 503 504 - config PREEMPT_RCU 505 - def_bool TREE_PREEMPT_RCU 506 - help 507 - This option enables preemptible-RCU code that is common between 508 - TREE_PREEMPT_RCU and, in the old days, TINY_PREEMPT_RCU. 509 - 510 504 config TASKS_RCU 511 505 bool "Task_based RCU implementation using voluntary context switch" 512 506 default n ··· 512 518 If unsure, say N. 513 519 514 520 config RCU_STALL_COMMON 515 - def_bool ( TREE_RCU || TREE_PREEMPT_RCU || RCU_TRACE ) 521 + def_bool ( TREE_RCU || PREEMPT_RCU || RCU_TRACE ) 516 522 help 517 523 This option enables RCU CPU stall code that is common between 518 524 the TINY and TREE variants of RCU. The purpose is to allow ··· 570 576 int "Tree-based hierarchical RCU fanout value" 571 577 range 2 64 if 64BIT 572 578 range 2 32 if !64BIT 573 - depends on TREE_RCU || TREE_PREEMPT_RCU 579 + depends on TREE_RCU || PREEMPT_RCU 574 580 default 64 if 64BIT 575 581 default 32 if !64BIT 576 582 help ··· 590 596 int "Tree-based hierarchical RCU leaf-level fanout value" 591 597 range 2 RCU_FANOUT if 64BIT 592 598 range 2 RCU_FANOUT if !64BIT 593 - depends on TREE_RCU || TREE_PREEMPT_RCU 599 + depends on TREE_RCU || PREEMPT_RCU 594 600 default 16 595 601 help 596 602 This option controls the leaf-level fanout of hierarchical ··· 615 621 616 622 config RCU_FANOUT_EXACT 617 623 bool "Disable tree-based hierarchical RCU auto-balancing" 618 - depends on TREE_RCU || TREE_PREEMPT_RCU 624 + depends on TREE_RCU || PREEMPT_RCU 619 625 default n 620 626 help 621 627 This option forces use of the exact RCU_FANOUT value specified, ··· 646 652 Say N if you are unsure. 647 653 648 654 config TREE_RCU_TRACE 649 - def_bool RCU_TRACE && ( TREE_RCU || TREE_PREEMPT_RCU ) 655 + def_bool RCU_TRACE && ( TREE_RCU || PREEMPT_RCU ) 650 656 select DEBUG_FS 651 657 help 652 658 This option provides tracing for the TREE_RCU and 653 - TREE_PREEMPT_RCU implementations, permitting Makefile to 659 + PREEMPT_RCU implementations, permitting Makefile to 654 660 trivially select kernel/rcutree_trace.c. 655 661 656 662 config RCU_BOOST ··· 710 716 711 717 config RCU_NOCB_CPU 712 718 bool "Offload RCU callback processing from boot-selected CPUs" 713 - depends on TREE_RCU || TREE_PREEMPT_RCU 719 + depends on TREE_RCU || PREEMPT_RCU 714 720 default n 715 721 help 716 722 Use this option to reduce OS jitter for aggressive HPC or
+1 -1
kernel/rcu/Makefile
··· 1 1 obj-y += update.o srcu.o 2 2 obj-$(CONFIG_RCU_TORTURE_TEST) += rcutorture.o 3 3 obj-$(CONFIG_TREE_RCU) += tree.o 4 - obj-$(CONFIG_TREE_PREEMPT_RCU) += tree.o 4 + obj-$(CONFIG_PREEMPT_RCU) += tree.o 5 5 obj-$(CONFIG_TREE_RCU_TRACE) += tree_trace.o 6 6 obj-$(CONFIG_TINY_RCU) += tiny.o
+5 -5
kernel/rcu/tree.h
··· 139 139 unsigned long expmask; /* Groups that have ->blkd_tasks */ 140 140 /* elements that need to drain to allow the */ 141 141 /* current expedited grace period to */ 142 - /* complete (only for TREE_PREEMPT_RCU). */ 142 + /* complete (only for PREEMPT_RCU). */ 143 143 unsigned long qsmaskinit; 144 144 /* Per-GP initial value for qsmask & expmask. */ 145 145 unsigned long grpmask; /* Mask to apply to parent qsmask. */ ··· 530 530 extern struct rcu_state rcu_bh_state; 531 531 DECLARE_PER_CPU(struct rcu_data, rcu_bh_data); 532 532 533 - #ifdef CONFIG_TREE_PREEMPT_RCU 533 + #ifdef CONFIG_PREEMPT_RCU 534 534 extern struct rcu_state rcu_preempt_state; 535 535 DECLARE_PER_CPU(struct rcu_data, rcu_preempt_data); 536 - #endif /* #ifdef CONFIG_TREE_PREEMPT_RCU */ 536 + #endif /* #ifdef CONFIG_PREEMPT_RCU */ 537 537 538 538 #ifdef CONFIG_RCU_BOOST 539 539 DECLARE_PER_CPU(unsigned int, rcu_cpu_kthread_status); ··· 563 563 #endif /* #ifdef CONFIG_HOTPLUG_CPU */ 564 564 static void rcu_preempt_check_callbacks(int cpu); 565 565 void call_rcu(struct rcu_head *head, void (*func)(struct rcu_head *rcu)); 566 - #if defined(CONFIG_HOTPLUG_CPU) || defined(CONFIG_TREE_PREEMPT_RCU) 566 + #if defined(CONFIG_HOTPLUG_CPU) || defined(CONFIG_PREEMPT_RCU) 567 567 static void rcu_report_exp_rnp(struct rcu_state *rsp, struct rcu_node *rnp, 568 568 bool wake); 569 - #endif /* #if defined(CONFIG_HOTPLUG_CPU) || defined(CONFIG_TREE_PREEMPT_RCU) */ 569 + #endif /* #if defined(CONFIG_HOTPLUG_CPU) || defined(CONFIG_PREEMPT_RCU) */ 570 570 static void __init __rcu_init_preempt(void); 571 571 static void rcu_initiate_boost(struct rcu_node *rnp, unsigned long flags); 572 572 static void rcu_preempt_boost_start_gp(struct rcu_node *rnp);
+3 -3
kernel/rcu/tree_plugin.h
··· 100 100 #endif 101 101 } 102 102 103 - #ifdef CONFIG_TREE_PREEMPT_RCU 103 + #ifdef CONFIG_PREEMPT_RCU 104 104 105 105 RCU_STATE_INITIALIZER(rcu_preempt, 'p', call_rcu); 106 106 static struct rcu_state *rcu_state_p = &rcu_preempt_state; ··· 932 932 __rcu_read_unlock(); 933 933 } 934 934 935 - #else /* #ifdef CONFIG_TREE_PREEMPT_RCU */ 935 + #else /* #ifdef CONFIG_PREEMPT_RCU */ 936 936 937 937 static struct rcu_state *rcu_state_p = &rcu_sched_state; 938 938 ··· 1083 1083 { 1084 1084 } 1085 1085 1086 - #endif /* #else #ifdef CONFIG_TREE_PREEMPT_RCU */ 1086 + #endif /* #else #ifdef CONFIG_PREEMPT_RCU */ 1087 1087 1088 1088 #ifdef CONFIG_RCU_BOOST 1089 1089
+1 -1
kernel/rcu/update.c
··· 306 306 EXPORT_SYMBOL_GPL(rcuhead_debug_descr); 307 307 #endif /* #ifdef CONFIG_DEBUG_OBJECTS_RCU_HEAD */ 308 308 309 - #if defined(CONFIG_TREE_RCU) || defined(CONFIG_TREE_PREEMPT_RCU) || defined(CONFIG_RCU_TRACE) 309 + #if defined(CONFIG_TREE_RCU) || defined(CONFIG_PREEMPT_RCU) || defined(CONFIG_RCU_TRACE) 310 310 void do_trace_rcu_torture_read(const char *rcutorturename, struct rcu_head *rhp, 311 311 unsigned long secs, 312 312 unsigned long c_old, unsigned long c)
+1 -1
lib/Kconfig.debug
··· 1252 1252 1253 1253 config RCU_CPU_STALL_INFO 1254 1254 bool "Print additional diagnostics on RCU CPU stall" 1255 - depends on (TREE_RCU || TREE_PREEMPT_RCU) && DEBUG_KERNEL 1255 + depends on (TREE_RCU || PREEMPT_RCU) && DEBUG_KERNEL 1256 1256 default n 1257 1257 help 1258 1258 For each stalled CPU that is aware of the current RCU grace
+1 -1
tools/testing/selftests/rcutorture/configs/rcu/TREE01
··· 2 2 CONFIG_PREEMPT_NONE=n 3 3 CONFIG_PREEMPT_VOLUNTARY=n 4 4 CONFIG_PREEMPT=y 5 - #CHECK#CONFIG_TREE_PREEMPT_RCU=y 5 + #CHECK#CONFIG_PREEMPT_RCU=y 6 6 CONFIG_HZ_PERIODIC=n 7 7 CONFIG_NO_HZ_IDLE=y 8 8 CONFIG_NO_HZ_FULL=n
+1 -1
tools/testing/selftests/rcutorture/configs/rcu/TREE02
··· 3 3 CONFIG_PREEMPT_NONE=n 4 4 CONFIG_PREEMPT_VOLUNTARY=n 5 5 CONFIG_PREEMPT=y 6 - #CHECK#CONFIG_TREE_PREEMPT_RCU=y 6 + #CHECK#CONFIG_PREEMPT_RCU=y 7 7 CONFIG_HZ_PERIODIC=n 8 8 CONFIG_NO_HZ_IDLE=y 9 9 CONFIG_NO_HZ_FULL=n
+1 -1
tools/testing/selftests/rcutorture/configs/rcu/TREE02-T
··· 3 3 CONFIG_PREEMPT_NONE=n 4 4 CONFIG_PREEMPT_VOLUNTARY=n 5 5 CONFIG_PREEMPT=y 6 - #CHECK#CONFIG_TREE_PREEMPT_RCU=y 6 + #CHECK#CONFIG_PREEMPT_RCU=y 7 7 CONFIG_HZ_PERIODIC=n 8 8 CONFIG_NO_HZ_IDLE=y 9 9 CONFIG_NO_HZ_FULL=n
+1 -1
tools/testing/selftests/rcutorture/configs/rcu/TREE03
··· 3 3 CONFIG_PREEMPT_NONE=n 4 4 CONFIG_PREEMPT_VOLUNTARY=n 5 5 CONFIG_PREEMPT=y 6 - #CHECK#CONFIG_TREE_PREEMPT_RCU=y 6 + #CHECK#CONFIG_PREEMPT_RCU=y 7 7 CONFIG_HZ_PERIODIC=y 8 8 CONFIG_NO_HZ_IDLE=n 9 9 CONFIG_NO_HZ_FULL=n
+1 -1
tools/testing/selftests/rcutorture/configs/rcu/TREE08
··· 3 3 CONFIG_PREEMPT_NONE=n 4 4 CONFIG_PREEMPT_VOLUNTARY=n 5 5 CONFIG_PREEMPT=y 6 - #CHECK#CONFIG_TREE_PREEMPT_RCU=y 6 + #CHECK#CONFIG_PREEMPT_RCU=y 7 7 CONFIG_HZ_PERIODIC=n 8 8 CONFIG_NO_HZ_IDLE=y 9 9 CONFIG_NO_HZ_FULL=n
+1 -1
tools/testing/selftests/rcutorture/configs/rcu/TREE08-T
··· 3 3 CONFIG_PREEMPT_NONE=n 4 4 CONFIG_PREEMPT_VOLUNTARY=n 5 5 CONFIG_PREEMPT=y 6 - #CHECK#CONFIG_TREE_PREEMPT_RCU=y 6 + #CHECK#CONFIG_PREEMPT_RCU=y 7 7 CONFIG_HZ_PERIODIC=n 8 8 CONFIG_NO_HZ_IDLE=y 9 9 CONFIG_NO_HZ_FULL=n
+1 -1
tools/testing/selftests/rcutorture/configs/rcu/TREE09
··· 3 3 CONFIG_PREEMPT_NONE=n 4 4 CONFIG_PREEMPT_VOLUNTARY=n 5 5 CONFIG_PREEMPT=y 6 - #CHECK#CONFIG_TREE_PREEMPT_RCU=y 6 + #CHECK#CONFIG_PREEMPT_RCU=y 7 7 CONFIG_HZ_PERIODIC=n 8 8 CONFIG_NO_HZ_IDLE=y 9 9 CONFIG_NO_HZ_FULL=n
+1 -1
tools/testing/selftests/rcutorture/configs/rcu/v0.0/P1-S-T-NH-SD-SMP-HP
··· 9 9 CONFIG_PREEMPT_NONE=n 10 10 CONFIG_PREEMPT_VOLUNTARY=n 11 11 CONFIG_PREEMPT=y 12 - #CHECK#CONFIG_TREE_PREEMPT_RCU=y 12 + #CHECK#CONFIG_PREEMPT_RCU=y 13 13 CONFIG_RCU_TORTURE_TEST=m 14 14 CONFIG_MODULE_UNLOAD=y 15 15 CONFIG_SYSFS_DEPRECATED_V2=y
+1 -1
tools/testing/selftests/rcutorture/configs/rcu/v0.0/P2-2-t-nh-sd-SMP-hp
··· 10 10 CONFIG_PREEMPT_NONE=n 11 11 CONFIG_PREEMPT_VOLUNTARY=n 12 12 CONFIG_PREEMPT=y 13 - #CHECK#CONFIG_TREE_PREEMPT_RCU=y 13 + #CHECK#CONFIG_PREEMPT_RCU=y 14 14 CONFIG_RCU_TORTURE_TEST=m 15 15 CONFIG_MODULE_UNLOAD=y 16 16 CONFIG_SYSFS_DEPRECATED_V2=y
+1 -1
tools/testing/selftests/rcutorture/configs/rcu/v0.0/P3-3-T-nh-SD-SMP-hp
··· 10 10 CONFIG_PREEMPT_NONE=n 11 11 CONFIG_PREEMPT_VOLUNTARY=n 12 12 CONFIG_PREEMPT=y 13 - #CHECK#CONFIG_TREE_PREEMPT_RCU=y 13 + #CHECK#CONFIG_PREEMPT_RCU=y 14 14 CONFIG_RCU_TORTURE_TEST=m 15 15 CONFIG_MODULE_UNLOAD=y 16 16 CONFIG_SYSFS_DEPRECATED_V2=y
+1 -1
tools/testing/selftests/rcutorture/configs/rcu/v0.0/P4-A-t-NH-sd-SMP-HP
··· 8 8 CONFIG_PREEMPT_NONE=n 9 9 CONFIG_PREEMPT_VOLUNTARY=n 10 10 CONFIG_PREEMPT=y 11 - #CHECK#CONFIG_TREE_PREEMPT_RCU=y 11 + #CHECK#CONFIG_PREEMPT_RCU=y 12 12 CONFIG_RCU_TORTURE_TEST=m 13 13 CONFIG_MODULE_UNLOAD=y 14 14 CONFIG_RT_MUTEXES=y
+1 -1
tools/testing/selftests/rcutorture/configs/rcu/v0.0/P5-U-T-NH-sd-SMP-hp
··· 11 11 CONFIG_PREEMPT_NONE=n 12 12 CONFIG_PREEMPT_VOLUNTARY=n 13 13 CONFIG_PREEMPT=y 14 - #CHECK#CONFIG_TREE_PREEMPT_RCU=y 14 + #CHECK#CONFIG_PREEMPT_RCU=y 15 15 CONFIG_DEBUG_KERNEL=y 16 16 CONFIG_DEBUG_OBJECTS=y 17 17 CONFIG_DEBUG_OBJECTS_RCU_HEAD=y
+1 -1
tools/testing/selftests/rcutorture/configs/rcu/v3.12/P1-S-T-NH-SD-SMP-HP
··· 10 10 CONFIG_PREEMPT_NONE=n 11 11 CONFIG_PREEMPT_VOLUNTARY=n 12 12 CONFIG_PREEMPT=y 13 - #CHECK#CONFIG_TREE_PREEMPT_RCU=y 13 + #CHECK#CONFIG_PREEMPT_RCU=y 14 14 CONFIG_RCU_TORTURE_TEST=m 15 15 CONFIG_MODULE_UNLOAD=y 16 16 CONFIG_SYSFS_DEPRECATED_V2=y
+1 -1
tools/testing/selftests/rcutorture/configs/rcu/v3.12/P2-2-t-nh-sd-SMP-hp
··· 10 10 CONFIG_PREEMPT_NONE=n 11 11 CONFIG_PREEMPT_VOLUNTARY=n 12 12 CONFIG_PREEMPT=y 13 - #CHECK#CONFIG_TREE_PREEMPT_RCU=y 13 + #CHECK#CONFIG_PREEMPT_RCU=y 14 14 CONFIG_RCU_TORTURE_TEST=m 15 15 CONFIG_MODULE_UNLOAD=y 16 16 CONFIG_SYSFS_DEPRECATED_V2=y
+1 -1
tools/testing/selftests/rcutorture/configs/rcu/v3.12/P3-3-T-nh-SD-SMP-hp
··· 10 10 CONFIG_PREEMPT_NONE=n 11 11 CONFIG_PREEMPT_VOLUNTARY=n 12 12 CONFIG_PREEMPT=y 13 - #CHECK#CONFIG_TREE_PREEMPT_RCU=y 13 + #CHECK#CONFIG_PREEMPT_RCU=y 14 14 CONFIG_RCU_TORTURE_TEST=m 15 15 CONFIG_MODULE_UNLOAD=y 16 16 CONFIG_SYSFS_DEPRECATED_V2=y
+1 -1
tools/testing/selftests/rcutorture/configs/rcu/v3.12/P4-A-t-NH-sd-SMP-HP
··· 8 8 CONFIG_PREEMPT_NONE=n 9 9 CONFIG_PREEMPT_VOLUNTARY=n 10 10 CONFIG_PREEMPT=y 11 - #CHECK#CONFIG_TREE_PREEMPT_RCU=y 11 + #CHECK#CONFIG_PREEMPT_RCU=y 12 12 CONFIG_RCU_TORTURE_TEST=m 13 13 CONFIG_MODULE_UNLOAD=y 14 14 CONFIG_RT_MUTEXES=y
+1 -1
tools/testing/selftests/rcutorture/configs/rcu/v3.12/P5-U-T-NH-sd-SMP-hp
··· 11 11 CONFIG_PREEMPT_NONE=n 12 12 CONFIG_PREEMPT_VOLUNTARY=n 13 13 CONFIG_PREEMPT=y 14 - #CHECK#CONFIG_TREE_PREEMPT_RCU=y 14 + #CHECK#CONFIG_PREEMPT_RCU=y 15 15 CONFIG_DEBUG_KERNEL=y 16 16 CONFIG_DEBUG_OBJECTS=y 17 17 CONFIG_DEBUG_OBJECTS_RCU_HEAD=y
+1 -1
tools/testing/selftests/rcutorture/configs/rcu/v3.12/P6---t-nh-SD-smp-hp
··· 8 8 CONFIG_PREEMPT_NONE=n 9 9 CONFIG_PREEMPT_VOLUNTARY=n 10 10 CONFIG_PREEMPT=y 11 - CONFIG_TREE_PREEMPT_RCU=y 11 + CONFIG_PREEMPT_RCU=y 12 12 CONFIG_RCU_TORTURE_TEST=m 13 13 CONFIG_MODULE_UNLOAD=y 14 14 CONFIG_SYSFS_DEPRECATED_V2=y
+1 -1
tools/testing/selftests/rcutorture/configs/rcu/v3.12/P7-4-T-NH-SD-SMP-HP
··· 14 14 CONFIG_PREEMPT_NONE=n 15 15 CONFIG_PREEMPT_VOLUNTARY=n 16 16 CONFIG_PREEMPT=y 17 - #CHECK#CONFIG_TREE_PREEMPT_RCU=y 17 + #CHECK#CONFIG_PREEMPT_RCU=y 18 18 CONFIG_RCU_TORTURE_TEST=m 19 19 CONFIG_MODULE_UNLOAD=y 20 20 CONFIG_PROVE_LOCKING=y
+1 -1
tools/testing/selftests/rcutorture/configs/rcu/v3.12/P7-4-T-NH-SD-SMP-HP-all
··· 14 14 CONFIG_PREEMPT_NONE=n 15 15 CONFIG_PREEMPT_VOLUNTARY=n 16 16 CONFIG_PREEMPT=y 17 - #CHECK#CONFIG_TREE_PREEMPT_RCU=y 17 + #CHECK#CONFIG_PREEMPT_RCU=y 18 18 CONFIG_RCU_TORTURE_TEST=m 19 19 CONFIG_MODULE_UNLOAD=y 20 20 CONFIG_PROVE_LOCKING=y
+1 -1
tools/testing/selftests/rcutorture/configs/rcu/v3.12/P7-4-T-NH-SD-SMP-HP-none
··· 14 14 CONFIG_PREEMPT_NONE=n 15 15 CONFIG_PREEMPT_VOLUNTARY=n 16 16 CONFIG_PREEMPT=y 17 - #CHECK#CONFIG_TREE_PREEMPT_RCU=y 17 + #CHECK#CONFIG_PREEMPT_RCU=y 18 18 CONFIG_RCU_TORTURE_TEST=m 19 19 CONFIG_MODULE_UNLOAD=y 20 20 CONFIG_PROVE_LOCKING=y
+1 -1
tools/testing/selftests/rcutorture/configs/rcu/v3.12/P7-4-T-NH-SD-SMP-hp
··· 14 14 CONFIG_PREEMPT_NONE=n 15 15 CONFIG_PREEMPT_VOLUNTARY=n 16 16 CONFIG_PREEMPT=y 17 - #CHECK#CONFIG_TREE_PREEMPT_RCU=y 17 + #CHECK#CONFIG_PREEMPT_RCU=y 18 18 CONFIG_RCU_TORTURE_TEST=m 19 19 CONFIG_MODULE_UNLOAD=y 20 20 CONFIG_PROVE_LOCKING=y
+1 -1
tools/testing/selftests/rcutorture/configs/rcu/v3.3/P1-S-T-NH-SD-SMP-HP
··· 10 10 CONFIG_PREEMPT_NONE=n 11 11 CONFIG_PREEMPT_VOLUNTARY=n 12 12 CONFIG_PREEMPT=y 13 - #CHECK#CONFIG_TREE_PREEMPT_RCU=y 13 + #CHECK#CONFIG_PREEMPT_RCU=y 14 14 CONFIG_RCU_TORTURE_TEST=m 15 15 CONFIG_MODULE_UNLOAD=y 16 16 CONFIG_SYSFS_DEPRECATED_V2=y
+1 -1
tools/testing/selftests/rcutorture/configs/rcu/v3.3/P2-2-t-nh-sd-SMP-hp
··· 10 10 CONFIG_PREEMPT_NONE=n 11 11 CONFIG_PREEMPT_VOLUNTARY=n 12 12 CONFIG_PREEMPT=y 13 - #CHECK#CONFIG_TREE_PREEMPT_RCU=y 13 + #CHECK#CONFIG_PREEMPT_RCU=y 14 14 CONFIG_RCU_TORTURE_TEST=m 15 15 CONFIG_MODULE_UNLOAD=y 16 16 CONFIG_SYSFS_DEPRECATED_V2=y
+1 -1
tools/testing/selftests/rcutorture/configs/rcu/v3.3/P3-3-T-nh-SD-SMP-hp
··· 10 10 CONFIG_PREEMPT_NONE=n 11 11 CONFIG_PREEMPT_VOLUNTARY=n 12 12 CONFIG_PREEMPT=y 13 - #CHECK#CONFIG_TREE_PREEMPT_RCU=y 13 + #CHECK#CONFIG_PREEMPT_RCU=y 14 14 CONFIG_RCU_TORTURE_TEST=m 15 15 CONFIG_MODULE_UNLOAD=y 16 16 CONFIG_SYSFS_DEPRECATED_V2=y
+1 -1
tools/testing/selftests/rcutorture/configs/rcu/v3.3/P4-A-t-NH-sd-SMP-HP
··· 8 8 CONFIG_PREEMPT_NONE=n 9 9 CONFIG_PREEMPT_VOLUNTARY=n 10 10 CONFIG_PREEMPT=y 11 - #CHECK#CONFIG_TREE_PREEMPT_RCU=y 11 + #CHECK#CONFIG_PREEMPT_RCU=y 12 12 CONFIG_RCU_TORTURE_TEST=m 13 13 CONFIG_MODULE_UNLOAD=y 14 14 CONFIG_RT_MUTEXES=y
+1 -1
tools/testing/selftests/rcutorture/configs/rcu/v3.3/P5-U-T-NH-sd-SMP-hp
··· 11 11 CONFIG_PREEMPT_NONE=n 12 12 CONFIG_PREEMPT_VOLUNTARY=n 13 13 CONFIG_PREEMPT=y 14 - #CHECK#CONFIG_TREE_PREEMPT_RCU=y 14 + #CHECK#CONFIG_PREEMPT_RCU=y 15 15 CONFIG_DEBUG_KERNEL=y 16 16 CONFIG_DEBUG_OBJECTS=y 17 17 CONFIG_DEBUG_OBJECTS_RCU_HEAD=y
+1 -1
tools/testing/selftests/rcutorture/configs/rcu/v3.5/P1-S-T-NH-SD-SMP-HP
··· 10 10 CONFIG_PREEMPT_NONE=n 11 11 CONFIG_PREEMPT_VOLUNTARY=n 12 12 CONFIG_PREEMPT=y 13 - #CHECK#CONFIG_TREE_PREEMPT_RCU=y 13 + #CHECK#CONFIG_PREEMPT_RCU=y 14 14 CONFIG_RCU_TORTURE_TEST=m 15 15 CONFIG_MODULE_UNLOAD=y 16 16 CONFIG_SYSFS_DEPRECATED_V2=y
+1 -1
tools/testing/selftests/rcutorture/configs/rcu/v3.5/P2-2-t-nh-sd-SMP-hp
··· 10 10 CONFIG_PREEMPT_NONE=n 11 11 CONFIG_PREEMPT_VOLUNTARY=n 12 12 CONFIG_PREEMPT=y 13 - #CHECK#CONFIG_TREE_PREEMPT_RCU=y 13 + #CHECK#CONFIG_PREEMPT_RCU=y 14 14 CONFIG_RCU_TORTURE_TEST=m 15 15 CONFIG_MODULE_UNLOAD=y 16 16 CONFIG_SYSFS_DEPRECATED_V2=y
+1 -1
tools/testing/selftests/rcutorture/configs/rcu/v3.5/P3-3-T-nh-SD-SMP-hp
··· 10 10 CONFIG_PREEMPT_NONE=n 11 11 CONFIG_PREEMPT_VOLUNTARY=n 12 12 CONFIG_PREEMPT=y 13 - #CHECK#CONFIG_TREE_PREEMPT_RCU=y 13 + #CHECK#CONFIG_PREEMPT_RCU=y 14 14 CONFIG_RCU_TORTURE_TEST=m 15 15 CONFIG_MODULE_UNLOAD=y 16 16 CONFIG_SYSFS_DEPRECATED_V2=y
+1 -1
tools/testing/selftests/rcutorture/configs/rcu/v3.5/P4-A-t-NH-sd-SMP-HP
··· 8 8 CONFIG_PREEMPT_NONE=n 9 9 CONFIG_PREEMPT_VOLUNTARY=n 10 10 CONFIG_PREEMPT=y 11 - #CHECK#CONFIG_TREE_PREEMPT_RCU=y 11 + #CHECK#CONFIG_PREEMPT_RCU=y 12 12 CONFIG_RCU_TORTURE_TEST=m 13 13 CONFIG_MODULE_UNLOAD=y 14 14 CONFIG_RT_MUTEXES=y
+1 -1
tools/testing/selftests/rcutorture/configs/rcu/v3.5/P5-U-T-NH-sd-SMP-hp
··· 11 11 CONFIG_PREEMPT_NONE=n 12 12 CONFIG_PREEMPT_VOLUNTARY=n 13 13 CONFIG_PREEMPT=y 14 - #CHECK#CONFIG_TREE_PREEMPT_RCU=y 14 + #CHECK#CONFIG_PREEMPT_RCU=y 15 15 CONFIG_DEBUG_KERNEL=y 16 16 CONFIG_DEBUG_OBJECTS=y 17 17 CONFIG_DEBUG_OBJECTS_RCU_HEAD=y
+1 -1
tools/testing/selftests/rcutorture/doc/TINY_RCU.txt
··· 34 34 CONFIG_PREEMPT_RCU 35 35 CONFIG_SMP 36 36 CONFIG_TINY_RCU 37 - CONFIG_TREE_PREEMPT_RCU 37 + CONFIG_PREEMPT_RCU 38 38 CONFIG_TREE_RCU 39 39 40 40 All forced by CONFIG_TINY_RCU.
+5 -5
tools/testing/selftests/rcutorture/doc/TREE_RCU-kconfig.txt
··· 1 1 This document gives a brief rationale for the TREE_RCU-related test 2 - cases, a group that includes TREE_PREEMPT_RCU. 2 + cases, a group that includes PREEMPT_RCU. 3 3 4 4 5 5 Kconfig Parameters: ··· 14 14 CONFIG_PREEMPT -- Do half. (First three and #8.) 15 15 CONFIG_PROVE_LOCKING -- Do all but two, covering CONFIG_PROVE_RCU and not. 16 16 CONFIG_PROVE_RCU -- Do all but one under CONFIG_PROVE_LOCKING. 17 - CONFIG_RCU_BOOST -- one of TREE_PREEMPT_RCU. 17 + CONFIG_RCU_BOOST -- one of PREEMPT_RCU. 18 18 CONFIG_RCU_KTHREAD_PRIO -- set to 2 for _BOOST testing. 19 19 CONFIG_RCU_CPU_STALL_INFO -- Do one. 20 20 CONFIG_RCU_CPU_STALL_VERBOSE -- do one with and without _INFO. ··· 27 27 CONFIG_RCU_NOCB_CPU_NONE -- Do one. 28 28 CONFIG_RCU_NOCB_CPU_ZERO -- Do one. 29 29 CONFIG_RCU_TRACE -- Do half. 30 - CONFIG_SMP -- Need one !SMP for TREE_PREEMPT_RCU. 30 + CONFIG_SMP -- Need one !SMP for PREEMPT_RCU. 31 31 RCU-bh: Do one with PREEMPT and one with !PREEMPT. 32 32 RCU-sched: Do one with PREEMPT but not BOOST. 33 33 ··· 77 77 78 78 CONFIG_RCU_STALL_COMMON 79 79 80 - Implied by TREE_RCU and TREE_PREEMPT_RCU. 80 + Implied by TREE_RCU and PREEMPT_RCU. 81 81 82 82 CONFIG_RCU_TORTURE_TEST 83 83 CONFIG_RCU_TORTURE_TEST_RUNNABLE ··· 88 88 89 89 Redundant with CONFIG_NO_HZ_FULL. 90 90 91 - CONFIG_TREE_PREEMPT_RCU 91 + CONFIG_PREEMPT_RCU 92 92 CONFIG_TREE_RCU 93 93 94 94 These are controlled by CONFIG_PREEMPT.