Sasha Levin
f612ac05b7
liblockdep: Add the 'lockdep' user-space utility
...
This is a simple wrapper to make using liblockdep on existing
applications much easier.
After running 'make && make install', it becomes quite simple to
test things with liblockdep. For example, to try it on perf:
lockdep perf
No other integration required.
Signed-off-by: Sasha Levin <sasha.levin@oracle.com >
Signed-off-by: Peter Zijlstra <peterz@infradead.org >
Cc: torvalds@linux-foundation.org
Link: http://lkml.kernel.org/r/1371163284-6346-9-git-send-email-sasha.levin@oracle.com
[ Changed it to load ./liblockdep.so, so it can be tested in situ. ]
Signed-off-by: Ingo Molnar <mingo@kernel.org >
2013-11-27 11:56:25 +01:00
Sasha Levin
231941eec8
liblockdep: Support using LD_PRELOAD
...
This allows lockdep to be used without being compiled in the
original program.
Usage is quite simple:
LD_PRELOAD=/path/to/liblockdep.so /path/to/my/program
And magically, you'll have lockdep checking in your program!
Signed-off-by: Sasha Levin <sasha.levin@oracle.com >
Signed-off-by: Peter Zijlstra <peterz@infradead.org >
Cc: torvalds@linux-foundation.org
Link: http://lkml.kernel.org/r/1371163284-6346-8-git-send-email-sasha.levin@oracle.com
Signed-off-by: Ingo Molnar <mingo@kernel.org >
2013-11-27 11:55:24 +01:00
Sasha Levin
dbe941827e
liblockdep: Add pthread_rwlock_t test suite
...
A simple test to make sure we handle rwlocks correctly.
Signed-off-by: Sasha Levin <sasha.levin@oracle.com >
Signed-off-by: Peter Zijlstra <peterz@infradead.org >
Cc: torvalds@linux-foundation.org
Link: http://lkml.kernel.org/r/1371163284-6346-7-git-send-email-sasha.levin@oracle.com
Signed-off-by: Ingo Molnar <mingo@kernel.org >
2013-11-27 11:55:24 +01:00
Sasha Levin
5a52c9b480
liblockdep: Add public headers for pthread_rwlock_t implementation
...
Both pthreads and lockdep support dealing with rwlocks, so
here's the liblockdep implementation for those.
Signed-off-by: Sasha Levin <sasha.levin@oracle.com >
Signed-off-by: Peter Zijlstra <peterz@infradead.org >
Cc: torvalds@linux-foundation.org
Link: http://lkml.kernel.org/r/1371163284-6346-6-git-send-email-sasha.levin@oracle.com
Signed-off-by: Ingo Molnar <mingo@kernel.org >
2013-11-27 11:55:23 +01:00
Sasha Levin
878f968eeb
liblockdep: Add pthread_mutex_t test suite
...
This is a rather simple and basic test suite to test common
locking issues.
Beyond tests, it also shows how to use the library.
Signed-off-by: Sasha Levin <sasha.levin@oracle.com >
Signed-off-by: Peter Zijlstra <peterz@infradead.org >
Cc: torvalds@linux-foundation.org
Link: http://lkml.kernel.org/r/1371163284-6346-5-git-send-email-sasha.levin@oracle.com
Signed-off-by: Ingo Molnar <mingo@kernel.org >
2013-11-27 11:55:22 +01:00
Sasha Levin
45e6207464
liblockdep: Add public headers for pthread_mutex_t implementation
...
These headers provide the same API as their pthread mutex
counterparts.
The design here is to allow to easily switch to liblockdep lock
validation just by adding a "liblockdep_" to pthread_mutex_*()
calls, which means that it's easy to integrate liblockdep into
existing codebases.
Signed-off-by: Sasha Levin <sasha.levin@oracle.com >
Signed-off-by: Peter Zijlstra <peterz@infradead.org >
Cc: torvalds@linux-foundation.org
Link: http://lkml.kernel.org/r/1371163284-6346-4-git-send-email-sasha.levin@oracle.com
Signed-off-by: Ingo Molnar <mingo@kernel.org >
2013-11-27 11:55:22 +01:00
Sasha Levin
5634bd7d2a
liblockdep: Wrap kernel/locking/lockdep.c to allow usage from userspace
...
kernel/locking/lockdep.c deals with validating locking scenarios for
various architectures supported by the kernel. There isn't
anything kernel specific going on in lockdep, and when we
compare userspace to other architectures that don't have to deal
with irqs such as s390, they become all too similar.
We wrap kernel/locking/lockdep.c and include/linux/lockdep.h with
several headers which allow us to build and use lockdep from
userspace. We don't touch the kernel code itself which means
that any work done on lockdep in the kernel will automatically
benefit userspace lockdep as well!
Signed-off-by: Sasha Levin <sasha.levin@oracle.com >
Signed-off-by: Peter Zijlstra <peterz@infradead.org >
Cc: torvalds@linux-foundation.org
Link: http://lkml.kernel.org/r/1371163284-6346-3-git-send-email-sasha.levin@oracle.com
Signed-off-by: Ingo Molnar <mingo@kernel.org >
2013-11-27 11:55:21 +01:00