linux/lib
Ingo Molnar 9a11b49a80 [PATCH] lockdep: better lock debugging
Generic lock debugging:

 - generalized lock debugging framework. For example, a bug in one lock
   subsystem turns off debugging in all lock subsystems.

 - got rid of the caller address passing (__IP__/__IP_DECL__/etc.) from
   the mutex/rtmutex debugging code: it caused way too much prototype
   hackery, and lockdep will give the same information anyway.

 - ability to do silent tests

 - check lock freeing in vfree too.

 - more finegrained debugging options, to allow distributions to
   turn off more expensive debugging features.

There's no separate 'held mutexes' list anymore - but there's a 'held locks'
stack within lockdep, which unifies deadlock detection across all lock
classes.  (this is independent of the lockdep validation stuff - lockdep first
checks whether we are holding a lock already)

Here are the current debugging options:

CONFIG_DEBUG_MUTEXES=y
CONFIG_DEBUG_LOCK_ALLOC=y

which do:

 config DEBUG_MUTEXES
          bool "Mutex debugging, basic checks"

 config DEBUG_LOCK_ALLOC
         bool "Detect incorrect freeing of live mutexes"

Signed-off-by: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Arjan van de Ven <arjan@linux.intel.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2006-07-03 15:27:01 -07:00
..
reed_solomon [PATCH] reed-solomon: fix kernel-doc comments 2006-06-25 10:01:23 -07:00
zlib_deflate [PATCH] zlib_inflate: Upgrade library code to a recent version 2006-06-22 15:05:58 -07:00
zlib_inflate [PATCH] zlib inflate: fix function definitions 2006-06-27 17:32:35 -07:00
.gitignore Add some basic .gitignore files 2005-10-18 08:26:15 -07:00
bitmap.c [PATCH] kernel-doc for lib/bitmap.c 2006-06-25 10:01:20 -07:00
bust_spinlocks.c Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
cmdline.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
cpumask.c [PATCH] cpumask: uninline any_online_cpu() 2006-03-25 08:23:00 -08:00
crc16.c [PATCH] kernel-doc for lib/crc*.c 2006-06-25 10:01:20 -07:00
crc32.c [PATCH] kernel-doc for lib/crc*.c 2006-06-25 10:01:20 -07:00
crc32defs.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
crc-ccitt.c [PATCH] kernel-doc for lib/crc*.c 2006-06-25 10:01:20 -07:00
ctype.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
debug_locks.c [PATCH] lockdep: better lock debugging 2006-07-03 15:27:01 -07:00
dec_and_lock.c [PATCH] atomic: dec_and_lock use atomic primitives 2006-01-08 20:13:48 -08:00
div64.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
dump_stack.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
errno.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
extable.c Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
find_next_bit.c [PATCH] bitops: generic ext2_{set,clear,test,find_first_zero,find_next_zero}_bit() 2006-03-26 08:57:11 -08:00
gen_crc32table.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
genalloc.c [PATCH] change gen_pool allocator to not touch managed memory 2006-06-23 07:42:49 -07:00
halfmd4.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
hweight.c [PATCH] bitops: hweight() speedup 2006-03-26 08:59:30 -08:00
idr.c [PATCH] lib: add idr_replace 2006-06-26 09:58:34 -07:00
inflate.c [PATCH] Update in-kernel zlib routines 2005-08-05 16:23:21 -07:00
int_sqrt.c [PATCH] lib: Fix bug in int_sqrt() for 64 bit longs 2006-02-03 08:32:08 -08:00
iomap_copy.c [PATCH] add __iowrite64_copy 2006-06-20 20:24:58 -07:00
iomap.c [PATCH] add Big Endian variants of ioread/iowrite 2005-04-16 15:25:54 -07:00
Kconfig [PATCH] pi-futex: add plist implementation 2006-06-27 17:32:46 -07:00
Kconfig.debug [PATCH] lockdep: remove mutex deadlock checking code 2006-07-03 15:27:01 -07:00
kernel_lock.c spelling fixes 2006-06-26 18:35:02 +02:00
klist.c [PATCH] klist: Fix broken kref counting in find functions 2006-01-04 16:18:08 -08:00
kobject_uevent.c KEVENT: add new uevent for dock 2006-06-27 01:24:15 -04:00
kobject.c [PATCH] kobject: make people pay attention to kobject_add errors 2006-06-21 12:40:47 -07:00
kref.c [PATCH] kref: avoid an atomic operation in kref_put() 2006-03-20 13:42:57 -08:00
libcrc32c.c [PATCH] constify libcrc32c table 2006-06-25 10:01:09 -07:00
Makefile [PATCH] lockdep: better lock debugging 2006-07-03 15:27:01 -07:00
parser.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
percpu_counter.c [PATCH] percpu counter data type changes to suppport more than 2**31 ext3 free blocks counter 2006-06-23 07:43:06 -07:00
plist.c [PATCH] pi-futex: add plist implementation 2006-06-27 17:32:46 -07:00
prio_tree.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
radix-tree.c [PATCH] radixtree: normalize radix_tree_tag_get() return value 2006-06-25 10:01:13 -07:00
rbtree.c [RBTREE] Switch rb_colour() et al to en_US spelling of 'color' for consistency 2006-06-05 20:19:05 +01:00
rwsem-spinlock.c [PATCH] lockdep: clean up rwsems 2006-07-03 15:27:01 -07:00
rwsem.c [PATCH] lockdep: clean up rwsems 2006-07-03 15:27:01 -07:00
semaphore-sleepers.c Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
sha1.c [PATCH] lib/sha1.c: fix sparse warning 2005-06-25 16:25:02 -07:00
smp_processor_id.c [PATCH] fix missing includes 2005-10-30 17:37:32 -08:00
sort.c [PATCH] fix missing includes 2005-10-30 17:37:32 -08:00
spinlock_debug.c [PATCH] lockdep: better lock debugging 2006-07-03 15:27:01 -07:00
string.c [PATCH] strstrip() API 2006-06-23 07:43:06 -07:00
swiotlb.c BUG_ON() Conversion in lib/swiotlb.c 2006-03-24 18:47:11 +01:00
textsearch.c Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
ts_bm.c Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
ts_fsm.c Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
ts_kmp.c Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
vsprintf.c Fix vsnprintf off-by-one bug 2006-06-28 17:09:34 -07:00