Paul E. McKenney
67182ae1c4
rcu, debug: detect stalled grace periods
...
this is a diagnostic patch for Classic RCU.
The approach is to record a timestamp at the beginning
of the grace period (in rcu_start_batch()), then have
rcu_check_callbacks() complain if:
1. it is running on a CPU that has holding up grace periods for
a long time (say one second). This will identify the culprit
assuming that the culprit has not disabled hardware irqs,
instruction execution, or some such.
2. it is running on a CPU that is not holding up grace periods,
but grace periods have been held up for an even longer time
(say two seconds).
It is enabled via the default-off CONFIG_DEBUG_RCU_STALL kernel parameter.
Rather than exponential backoff, it backs off to once per 30 seconds.
My feeling upon thinking on it was that if you have stalled RCU grace
periods for that long, a few extra printk() messages are probably the
least of your worries...
Signed-off-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Yinghai Lu <yhlu.kernel@gmail.com>
Cc: David Witbrodt <dawitbro@sbcglobal.net>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
2008-08-11 13:35:18 +02:00
..
lzo
lzo: use get/put_unaligned_* helpers
2008-07-25 10:53:26 -07:00
reed_solomon
lib: Remove unnecessary inclusions of asm/semaphore.h
2008-04-18 22:17:17 -04:00
zlib_deflate
lib/: Spelling fixes
2008-02-03 17:48:52 +02:00
zlib_inflate
[ZLIB]: Fix external builds of zlib_inflate code.
2007-10-11 22:17:20 -07:00
.gitignore
argv_split.c
LIB: Replace inappropriate include of <linux/bug.h>
2007-10-20 00:26:10 +02:00
audit.c
[PATCH] audit signal recipients
2007-05-11 05:38:25 -04:00
bcd.c
rtc: BCD codeshrink
2008-07-24 10:47:33 -07:00
bitmap.c
cpumask: remove bitmap_scnprintf_len and cpumask_scnprintf_len
2008-05-13 08:02:25 -07:00
bitrev.c
lib: export bitrev16
2008-06-06 11:29:10 -07:00
bug.c
lib: taint kernel in common report_bug() WARN path.
2008-07-04 10:40:05 -07:00
bust_spinlocks.c
handle recursive calls to bust_spinlocks()
2007-10-17 08:42:56 -07:00
check_signature.c
uninline check_signature()
2007-07-16 09:05:50 -07:00
cmdline.c
lib: allow memparse() to accept a NULL and ignorable second parm
2008-07-25 10:53:27 -07:00
cpumask.c
x86: Add performance variants of cpumask operators
2008-05-23 18:23:38 +02:00
crc-ccitt.c
[PATCH] kernel-doc for lib/crc*.c
2006-06-25 10:01:20 -07:00
crc-itu-t.c
CRC ITU-T V.41
2007-05-10 18:24:13 +02:00
crc-t10dif.c
[SCSI] lib: Add support for the T10 (SCSI) Data Integrity Field CRC
2008-07-12 08:22:32 -05:00
crc7.c
CRC7 support
2007-07-17 10:23:04 -07:00
crc16.c
[PATCH] kernel-doc for lib/crc*.c
2006-06-25 10:01:20 -07:00
crc32.c
lib/: Spelling fixes
2008-02-03 17:48:52 +02:00
crc32defs.h
ctype.c
debug_locks.c
[PATCH] lockdep: better lock debugging
2006-07-03 15:27:01 -07:00
debugobjects.c
Use WARN() in lib/
2008-07-26 12:00:07 -07:00
dec_and_lock.c
devres.c
[POWERPC] devres: Add devm_ioremap_prot()
2008-05-05 16:47:14 +10:00
div64.c
add an inlined version of iter_div_u64_rem
2008-06-12 10:47:58 +02:00
dump_stack.c
extable.c
lib/extable.c: remove an expensive integer divide in search_extable()
2008-02-06 10:41:08 -08:00
fault-inject.c
libfs: allow error return from simple attributes
2008-02-08 09:22:34 -08:00
find_next_bit.c
bitops: remove "optimizations"
2008-04-29 08:11:16 -07:00
gen_crc32table.c
genalloc.c
Slab allocators: Replace explicit zeroing with __GFP_ZERO
2007-07-17 10:23:02 -07:00
halfmd4.c
hexdump.c
lib: create common ascii hex array
2008-05-14 19:11:14 -07:00
hweight.c
remove asm/bitops.h includes
2007-10-19 11:53:41 -07:00
idr.c
SL*B: drop kmem cache argument from constructor
2008-07-26 12:00:07 -07:00
inflate.c
inflate: refactor inflate malloc code
2008-07-25 10:53:28 -07:00
int_sqrt.c
iomap.c
Use WARN() in lib/
2008-07-26 12:00:07 -07:00
iomap_copy.c
[PATCH] add __iowrite64_copy
2006-06-20 20:24:58 -07:00
iommu-helper.c
generic, x86: fix add iommu_num_pages helper function
2008-07-29 12:12:48 +02:00
ioremap.c
lib/ioremap.c should #include <linux/io.h>
2007-10-17 08:42:50 -07:00
irq_regs.c
[PATCH] irq_reqs: export __irq_regs
2006-10-06 08:53:40 -07:00
kasprintf.c
lib: move kasprintf to a separate file
2007-07-31 15:39:39 -07:00
Kconfig
[SCSI] lib: Add support for the T10 (SCSI) Data Integrity Field CRC
2008-07-12 08:22:32 -05:00
Kconfig.debug
rcu, debug: detect stalled grace periods
2008-08-11 13:35:18 +02:00
Kconfig.kgdb
kgdb: remove the requirement for CONFIG_FRAME_POINTER
2008-08-01 08:39:34 -05:00
kernel_lock.c
BKL: revert back to the old spinlock implementation
2008-05-10 20:58:02 -07:00
klist.c
klist: fix coding style errors in klist.h and klist.c
2008-04-30 16:52:58 -07:00
kobject.c
Example use of WARN()
2008-07-25 10:53:29 -07:00
kobject_uevent.c
Use WARN() in lib/
2008-07-26 12:00:07 -07:00
kref.c
kref: add kref_set()
2008-01-24 20:40:05 -08:00
libcrc32c.c
[LIB] crc32c: Keep intermediate crc state in cpu order
2007-11-08 21:34:09 +08:00
list_debug.c
list debugging: use WARN() instead of BUG()
2008-07-25 10:53:29 -07:00
lmb.c
lmb: Fix compile warning
2008-05-18 23:35:43 -05:00
locking-selftest-hardirq.h
[PATCH] lockdep: locking API self tests
2006-07-03 15:27:03 -07:00
locking-selftest-mutex.h
[PATCH] lockdep: locking API self tests
2006-07-03 15:27:03 -07:00
locking-selftest-rlock-hardirq.h
[PATCH] lockdep: locking API self tests
2006-07-03 15:27:03 -07:00
locking-selftest-rlock-softirq.h
[PATCH] lockdep: locking API self tests
2006-07-03 15:27:03 -07:00
locking-selftest-rlock.h
[PATCH] lockdep: locking API self tests
2006-07-03 15:27:03 -07:00
locking-selftest-rsem.h
[PATCH] lockdep: locking API self tests
2006-07-03 15:27:03 -07:00
locking-selftest-softirq.h
[PATCH] lockdep: locking API self tests
2006-07-03 15:27:03 -07:00
locking-selftest-spin-hardirq.h
[PATCH] lockdep: locking API self tests
2006-07-03 15:27:03 -07:00
locking-selftest-spin-softirq.h
[PATCH] lockdep: locking API self tests
2006-07-03 15:27:03 -07:00
locking-selftest-spin.h
[PATCH] lockdep: locking API self tests
2006-07-03 15:27:03 -07:00
locking-selftest-wlock-hardirq.h
[PATCH] lockdep: locking API self tests
2006-07-03 15:27:03 -07:00
locking-selftest-wlock-softirq.h
[PATCH] lockdep: locking API self tests
2006-07-03 15:27:03 -07:00
locking-selftest-wlock.h
[PATCH] lockdep: locking API self tests
2006-07-03 15:27:03 -07:00
locking-selftest-wsem.h
[PATCH] lockdep: locking API self tests
2006-07-03 15:27:03 -07:00
locking-selftest.c
[PATCH] lockdep: show more details about self-test failures
2006-12-07 08:39:43 -08:00
Makefile
lib: generic show_mem()
2008-07-26 12:00:10 -07:00
parser.c
add match_strlcpy() us it to make v9fs make uname and remotename parsing more robust
2008-05-14 19:23:25 -05:00
percpu_counter.c
percpu_counter: new function percpu_counter_sum_and_set
2008-07-11 19:27:31 -04:00
plist.c
Use WARN() in lib/
2008-07-26 12:00:07 -07:00
prio_heap.c
Fix cpusets update_cpumask
2007-10-19 11:53:41 -07:00
prio_tree.c
proportions.c
mm: bdi: allow setting a maximum for the bdi dirty limit
2008-04-30 08:29:50 -07:00
radix-tree.c
SL*B: drop kmem cache argument from constructor
2008-07-26 12:00:07 -07:00
random32.c
random32: seeding improvement
2008-07-30 16:29:19 -07:00
ratelimit.c
__ratelimit() cpu flags can't be static
2008-07-28 16:30:20 -07:00
rbtree.c
[PATCH] rbtree: fixed reversed RB_EMPTY_NODE and rb_next/prev
2006-09-30 20:26:56 +02:00
reciprocal_div.c
[PATCH] SLAB: use a multiply instead of a divide in obj_to_index()
2006-12-13 09:05:49 -08:00
rwsem-spinlock.c
lib: remove fastcall from lib/*
2008-02-08 09:22:31 -08:00
rwsem.c
x86: fix UML and -regparm=3
2008-01-30 13:33:00 +01:00
scatterlist.c
sg: reimplement sg mapping iterator
2008-07-23 14:42:09 +02:00
sha1.c
[PATCH] Numerous fixes to kernel-doc info in source files.
2007-02-11 10:51:32 -08:00
show_mem.c
lib: generic show_mem()
2008-07-26 12:00:10 -07:00
smp_processor_id.c
cpumask: change cpumask_of_cpu_ptr to use new cpumask_of_cpu
2008-07-26 16:40:33 +02:00
sort.c
lib/sort.c optimization
2007-10-17 08:42:52 -07:00
spinlock_debug.c
Use helpers to obtain task pid in printks
2007-10-19 11:53:43 -07:00
string.c
Add a new sysfs_streq() string comparison function
2008-05-01 08:03:59 -07:00
swiotlb.c
dma-mapping: add the device argument to dma_mapping_error()
2008-07-26 12:00:03 -07:00
syscall.c
task_current_syscall
2008-07-26 12:00:10 -07:00
textsearch.c
remove CONFIG_KMOD from lib
2008-07-22 19:24:31 +10:00
ts_bm.c
textsearch: ts_bm: support case insensitive searching in Boyer-Moore algorithm
2008-07-08 02:37:54 -07:00
ts_fsm.c
textsearch: ts_fsm: return error on request for case insensitive search
2008-07-08 02:38:27 -07:00
ts_kmp.c
textsearch: ts_kmp: support case insensitive searching in Knuth-Morris-Pratt algorithm
2008-07-08 02:38:09 -07:00
vsprintf.c
vsprintf: add support for '%pS' and '%pF' pointer formats
2008-07-06 16:55:51 -07:00