aboutsummaryrefslogtreecommitdiffstats
path: root/init/Kconfig
diff options
context:
space:
mode:
authorIngo Molnar <mingo@kernel.org>2014-11-20 02:57:58 -0500
committerIngo Molnar <mingo@kernel.org>2014-11-20 02:57:58 -0500
commitd360b78f99e5d1724279644c8eb51d5cf0de4027 (patch)
tree011c67bd0654b141e8f7f9fe1d8e1338b05663ba /init/Kconfig
parentfc14f9c1272f62c3e8d01300f52467c0d9af50f9 (diff)
parent9ea6c5885681e3d9ce9844ba9dc57371a5cfc6d2 (diff)
Merge branch 'rcu/next' of git://git.kernel.org/pub/scm/linux/kernel/git/paulmck/linux-rcu into core/rcu
Pull RCU updates from Paul E. McKenney: - Streamline RCU's use of per-CPU variables, shifting from "cpu" arguments to functions to "this_"-style per-CPU variable accessors. - Signal-handling RCU updates. - Real-time updates. - Torture-test updates. - Miscellaneous fixes. - Documentation updates. Signed-off-by: Ingo Molnar <mingo@kernel.org>
Diffstat (limited to 'init/Kconfig')
-rw-r--r--init/Kconfig49
1 files changed, 21 insertions, 28 deletions
diff --git a/init/Kconfig b/init/Kconfig
index 2081a4d3d917..903505e66d1d 100644
--- a/init/Kconfig
+++ b/init/Kconfig
@@ -477,7 +477,7 @@ config TREE_RCU
477 thousands of CPUs. It also scales down nicely to 477 thousands of CPUs. It also scales down nicely to
478 smaller systems. 478 smaller systems.
479 479
480config TREE_PREEMPT_RCU 480config PREEMPT_RCU
481 bool "Preemptible tree-based hierarchical RCU" 481 bool "Preemptible tree-based hierarchical RCU"
482 depends on PREEMPT 482 depends on PREEMPT
483 select IRQ_WORK 483 select IRQ_WORK
@@ -501,12 +501,6 @@ config TINY_RCU
501 501
502endchoice 502endchoice
503 503
504config 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
510config TASKS_RCU 504config TASKS_RCU
511 bool "Task_based RCU implementation using voluntary context switch" 505 bool "Task_based RCU implementation using voluntary context switch"
512 default n 506 default n
@@ -518,7 +512,7 @@ config TASKS_RCU
518 If unsure, say N. 512 If unsure, say N.
519 513
520config RCU_STALL_COMMON 514config RCU_STALL_COMMON
521 def_bool ( TREE_RCU || TREE_PREEMPT_RCU || RCU_TRACE ) 515 def_bool ( TREE_RCU || PREEMPT_RCU || RCU_TRACE )
522 help 516 help
523 This option enables RCU CPU stall code that is common between 517 This option enables RCU CPU stall code that is common between
524 the TINY and TREE variants of RCU. The purpose is to allow 518 the TINY and TREE variants of RCU. The purpose is to allow
@@ -576,7 +570,7 @@ config RCU_FANOUT
576 int "Tree-based hierarchical RCU fanout value" 570 int "Tree-based hierarchical RCU fanout value"
577 range 2 64 if 64BIT 571 range 2 64 if 64BIT
578 range 2 32 if !64BIT 572 range 2 32 if !64BIT
579 depends on TREE_RCU || TREE_PREEMPT_RCU 573 depends on TREE_RCU || PREEMPT_RCU
580 default 64 if 64BIT 574 default 64 if 64BIT
581 default 32 if !64BIT 575 default 32 if !64BIT
582 help 576 help
@@ -596,7 +590,7 @@ config RCU_FANOUT_LEAF
596 int "Tree-based hierarchical RCU leaf-level fanout value" 590 int "Tree-based hierarchical RCU leaf-level fanout value"
597 range 2 RCU_FANOUT if 64BIT 591 range 2 RCU_FANOUT if 64BIT
598 range 2 RCU_FANOUT if !64BIT 592 range 2 RCU_FANOUT if !64BIT
599 depends on TREE_RCU || TREE_PREEMPT_RCU 593 depends on TREE_RCU || PREEMPT_RCU
600 default 16 594 default 16
601 help 595 help
602 This option controls the leaf-level fanout of hierarchical 596 This option controls the leaf-level fanout of hierarchical
@@ -621,7 +615,7 @@ config RCU_FANOUT_LEAF
621 615
622config RCU_FANOUT_EXACT 616config RCU_FANOUT_EXACT
623 bool "Disable tree-based hierarchical RCU auto-balancing" 617 bool "Disable tree-based hierarchical RCU auto-balancing"
624 depends on TREE_RCU || TREE_PREEMPT_RCU 618 depends on TREE_RCU || PREEMPT_RCU
625 default n 619 default n
626 help 620 help
627 This option forces use of the exact RCU_FANOUT value specified, 621 This option forces use of the exact RCU_FANOUT value specified,
@@ -652,11 +646,11 @@ config RCU_FAST_NO_HZ
652 Say N if you are unsure. 646 Say N if you are unsure.
653 647
654config TREE_RCU_TRACE 648config TREE_RCU_TRACE
655 def_bool RCU_TRACE && ( TREE_RCU || TREE_PREEMPT_RCU ) 649 def_bool RCU_TRACE && ( TREE_RCU || PREEMPT_RCU )
656 select DEBUG_FS 650 select DEBUG_FS
657 help 651 help
658 This option provides tracing for the TREE_RCU and 652 This option provides tracing for the TREE_RCU and
659 TREE_PREEMPT_RCU implementations, permitting Makefile to 653 PREEMPT_RCU implementations, permitting Makefile to
660 trivially select kernel/rcutree_trace.c. 654 trivially select kernel/rcutree_trace.c.
661 655
662config RCU_BOOST 656config RCU_BOOST
@@ -672,30 +666,31 @@ config RCU_BOOST
672 Say Y here if you are working with real-time apps or heavy loads 666 Say Y here if you are working with real-time apps or heavy loads
673 Say N here if you are unsure. 667 Say N here if you are unsure.
674 668
675config RCU_BOOST_PRIO 669config RCU_KTHREAD_PRIO
676 int "Real-time priority to boost RCU readers to" 670 int "Real-time priority to use for RCU worker threads"
677 range 1 99 671 range 1 99
678 depends on RCU_BOOST 672 depends on RCU_BOOST
679 default 1 673 default 1
680 help 674 help
681 This option specifies the real-time priority to which long-term 675 This option specifies the SCHED_FIFO priority value that will be
682 preempted RCU readers are to be boosted. If you are working 676 assigned to the rcuc/n and rcub/n threads and is also the value
683 with a real-time application that has one or more CPU-bound 677 used for RCU_BOOST (if enabled). If you are working with a
684 threads running at a real-time priority level, you should set 678 real-time application that has one or more CPU-bound threads
685 RCU_BOOST_PRIO to a priority higher then the highest-priority 679 running at a real-time priority level, you should set
686 real-time CPU-bound thread. The default RCU_BOOST_PRIO value 680 RCU_KTHREAD_PRIO to a priority higher than the highest-priority
687 of 1 is appropriate in the common case, which is real-time 681 real-time CPU-bound application thread. The default RCU_KTHREAD_PRIO
682 value of 1 is appropriate in the common case, which is real-time
688 applications that do not have any CPU-bound threads. 683 applications that do not have any CPU-bound threads.
689 684
690 Some real-time applications might not have a single real-time 685 Some real-time applications might not have a single real-time
691 thread that saturates a given CPU, but instead might have 686 thread that saturates a given CPU, but instead might have
692 multiple real-time threads that, taken together, fully utilize 687 multiple real-time threads that, taken together, fully utilize
693 that CPU. In this case, you should set RCU_BOOST_PRIO to 688 that CPU. In this case, you should set RCU_KTHREAD_PRIO to
694 a priority higher than the lowest-priority thread that is 689 a priority higher than the lowest-priority thread that is
695 conspiring to prevent the CPU from running any non-real-time 690 conspiring to prevent the CPU from running any non-real-time
696 tasks. For example, if one thread at priority 10 and another 691 tasks. For example, if one thread at priority 10 and another
697 thread at priority 5 are between themselves fully consuming 692 thread at priority 5 are between themselves fully consuming
698 the CPU time on a given CPU, then RCU_BOOST_PRIO should be 693 the CPU time on a given CPU, then RCU_KTHREAD_PRIO should be
699 set to priority 6 or higher. 694 set to priority 6 or higher.
700 695
701 Specify the real-time priority, or take the default if unsure. 696 Specify the real-time priority, or take the default if unsure.
@@ -715,7 +710,7 @@ config RCU_BOOST_DELAY
715 710
716config RCU_NOCB_CPU 711config RCU_NOCB_CPU
717 bool "Offload RCU callback processing from boot-selected CPUs" 712 bool "Offload RCU callback processing from boot-selected CPUs"
718 depends on TREE_RCU || TREE_PREEMPT_RCU 713 depends on TREE_RCU || PREEMPT_RCU
719 default n 714 default n
720 help 715 help
721 Use this option to reduce OS jitter for aggressive HPC or 716 Use this option to reduce OS jitter for aggressive HPC or
@@ -739,6 +734,7 @@ config RCU_NOCB_CPU
739choice 734choice
740 prompt "Build-forced no-CBs CPUs" 735 prompt "Build-forced no-CBs CPUs"
741 default RCU_NOCB_CPU_NONE 736 default RCU_NOCB_CPU_NONE
737 depends on RCU_NOCB_CPU
742 help 738 help
743 This option allows no-CBs CPUs (whose RCU callbacks are invoked 739 This option allows no-CBs CPUs (whose RCU callbacks are invoked
744 from kthreads rather than from softirq context) to be specified 740 from kthreads rather than from softirq context) to be specified
@@ -747,7 +743,6 @@ choice
747 743
748config RCU_NOCB_CPU_NONE 744config RCU_NOCB_CPU_NONE
749 bool "No build_forced no-CBs CPUs" 745 bool "No build_forced no-CBs CPUs"
750 depends on RCU_NOCB_CPU
751 help 746 help
752 This option does not force any of the CPUs to be no-CBs CPUs. 747 This option does not force any of the CPUs to be no-CBs CPUs.
753 Only CPUs designated by the rcu_nocbs= boot parameter will be 748 Only CPUs designated by the rcu_nocbs= boot parameter will be
@@ -761,7 +756,6 @@ config RCU_NOCB_CPU_NONE
761 756
762config RCU_NOCB_CPU_ZERO 757config RCU_NOCB_CPU_ZERO
763 bool "CPU 0 is a build_forced no-CBs CPU" 758 bool "CPU 0 is a build_forced no-CBs CPU"
764 depends on RCU_NOCB_CPU
765 help 759 help
766 This option forces CPU 0 to be a no-CBs CPU, so that its RCU 760 This option forces CPU 0 to be a no-CBs CPU, so that its RCU
767 callbacks are invoked by a per-CPU kthread whose name begins 761 callbacks are invoked by a per-CPU kthread whose name begins
@@ -776,7 +770,6 @@ config RCU_NOCB_CPU_ZERO
776 770
777config RCU_NOCB_CPU_ALL 771config RCU_NOCB_CPU_ALL
778 bool "All CPUs are build_forced no-CBs CPUs" 772 bool "All CPUs are build_forced no-CBs CPUs"
779 depends on RCU_NOCB_CPU
780 help 773 help
781 This option forces all CPUs to be no-CBs CPUs. The rcu_nocbs= 774 This option forces all CPUs to be no-CBs CPUs. The rcu_nocbs=
782 boot parameter will be ignored. All CPUs' RCU callbacks will 775 boot parameter will be ignored. All CPUs' RCU callbacks will