diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2010-10-21 15:54:12 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2010-10-21 15:54:12 -0400 |
commit | 888a6f77e0418b049f83d37547c209b904d30af4 (patch) | |
tree | 42cdb9f781d2177e6b380e69a66a27ec7705f51f /lib | |
parent | 31b7eab27a314b153d8fa07ba9e9ec00a98141e1 (diff) | |
parent | 6506cf6ce68d78a5470a8360c965dafe8e4b78e3 (diff) |
Merge branch 'core-rcu-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip
* 'core-rcu-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: (52 commits)
sched: fix RCU lockdep splat from task_group()
rcu: using ACCESS_ONCE() to observe the jiffies_stall/rnp->qsmask value
sched: suppress RCU lockdep splat in task_fork_fair
net: suppress RCU lockdep false positive in sock_update_classid
rcu: move check from rcu_dereference_bh to rcu_read_lock_bh_held
rcu: Add advice to PROVE_RCU_REPEATEDLY kernel config parameter
rcu: Add tracing data to support queueing models
rcu: fix sparse errors in rcutorture.c
rcu: only one evaluation of arg in rcu_dereference_check() unless sparse
kernel: Remove undead ifdef CONFIG_DEBUG_LOCK_ALLOC
rcu: fix _oddness handling of verbose stall warnings
rcu: performance fixes to TINY_PREEMPT_RCU callback checking
rcu: upgrade stallwarn.txt documentation for CPU-bound RT processes
vhost: add __rcu annotations
rcu: add comment stating that list_empty() applies to RCU-protected lists
rcu: apply TINY_PREEMPT_RCU read-side speedup to TREE_PREEMPT_RCU
rcu: combine duplicate code, courtesy of CONFIG_PREEMPT_RCU
rcu: Upgrade srcu_read_lock() docbook about SRCU grace periods
rcu: document ways of stalling updates in low-memory situations
rcu: repair code-duplication FIXMEs
...
Diffstat (limited to 'lib')
-rw-r--r-- | lib/Kconfig.debug | 41 | ||||
-rw-r--r-- | lib/radix-tree.c | 2 |
2 files changed, 42 insertions, 1 deletions
diff --git a/lib/Kconfig.debug b/lib/Kconfig.debug index 1b4afd2e6ca0..9886cf5365ba 100644 --- a/lib/Kconfig.debug +++ b/lib/Kconfig.debug | |||
@@ -539,6 +539,23 @@ config PROVE_RCU_REPEATEDLY | |||
539 | disabling, allowing multiple RCU-lockdep warnings to be printed | 539 | disabling, allowing multiple RCU-lockdep warnings to be printed |
540 | on a single reboot. | 540 | on a single reboot. |
541 | 541 | ||
542 | Say Y to allow multiple RCU-lockdep warnings per boot. | ||
543 | |||
544 | Say N if you are unsure. | ||
545 | |||
546 | config SPARSE_RCU_POINTER | ||
547 | bool "RCU debugging: sparse-based checks for pointer usage" | ||
548 | default n | ||
549 | help | ||
550 | This feature enables the __rcu sparse annotation for | ||
551 | RCU-protected pointers. This annotation will cause sparse | ||
552 | to flag any non-RCU used of annotated pointers. This can be | ||
553 | helpful when debugging RCU usage. Please note that this feature | ||
554 | is not intended to enforce code cleanliness; it is instead merely | ||
555 | a debugging aid. | ||
556 | |||
557 | Say Y to make sparse flag questionable use of RCU-protected pointers | ||
558 | |||
542 | Say N if you are unsure. | 559 | Say N if you are unsure. |
543 | 560 | ||
544 | config LOCKDEP | 561 | config LOCKDEP |
@@ -832,6 +849,30 @@ config RCU_CPU_STALL_DETECTOR | |||
832 | 849 | ||
833 | Say Y if you are unsure. | 850 | Say Y if you are unsure. |
834 | 851 | ||
852 | config RCU_CPU_STALL_TIMEOUT | ||
853 | int "RCU CPU stall timeout in seconds" | ||
854 | depends on RCU_CPU_STALL_DETECTOR | ||
855 | range 3 300 | ||
856 | default 60 | ||
857 | help | ||
858 | If a given RCU grace period extends more than the specified | ||
859 | number of seconds, a CPU stall warning is printed. If the | ||
860 | RCU grace period persists, additional CPU stall warnings are | ||
861 | printed at more widely spaced intervals. | ||
862 | |||
863 | config RCU_CPU_STALL_DETECTOR_RUNNABLE | ||
864 | bool "RCU CPU stall checking starts automatically at boot" | ||
865 | depends on RCU_CPU_STALL_DETECTOR | ||
866 | default y | ||
867 | help | ||
868 | If set, start checking for RCU CPU stalls immediately on | ||
869 | boot. Otherwise, RCU CPU stall checking must be manually | ||
870 | enabled. | ||
871 | |||
872 | Say Y if you are unsure. | ||
873 | |||
874 | Say N if you wish to suppress RCU CPU stall checking during boot. | ||
875 | |||
835 | config RCU_CPU_STALL_VERBOSE | 876 | config RCU_CPU_STALL_VERBOSE |
836 | bool "Print additional per-task information for RCU_CPU_STALL_DETECTOR" | 877 | bool "Print additional per-task information for RCU_CPU_STALL_DETECTOR" |
837 | depends on RCU_CPU_STALL_DETECTOR && TREE_PREEMPT_RCU | 878 | depends on RCU_CPU_STALL_DETECTOR && TREE_PREEMPT_RCU |
diff --git a/lib/radix-tree.c b/lib/radix-tree.c index efd16fa80b1c..6f412ab4c24f 100644 --- a/lib/radix-tree.c +++ b/lib/radix-tree.c | |||
@@ -49,7 +49,7 @@ struct radix_tree_node { | |||
49 | unsigned int height; /* Height from the bottom */ | 49 | unsigned int height; /* Height from the bottom */ |
50 | unsigned int count; | 50 | unsigned int count; |
51 | struct rcu_head rcu_head; | 51 | struct rcu_head rcu_head; |
52 | void *slots[RADIX_TREE_MAP_SIZE]; | 52 | void __rcu *slots[RADIX_TREE_MAP_SIZE]; |
53 | unsigned long tags[RADIX_TREE_MAX_TAGS][RADIX_TREE_TAG_LONGS]; | 53 | unsigned long tags[RADIX_TREE_MAX_TAGS][RADIX_TREE_TAG_LONGS]; |
54 | }; | 54 | }; |
55 | 55 | ||