diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2013-02-19 20:45:20 -0500 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2013-02-19 20:45:20 -0500 |
commit | e84cf5d0fd53badf3a93c790e280cc92a69ed999 (patch) | |
tree | abc4d04bc31e5682794d1ea90c38cfeb4d5c9b97 /lib | |
parent | 19f949f52599ba7c3f67a5897ac6be14bfcb1200 (diff) | |
parent | ac0e32024b8f40987b3db7d2defdc6b5153ba354 (diff) |
Merge branch 'core-rcu-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip
Pull RCU changes from Ingo Molnar:
"SRCU changes:
- These include debugging aids, updates that move towards the goal of
permitting srcu_read_lock() and srcu_read_unlock() to be used from
idle and offline CPUs, and a few small fixes.
Changes to rcutorture and to RCU documentation:
- Posted to LKML at https://lkml.org/lkml/2013/1/26/188
Enhancements to uniprocessor handling in tiny RCU:
- Posted to LKML at https://lkml.org/lkml/2013/1/27/2
Tag RCU callbacks with grace-period number to simplify callback
advancement:
- Posted to LKML at https://lkml.org/lkml/2013/1/26/203
Miscellaneous fixes:
- Posted to LKML at https://lkml.org/lkml/2013/1/26/204"
* 'core-rcu-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (27 commits)
srcu: use ACCESS_ONCE() to access sp->completed in srcu_read_lock()
srcu: Update synchronize_srcu_expedited()'s comments
srcu: Update synchronize_srcu()'s comments
srcu: Remove checks preventing idle CPUs from calling srcu_read_lock()
srcu: Remove checks preventing offline CPUs from calling srcu_read_lock()
srcu: Simple cleanup for cleanup_srcu_struct()
srcu: Add might_sleep() annotation to synchronize_srcu()
srcu: Simplify __srcu_read_unlock() via this_cpu_dec()
rcu: Allow rcutorture to be built at low optimization levels
rcu: Make rcutorture's shuffler task shuffle recently added tasks
rcu: Allow TREE_PREEMPT_RCU on UP systems
rcu: Provide RCU CPU stall warnings for tiny RCU
context_tracking: Add comments on interface and internals
rcu: Remove obsolete Kconfig option from comment
rcu: Remove unused code originally used for context tracking
rcu: Consolidate debugging Kconfig options
rcu: Correct 'optimized' to 'optimize' in header comment
rcu: Trace callback acceleration
rcu: Tag callback lists with corresponding grace-period number
rcutorture: Don't compare ptr with 0
...
Diffstat (limited to 'lib')
-rw-r--r-- | lib/Kconfig.debug | 117 |
1 files changed, 61 insertions, 56 deletions
diff --git a/lib/Kconfig.debug b/lib/Kconfig.debug index 67604e599384..a1714c897e3f 100644 --- a/lib/Kconfig.debug +++ b/lib/Kconfig.debug | |||
@@ -605,61 +605,6 @@ config PROVE_LOCKING | |||
605 | 605 | ||
606 | For more details, see Documentation/lockdep-design.txt. | 606 | For more details, see Documentation/lockdep-design.txt. |
607 | 607 | ||
608 | config PROVE_RCU | ||
609 | bool "RCU debugging: prove RCU correctness" | ||
610 | depends on PROVE_LOCKING | ||
611 | default n | ||
612 | help | ||
613 | This feature enables lockdep extensions that check for correct | ||
614 | use of RCU APIs. This is currently under development. Say Y | ||
615 | if you want to debug RCU usage or help work on the PROVE_RCU | ||
616 | feature. | ||
617 | |||
618 | Say N if you are unsure. | ||
619 | |||
620 | config PROVE_RCU_REPEATEDLY | ||
621 | bool "RCU debugging: don't disable PROVE_RCU on first splat" | ||
622 | depends on PROVE_RCU | ||
623 | default n | ||
624 | help | ||
625 | By itself, PROVE_RCU will disable checking upon issuing the | ||
626 | first warning (or "splat"). This feature prevents such | ||
627 | disabling, allowing multiple RCU-lockdep warnings to be printed | ||
628 | on a single reboot. | ||
629 | |||
630 | Say Y to allow multiple RCU-lockdep warnings per boot. | ||
631 | |||
632 | Say N if you are unsure. | ||
633 | |||
634 | config PROVE_RCU_DELAY | ||
635 | bool "RCU debugging: preemptible RCU race provocation" | ||
636 | depends on DEBUG_KERNEL && PREEMPT_RCU | ||
637 | default n | ||
638 | help | ||
639 | There is a class of races that involve an unlikely preemption | ||
640 | of __rcu_read_unlock() just after ->rcu_read_lock_nesting has | ||
641 | been set to INT_MIN. This feature inserts a delay at that | ||
642 | point to increase the probability of these races. | ||
643 | |||
644 | Say Y to increase probability of preemption of __rcu_read_unlock(). | ||
645 | |||
646 | Say N if you are unsure. | ||
647 | |||
648 | config SPARSE_RCU_POINTER | ||
649 | bool "RCU debugging: sparse-based checks for pointer usage" | ||
650 | default n | ||
651 | help | ||
652 | This feature enables the __rcu sparse annotation for | ||
653 | RCU-protected pointers. This annotation will cause sparse | ||
654 | to flag any non-RCU used of annotated pointers. This can be | ||
655 | helpful when debugging RCU usage. Please note that this feature | ||
656 | is not intended to enforce code cleanliness; it is instead merely | ||
657 | a debugging aid. | ||
658 | |||
659 | Say Y to make sparse flag questionable use of RCU-protected pointers | ||
660 | |||
661 | Say N if you are unsure. | ||
662 | |||
663 | config LOCKDEP | 608 | config LOCKDEP |
664 | bool | 609 | bool |
665 | depends on DEBUG_KERNEL && TRACE_IRQFLAGS_SUPPORT && STACKTRACE_SUPPORT && LOCKDEP_SUPPORT | 610 | depends on DEBUG_KERNEL && TRACE_IRQFLAGS_SUPPORT && STACKTRACE_SUPPORT && LOCKDEP_SUPPORT |
@@ -937,6 +882,63 @@ config BOOT_PRINTK_DELAY | |||
937 | BOOT_PRINTK_DELAY also may cause LOCKUP_DETECTOR to detect | 882 | BOOT_PRINTK_DELAY also may cause LOCKUP_DETECTOR to detect |
938 | what it believes to be lockup conditions. | 883 | what it believes to be lockup conditions. |
939 | 884 | ||
885 | menu "RCU Debugging" | ||
886 | |||
887 | config PROVE_RCU | ||
888 | bool "RCU debugging: prove RCU correctness" | ||
889 | depends on PROVE_LOCKING | ||
890 | default n | ||
891 | help | ||
892 | This feature enables lockdep extensions that check for correct | ||
893 | use of RCU APIs. This is currently under development. Say Y | ||
894 | if you want to debug RCU usage or help work on the PROVE_RCU | ||
895 | feature. | ||
896 | |||
897 | Say N if you are unsure. | ||
898 | |||
899 | config PROVE_RCU_REPEATEDLY | ||
900 | bool "RCU debugging: don't disable PROVE_RCU on first splat" | ||
901 | depends on PROVE_RCU | ||
902 | default n | ||
903 | help | ||
904 | By itself, PROVE_RCU will disable checking upon issuing the | ||
905 | first warning (or "splat"). This feature prevents such | ||
906 | disabling, allowing multiple RCU-lockdep warnings to be printed | ||
907 | on a single reboot. | ||
908 | |||
909 | Say Y to allow multiple RCU-lockdep warnings per boot. | ||
910 | |||
911 | Say N if you are unsure. | ||
912 | |||
913 | config PROVE_RCU_DELAY | ||
914 | bool "RCU debugging: preemptible RCU race provocation" | ||
915 | depends on DEBUG_KERNEL && PREEMPT_RCU | ||
916 | default n | ||
917 | help | ||
918 | There is a class of races that involve an unlikely preemption | ||
919 | of __rcu_read_unlock() just after ->rcu_read_lock_nesting has | ||
920 | been set to INT_MIN. This feature inserts a delay at that | ||
921 | point to increase the probability of these races. | ||
922 | |||
923 | Say Y to increase probability of preemption of __rcu_read_unlock(). | ||
924 | |||
925 | Say N if you are unsure. | ||
926 | |||
927 | config SPARSE_RCU_POINTER | ||
928 | bool "RCU debugging: sparse-based checks for pointer usage" | ||
929 | default n | ||
930 | help | ||
931 | This feature enables the __rcu sparse annotation for | ||
932 | RCU-protected pointers. This annotation will cause sparse | ||
933 | to flag any non-RCU used of annotated pointers. This can be | ||
934 | helpful when debugging RCU usage. Please note that this feature | ||
935 | is not intended to enforce code cleanliness; it is instead merely | ||
936 | a debugging aid. | ||
937 | |||
938 | Say Y to make sparse flag questionable use of RCU-protected pointers | ||
939 | |||
940 | Say N if you are unsure. | ||
941 | |||
940 | config RCU_TORTURE_TEST | 942 | config RCU_TORTURE_TEST |
941 | tristate "torture tests for RCU" | 943 | tristate "torture tests for RCU" |
942 | depends on DEBUG_KERNEL | 944 | depends on DEBUG_KERNEL |
@@ -970,7 +972,7 @@ config RCU_TORTURE_TEST_RUNNABLE | |||
970 | 972 | ||
971 | config RCU_CPU_STALL_TIMEOUT | 973 | config RCU_CPU_STALL_TIMEOUT |
972 | int "RCU CPU stall timeout in seconds" | 974 | int "RCU CPU stall timeout in seconds" |
973 | depends on TREE_RCU || TREE_PREEMPT_RCU | 975 | depends on RCU_STALL_COMMON |
974 | range 3 300 | 976 | range 3 300 |
975 | default 21 | 977 | default 21 |
976 | help | 978 | help |
@@ -1008,6 +1010,7 @@ config RCU_CPU_STALL_INFO | |||
1008 | config RCU_TRACE | 1010 | config RCU_TRACE |
1009 | bool "Enable tracing for RCU" | 1011 | bool "Enable tracing for RCU" |
1010 | depends on DEBUG_KERNEL | 1012 | depends on DEBUG_KERNEL |
1013 | select TRACE_CLOCK | ||
1011 | help | 1014 | help |
1012 | This option provides tracing in RCU which presents stats | 1015 | This option provides tracing in RCU which presents stats |
1013 | in debugfs for debugging RCU implementation. | 1016 | in debugfs for debugging RCU implementation. |
@@ -1015,6 +1018,8 @@ config RCU_TRACE | |||
1015 | Say Y here if you want to enable RCU tracing | 1018 | Say Y here if you want to enable RCU tracing |
1016 | Say N if you are unsure. | 1019 | Say N if you are unsure. |
1017 | 1020 | ||
1021 | endmenu # "RCU Debugging" | ||
1022 | |||
1018 | config KPROBES_SANITY_TEST | 1023 | config KPROBES_SANITY_TEST |
1019 | bool "Kprobes sanity tests" | 1024 | bool "Kprobes sanity tests" |
1020 | depends on DEBUG_KERNEL | 1025 | depends on DEBUG_KERNEL |