diff options
author | Ingo Molnar <mingo@kernel.org> | 2014-11-20 02:57:58 -0500 |
---|---|---|
committer | Ingo Molnar <mingo@kernel.org> | 2014-11-20 02:57:58 -0500 |
commit | d360b78f99e5d1724279644c8eb51d5cf0de4027 (patch) | |
tree | 011c67bd0654b141e8f7f9fe1d8e1338b05663ba /init/Kconfig | |
parent | fc14f9c1272f62c3e8d01300f52467c0d9af50f9 (diff) | |
parent | 9ea6c5885681e3d9ce9844ba9dc57371a5cfc6d2 (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/Kconfig | 49 |
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 | ||
480 | config TREE_PREEMPT_RCU | 480 | config 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 | ||
502 | endchoice | 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 | config TASKS_RCU | 504 | config 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 | ||
520 | config RCU_STALL_COMMON | 514 | config 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 | ||
622 | config RCU_FANOUT_EXACT | 616 | config 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 | ||
654 | config TREE_RCU_TRACE | 648 | config 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 | ||
662 | config RCU_BOOST | 656 | config 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 | ||
675 | config RCU_BOOST_PRIO | 669 | config 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 | ||
716 | config RCU_NOCB_CPU | 711 | config 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 | |||
739 | choice | 734 | choice |
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 | ||
748 | config RCU_NOCB_CPU_NONE | 744 | config 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 | ||
762 | config RCU_NOCB_CPU_ZERO | 757 | config 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 | ||
777 | config RCU_NOCB_CPU_ALL | 771 | config 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 |