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
zlib_inflate [PATCH] zlib inflate: fix function definitions 2006-06-27 17:32:35 -07:00
.gitignore
bitmap.c
bust_spinlocks.c Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
cmdline.c
cpumask.c
crc16.c
crc32.c
crc32defs.h
crc-ccitt.c
ctype.c
debug_locks.c [PATCH] lockdep: better lock debugging 2006-07-03 15:27:01 -07:00
dec_and_lock.c
div64.c
dump_stack.c
errno.c
extable.c Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
find_next_bit.c
gen_crc32table.c
genalloc.c
halfmd4.c
hweight.c
idr.c [PATCH] lib: add idr_replace 2006-06-26 09:58:34 -07:00
inflate.c
int_sqrt.c
iomap_copy.c
iomap.c
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
kobject_uevent.c KEVENT: add new uevent for dock 2006-06-27 01:24:15 -04:00
kobject.c
kref.c
libcrc32c.c
Makefile [PATCH] lockdep: better lock debugging 2006-07-03 15:27:01 -07:00
parser.c
percpu_counter.c
plist.c [PATCH] pi-futex: add plist implementation 2006-06-27 17:32:46 -07:00
prio_tree.c
radix-tree.c
rbtree.c
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
smp_processor_id.c
sort.c
spinlock_debug.c [PATCH] lockdep: better lock debugging 2006-07-03 15:27:01 -07:00
string.c
swiotlb.c
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