Sedat Dilek
a189c017de
tools/lib/lockdep: Fix unsupported 'basename -s' in run_tests.sh
...
Here on Ubuntu/precise I have GNU/coreutils v8.13 installed
where 'basename -s' is not supported.
The result is that run_tests.sh is not done properly.
How to reproduce:
$ cd $BUILD_DIR
$ LC_ALL=C make -C tools/ liblockdep
$ cd tools/lib/lockdep/
$ LC_ALL=C ./run_tests.sh
basename: invalid option -- 's'
Try `basename --help' for more information.
... timeout: failed to run command `./tests/': Permission denied
FAILED!
rm: cannot remove `tests/': Is a directory
Due to unsupported basename the tests programs are not generated
and cannot be removed.
Fix this by doing a compatible basename invocation and check for
the existence of generated tests programs.
For more details see this LKML thread:
http://marc.info/?t=145906667300001&r=1&w=2
Signed-off-by: Sedat Dilek <sedat.dilek@gmail.com >
Cc: Boqun Feng <boqun.feng@gmail.com >
Cc: Linus Torvalds <torvalds@linux-foundation.org >
Cc: Peter Zijlstra <peterz@infradead.org >
Cc: Sasha Levin <sasha.levin@oracle.com > (maintainer:LIBLOCKDEP)
Cc: Shuah Khan <shuahkh@osg.samsung.com >
Cc: Theodore Ts'o <tytso@mit.edu >
Cc: Thomas Gleixner <tglx@linutronix.de >
Cc: linux-fsdevel <linux-fsdevel@vger.kernel.org >
Link: http://lkml.kernel.org/r/1459326169-7009-1-git-send-email-sedat.dilek@gmail.com
Signed-off-by: Ingo Molnar <mingo@kernel.org >
2016-03-30 12:45:56 +02:00
Ingo Molnar
013e379a30
tools/lib/lockdep: Fix link creation warning
...
This warning triggers if the .so library has already been linked:
triton:~/tip/tools/lib/lockdep> make
CC common.o
CC lockdep.o
CC rbtree.o
LD liblockdep-in.o
LD liblockdep.a
ln: failed to create symbolic link ‘liblockdep.so’: File exists
LD liblockdep.so.4.5.0-rc6
Overwrite the link.
Cc: Alfredo Alvarez Fernandez <alfredoalvarezfernandez@gmail.com >
Cc: Andrew Morton <akpm@linux-foundation.org >
Cc: Linus Torvalds <torvalds@linux-foundation.org >
Cc: Paul E. McKenney <paulmck@linux.vnet.ibm.com >
Cc: Peter Zijlstra <peterz@infradead.org >
Cc: Sasha Levin <sasha.levin@oracle.com >
Cc: Thomas Gleixner <tglx@linutronix.de >
Cc: linux-kernel@vger.kernel.org
Signed-off-by: Ingo Molnar <mingo@kernel.org >
2016-02-29 10:32:28 +01:00
Alfredo Alvarez Fernandez
11a1ac206d
tools/lib/lockdep: Add tests for AA and ABBA locking
...
Add test for AA and 2 threaded ABBA locking.
Rename AA.c to ABA.c since it was implementing an ABA instead of a pure
AA. Now both cases are covered.
The expected output for AA.c is that the process blocks and lockdep
reports a deadlock.
ABBA_2threads.c differs from ABBA.c in that lockdep keeps separate chains
of held locks per task. This can lead to different behaviour regarding
lock detection. The expected output for this test is that the process
blocks and lockdep reports a circular locking dependency.
These tests found a lockdep bug - fixed by the next commit.
Signed-off-by: Alfredo Alvarez Fernandez <alfredoalvarezfernandez@gmail.com >
Cc: Andrew Morton <akpm@linux-foundation.org >
Cc: Linus Torvalds <torvalds@linux-foundation.org >
Cc: Paul E. McKenney <paulmck@linux.vnet.ibm.com >
Cc: Peter Zijlstra <peterz@infradead.org >
Cc: Sasha Levin <sasha.levin@oracle.com >
Cc: Thomas Gleixner <tglx@linutronix.de >
Link: http://lkml.kernel.org/r/1455864533-7536-3-git-send-email-alfredoalvarezernandez@gmail.com
Signed-off-by: Ingo Molnar <mingo@kernel.org >
2016-02-29 10:29:33 +01:00
Alfredo Alvarez Fernandez
9d5a23ac8e
tools/lib/lockdep: Add userspace version of READ_ONCE()
...
This was added to the kernel code in <1658d35ead5d> ("list: Use
READ_ONCE() when testing for empty lists").
There's nothing special we need to do about it in userspace.
Signed-off-by: Alfredo Alvarez Fernandez <alfredoalvarezfernandez@gmail.com >
Cc: Andrew Morton <akpm@linux-foundation.org >
Cc: Linus Torvalds <torvalds@linux-foundation.org >
Cc: Paul E. McKenney <paulmck@linux.vnet.ibm.com >
Cc: Peter Zijlstra <peterz@infradead.org >
Cc: Sasha Levin <sasha.levin@oracle.com >
Cc: Thomas Gleixner <tglx@linutronix.de >
Link: http://lkml.kernel.org/r/1455864533-7536-2-git-send-email-alfredoalvarezernandez@gmail.com
Signed-off-by: Ingo Molnar <mingo@kernel.org >
2016-02-29 10:29:27 +01:00
Ingo Molnar
b2ed0998f6
tools/lib/lockdep: Fix the build on recent kernels
...
The following upstream commit:
4a389810bc ("kernel/locking/lockdep.c: convert hash tables to hlists")
broke the tools/lib/lockdep build. Add trivial RCU wrappers to fix it.
These wrappers should probably be moved into their own header file.
Cc: Andrew Morton <akpm@linux-foundation.org >
Cc: Andrey Ryabinin <aryabinin@virtuozzo.com >
Cc: Linus Torvalds <torvalds@linux-foundation.org >
Cc: Mike Krinkin <krinkin.m.u@gmail.com >
Cc: Paul E. McKenney <paulmck@linux.vnet.ibm.com >
Cc: Peter Zijlstra <peterz@infradead.org >
Cc: Sasha Levin <sasha.levin@oracle.com >
Signed-off-by: Ingo Molnar <mingo@kernel.org >
2016-02-29 10:29:26 +01:00
Andrey Ryabinin
06bea3dbfe
locking/lockdep: Eliminate lockdep_init()
...
Lockdep is initialized at compile time now. Get rid of lockdep_init().
Signed-off-by: Andrey Ryabinin <aryabinin@virtuozzo.com >
Signed-off-by: Andrew Morton <akpm@linux-foundation.org >
Cc: Linus Torvalds <torvalds@linux-foundation.org >
Cc: Mike Krinkin <krinkin.m.u@gmail.com >
Cc: Paul E. McKenney <paulmck@linux.vnet.ibm.com >
Cc: Peter Zijlstra <peterz@infradead.org >
Cc: Thomas Gleixner <tglx@linutronix.de >
Cc: linux-kernel@vger.kernel.org
Cc: mm-commits@vger.kernel.org
Signed-off-by: Ingo Molnar <mingo@kernel.org >
2016-02-09 12:03:25 +01:00
Jiri Olsa
24ee9b57b9
tools lockdep: Add *.cmd files clean up
...
Add *.cmd files to be removed within clean target.
Reported-by: Arnaldo Carvalho de Melo <acme@kernel.org >
Signed-off-by: Jiri Olsa <jolsa@kernel.org >
Cc: David Ahern <dsahern@gmail.com >
Cc: Namhyung Kim <namhyung@kernel.org >
Cc: Peter Zijlstra <a.p.zijlstra@chello.nl >
Cc: Wang Nan <wangnan0@huawei.com >
Link: http://lkml.kernel.org/r/1452509693-13452-4-git-send-email-jolsa@kernel.org
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com >
2016-01-11 12:09:05 -03:00
Ingo Molnar
b32e1f58c2
Merge branch 'liblockdep-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/sashal/linux into locking/urgent
...
Pull liblockdep fixes from Sasha Levin:
" ... three fixes for liblockdep. Just keeping up with kernel
code changes and new gcc versions."
Signed-off-by: Ingo Molnar <mingo@kernel.org >
2015-11-09 08:45:42 +01:00
Sasha Levin
2b62c2dbb9
tools/liblockdep: explicitly declare lockdep API we call from liblockdep
...
It seems that newer gcc complains about lack of explicit declaration for some
of the API we use, add it in.
Signed-off-by: Sasha Levin <sasha.levin@oracle.com >
2015-11-06 16:01:37 -05:00
Sasha Levin
e308e942e1
tools/liblockdep: add userspace versions of WRITE_ONCE and RCU_INIT_POINTER
...
These were added to the kernel code in cee34d88c ("lockdep: Fix a race between
/proc/lock_stat and module unload"). There's nothing special we need to do
about them in userspace.
Signed-off-by: Sasha Levin <sasha.levin@oracle.com >
2015-11-06 16:01:36 -05:00
Sasha Levin
1393ba5c9b
tools/liblockdep: remove task argument from debug_check_no_locks_held
...
The tas argument was removed from the kernel code in 1b1d2fb4 ("lockdep:
remove task argument from debug_check_no_locks_held"). Remove it in loblockdep
too.
Signed-off-by: Sasha Levin <sasha.levin@oracle.com >
2015-11-06 16:01:29 -05:00
Jiri Olsa
7c422f5572
tools build: Build fixdep helper from perf and basic libs
...
Adding the fixdep target into the Makefile.include to ease up building of
fixdep helper, that needs to be built before we dive in to the build itself.
The user can invoke the fixdep target to build the helper.
Signed-off-by: Jiri Olsa <jolsa@kernel.org >
Cc: David Ahern <dsahern@gmail.com >
Cc: Namhyung Kim <namhyung@kernel.org >
Cc: Peter Zijlstra <a.p.zijlstra@chello.nl >
Link: http://lkml.kernel.org/r/1443004442-32660-8-git-send-email-jolsa@kernel.org
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com >
2015-09-28 15:50:55 -03:00
Jiri Olsa
ab6201d09b
tools build: Add Makefile.include
...
To ease up build framework code setup for users.
More shared code will be added in the following patches.
Signed-off-by: Jiri Olsa <jolsa@kernel.org >
Cc: David Ahern <dsahern@gmail.com >
Cc: Namhyung Kim <namhyung@kernel.org >
Cc: Peter Zijlstra <a.p.zijlstra@chello.nl >
Link: http://lkml.kernel.org/r/1443004442-32660-2-git-send-email-jolsa@kernel.org
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com >
2015-09-28 15:50:54 -03:00
Sasha Levin
33fef662d2
tools/liblockdep: Use the rbtree header provided by common tools headers
...
Recent changes to rbtree.h may break compilation. There is no
reason to use a liblockdep specific header to begin with, so
we'll use the one shared with all other tools/.
Signed-off-by: Sasha Levin <sasha.levin@oracle.com >
Cc: Linus Torvalds <torvalds@linux-foundation.org >
Cc: Peter Zijlstra <peterz@infradead.org >
Cc: Thomas Gleixner <tglx@linutronix.de >
Link: http://lkml.kernel.org/r/1440479985-6696-3-git-send-email-sasha.levin@oracle.com
Signed-off-by: Ingo Molnar <mingo@kernel.org >
2015-08-25 09:44:23 +02:00
Sasha Levin
62b989de59
tools/liblockdep: Correct macro for WARN
...
As Peter Zijlstra pointed out, the varargs for WARN() are
optional, so we need to correctly handle the case where they
don't exist.
This would cause a compilation error.
Signed-off-by: Sasha Levin <sasha.levin@oracle.com >
Cc: Linus Torvalds <torvalds@linux-foundation.org >
Cc: Peter Zijlstra <peterz@infradead.org >
Cc: Thomas Gleixner <tglx@linutronix.de >
Link: http://lkml.kernel.org/r/1440479985-6696-2-git-send-email-sasha.levin@oracle.com
Signed-off-by: Ingo Molnar <mingo@kernel.org >
2015-08-25 09:44:22 +02:00
Eunbong Song
2480257fb1
tools/liblockdep: Fix compilation error
...
Recent changes to kernel/locking/lockdep.c broke the liblockdep build. Fix
that.
Signed-off-by: Eunbong Song <eunb.song@samsung.com >
Signed-off-by: Sasha Levin <sasha.levin@oracle.com >
2015-05-13 06:12:20 -04:00
Eunbong Song
d1e40e5926
tools/liblockdep: Fix linker error in case of cross compile
...
If we try to cross compile liblockdep, even if we set the CROSS_COMPILE variable
the linker error can occur because LD is not set with CROSS_COMPILE.
This patch adds "LD" can be set automatically with CROSS_COMPILE variable so
fixes linker error problem.
Signed-off-by: Eunbong Song <eunb.song@samsung.com >
Signed-off-by: Sasha Levin <sasha.levin@oracle.com >
2015-05-13 06:09:09 -04:00
Ingo Molnar
e9e4e44309
Merge tag 'v4.0-rc1' into perf/core, to refresh the tree
...
Signed-off-by: Ingo Molnar <mingo@kernel.org >
2015-02-26 12:24:50 +01:00
Jiri Olsa
9244e2c673
tools lib lockdep: Use tools build framework
...
Move the lockdep library building under tools build framework.
Signed-off-by: Jiri Olsa <jolsa@kernel.org >
Cc: Alexis Berlemont <alexis.berlemont@gmail.com >
Cc: Borislav Petkov <bp@alien8.de >
Cc: Corey Ashford <cjashfor@linux.vnet.ibm.com >
Cc: David Ahern <dsahern@gmail.com >
Cc: Frederic Weisbecker <fweisbec@gmail.com >
Cc: Namhyung Kim <namhyung@kernel.org >
Cc: Paul Mackerras <paulus@samba.org >
Cc: Peter Zijlstra <peterz@infradead.org >
Cc: S. Lockwood-Childs <sjl@vctlabs.com >
Cc: Sasha Levin <sasha.levin@oracle.com >
Cc: Stephane Eranian <eranian@google.com >
Link: http://lkml.kernel.org/n/tip-i0t25buqyo5jfvzpw2347h1h@git.kernel.org
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com >
2015-02-12 17:56:01 -03:00
Baruch Siach
8baeccdcb8
tools/liblockdep: don't include host headers
...
Adding host headers to include path may cause unexpected surprises when cross
compiling. Remove /usr/local/include from the default include path.
Signed-off-by: Baruch Siach <baruch@tkos.co.il >
Signed-off-by: Sasha Levin <sasha.levin@oracle.com >
2015-01-29 21:55:19 -05:00
Baruch Siach
7728b352b7
tools/liblockdep: ignore generated .so file
...
Signed-off-by: Baruch Siach <baruch@tkos.co.il >
Signed-off-by: Sasha Levin <sasha.levin@oracle.com >
2015-01-29 21:55:19 -05:00
Kirill Smelkov
95bfdf23e4
tools/liblockdep: Fix debug_check thinko in mutex destroy
...
In mutex destroy code currently we pass to debug_check_no_locks_freed()
[mem_from, mem_end)
address region. But debug_check_no_locks_freed() accepts
mem_from, mem_*len*
i.e. second parameter is region length, not end address. And it was
always so, starting from 2006 (fbb9ce95 "lockdep: core").
Fix it, or else on a mutex destroy we wrongly check
much-wider-than-mutex region and can find not-yet-released other locks
there and wrongly report BUGs on them.
Signed-off-by: Kirill Smelkov <kirr@nexedi.com >
Signed-off-by: Sasha Levin <sasha.levin@oracle.com >
2014-12-19 15:50:55 -05:00
S. Lockwood-Childs
b10827814e
tools/liblockdep: Account for bitfield changes in lockdeps lock_acquire
...
Commit fb9edbe984 shortened held_lock->check from a 2-bit field
to a 1-bit field.
Make liblockdep compatible with the new definition by passing check=1
to lock_acquire() calls, rather than the old value check=2 (which
inadvertently disabled checks by overflowing to 0).
Without this fix, several of the test cases in liblockdep run_tests.sh
were failing.
Signed-off-by: S. Lockwood-Childs <sjl@vctlabs.com >
Signed-off-by: Sasha Levin <sasha.levin@oracle.com >
2014-07-07 12:20:16 -04:00
Sasha Levin
0c37c686b3
tools/liblockdep: Remove debug print left over from development
...
Remove a debug print in init_preload() which was left over from
development and isn't usefull at all currently. It was also causing
false positive test results.
Reported-by: S. Lockwood-Childs <sjl@vctlabs.com >
Signed-off-by: Sasha Levin <sasha.levin@oracle.com >
2014-07-07 12:14:27 -04:00
zhangdianfang
6c642e442e
tools/liblockdep: Fix comparison of a boolean value with a value of 2
...
Comparison of a boolean value (!__init_state) with a value of 2 (done)
as currently happens in the code is unlikely to succeed and causes
repeated initialization of the pthread function pointers.
Instead, remove boolean comparison so that we would initialize said
function pointers only once.
Ref: https://bugzilla.kernel.org/show_bug.cgi?id=76741
Cc: Jean Delvare <jdelvare@suse.de >
Reported-by: David Binderman <dcb314@hotmail.com >
Signed-off-by: Dianfang Zhang <zhangdianfang@huawei.com >
Signed-off-by: Sasha Levin <sasha.levin@oracle.com >
2014-07-07 12:02:21 -04:00