<feed xmlns='http://www.w3.org/2005/Atom'>
<title>linux-toradex.git/kernel/lockdep_internals.h, branch v2.6.32.2</title>
<subtitle>Linux kernel for Apalis and Colibri modules</subtitle>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/'/>
<entry>
<title>lockdep: BFS cleanup</title>
<updated>2009-07-24T08:53:29+00:00</updated>
<author>
<name>Peter Zijlstra</name>
<email>a.p.zijlstra@chello.nl</email>
</author>
<published>2009-07-16T13:44:29+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=af012961450949ea297b209e091bd1a3805b8a0a'/>
<id>af012961450949ea297b209e091bd1a3805b8a0a</id>
<content type='text'>
Some cleanups of the lockdep code after the BFS series:

 - Remove the last traces of the generation id
 - Fixup comment style
 - Move the bfs routines into lockdep.c
 - Cleanup the bfs routines

[ tom.leiming@gmail.com: Fix crash ]
Signed-off-by: Peter Zijlstra &lt;a.p.zijlstra@chello.nl&gt;
LKML-Reference: &lt;1246201486-7308-11-git-send-email-tom.leiming@gmail.com&gt;
Signed-off-by: Ingo Molnar &lt;mingo@elte.hu&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Some cleanups of the lockdep code after the BFS series:

 - Remove the last traces of the generation id
 - Fixup comment style
 - Move the bfs routines into lockdep.c
 - Cleanup the bfs routines

[ tom.leiming@gmail.com: Fix crash ]
Signed-off-by: Peter Zijlstra &lt;a.p.zijlstra@chello.nl&gt;
LKML-Reference: &lt;1246201486-7308-11-git-send-email-tom.leiming@gmail.com&gt;
Signed-off-by: Ingo Molnar &lt;mingo@elte.hu&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>lockdep: Add statistics info for max bfs queue depth</title>
<updated>2009-07-24T08:52:03+00:00</updated>
<author>
<name>Ming Lei</name>
<email>tom.leiming@gmail.com</email>
</author>
<published>2009-07-16T13:44:29+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=12f3dfd022d7e616757a94f0538d3d525d806a16'/>
<id>12f3dfd022d7e616757a94f0538d3d525d806a16</id>
<content type='text'>
Add BFS statistics to the existing lockdep stats.

Signed-off-by: Ming Lei &lt;tom.leiming@gmail.com&gt;
Signed-off-by: Peter Zijlstra &lt;a.p.zijlstra@chello.nl&gt;
LKML-Reference: &lt;1246201486-7308-10-git-send-email-tom.leiming@gmail.com&gt;
Signed-off-by: Ingo Molnar &lt;mingo@elte.hu&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Add BFS statistics to the existing lockdep stats.

Signed-off-by: Ming Lei &lt;tom.leiming@gmail.com&gt;
Signed-off-by: Peter Zijlstra &lt;a.p.zijlstra@chello.nl&gt;
LKML-Reference: &lt;1246201486-7308-10-git-send-email-tom.leiming@gmail.com&gt;
Signed-off-by: Ingo Molnar &lt;mingo@elte.hu&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>lockdep: Introduce print_shortest_lock_dependencies</title>
<updated>2009-07-24T08:49:54+00:00</updated>
<author>
<name>Ming Lei</name>
<email>tom.leiming@gmail.com</email>
</author>
<published>2009-07-16T13:44:29+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=24208ca76707581a097c01a73fd63781e73d3404'/>
<id>24208ca76707581a097c01a73fd63781e73d3404</id>
<content type='text'>
Since the shortest lock dependencies' path may be obtained by BFS,
we print the shortest one by print_shortest_lock_dependencies().

Signed-off-by: Ming Lei &lt;tom.leiming@gmail.com&gt;
Signed-off-by: Peter Zijlstra &lt;a.p.zijlstra@chello.nl&gt;
LKML-Reference: &lt;1246201486-7308-7-git-send-email-tom.leiming@gmail.com&gt;
Signed-off-by: Ingo Molnar &lt;mingo@elte.hu&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Since the shortest lock dependencies' path may be obtained by BFS,
we print the shortest one by print_shortest_lock_dependencies().

Signed-off-by: Ming Lei &lt;tom.leiming@gmail.com&gt;
Signed-off-by: Peter Zijlstra &lt;a.p.zijlstra@chello.nl&gt;
LKML-Reference: &lt;1246201486-7308-7-git-send-email-tom.leiming@gmail.com&gt;
Signed-off-by: Ingo Molnar &lt;mingo@elte.hu&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>lockdep: Improve implementation of BFS</title>
<updated>2009-07-24T08:49:46+00:00</updated>
<author>
<name>Ming Lei</name>
<email>tom.leiming@gmail.com</email>
</author>
<published>2009-07-16T13:44:29+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=d588e46155e9c51217b9840db1e94a0f594c1af2'/>
<id>d588e46155e9c51217b9840db1e94a0f594c1af2</id>
<content type='text'>
1,replace %MAX_CIRCULAR_QUE_SIZE with &amp;(MAX_CIRCULAR_QUE_SIZE-1)
since we define MAX_CIRCULAR_QUE_SIZE as power of 2;

2,use bitmap to mark if a lock is accessed in BFS in order to
clear it quickly, because we may search a graph many times.

Signed-off-by: Ming Lei &lt;tom.leiming@gmail.com&gt;
Signed-off-by: Peter Zijlstra &lt;a.p.zijlstra@chello.nl&gt;
LKML-Reference: &lt;1246201486-7308-3-git-send-email-tom.leiming@gmail.com&gt;
Signed-off-by: Ingo Molnar &lt;mingo@elte.hu&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
1,replace %MAX_CIRCULAR_QUE_SIZE with &amp;(MAX_CIRCULAR_QUE_SIZE-1)
since we define MAX_CIRCULAR_QUE_SIZE as power of 2;

2,use bitmap to mark if a lock is accessed in BFS in order to
clear it quickly, because we may search a graph many times.

Signed-off-by: Ming Lei &lt;tom.leiming@gmail.com&gt;
Signed-off-by: Peter Zijlstra &lt;a.p.zijlstra@chello.nl&gt;
LKML-Reference: &lt;1246201486-7308-3-git-send-email-tom.leiming@gmail.com&gt;
Signed-off-by: Ingo Molnar &lt;mingo@elte.hu&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>lockdep: Print the shortest dependency chain if finding a circle</title>
<updated>2009-07-24T08:49:44+00:00</updated>
<author>
<name>Ming Lei</name>
<email>tom.leiming@gmail.com</email>
</author>
<published>2009-07-16T13:44:29+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=c94aa5ca3088018d2a7a9bd3258aefffe29df265'/>
<id>c94aa5ca3088018d2a7a9bd3258aefffe29df265</id>
<content type='text'>
Currently lockdep will print the 1st circle detected if it
exists when acquiring a new (next) lock.

This patch prints the shortest path from the next lock to be
acquired to the previous held lock if a circle is found.

The patch still uses the current method to check circle, and
once the circle is found, breadth-first search algorithem is
used to compute the shortest path from the next lock to the
previous lock in the forward lock dependency graph.

Printing the shortest path will shorten the dependency chain,
and make troubleshooting for possible circular locking easier.

Signed-off-by: Ming Lei &lt;tom.leiming@gmail.com&gt;
Signed-off-by: Peter Zijlstra &lt;a.p.zijlstra@chello.nl&gt;
LKML-Reference: &lt;1246201486-7308-2-git-send-email-tom.leiming@gmail.com&gt;
Signed-off-by: Ingo Molnar &lt;mingo@elte.hu&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Currently lockdep will print the 1st circle detected if it
exists when acquiring a new (next) lock.

This patch prints the shortest path from the next lock to be
acquired to the previous held lock if a circle is found.

The patch still uses the current method to check circle, and
once the circle is found, breadth-first search algorithem is
used to compute the shortest path from the next lock to the
previous lock in the forward lock dependency graph.

Printing the shortest path will shorten the dependency chain,
and make troubleshooting for possible circular locking easier.

Signed-off-by: Ming Lei &lt;tom.leiming@gmail.com&gt;
Signed-off-by: Peter Zijlstra &lt;a.p.zijlstra@chello.nl&gt;
LKML-Reference: &lt;1246201486-7308-2-git-send-email-tom.leiming@gmail.com&gt;
Signed-off-by: Ingo Molnar &lt;mingo@elte.hu&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>lockdep: increase MAX_LOCKDEP_ENTRIES and MAX_LOCKDEP_CHAINS</title>
<updated>2009-05-12T17:59:52+00:00</updated>
<author>
<name>Ingo Molnar</name>
<email>mingo@elte.hu</email>
</author>
<published>2009-05-12T14:29:13+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=d80c19df5fcceb8c741e96f09f275c2da719efef'/>
<id>d80c19df5fcceb8c741e96f09f275c2da719efef</id>
<content type='text'>
Now that lockdep coverage has increased it has become easier to
run out of entries:

[   21.401387] BUG: MAX_LOCKDEP_ENTRIES too low!
[   21.402007] turning off the locking correctness validator.
[   21.402007] Pid: 1555, comm: S99local Not tainted 2.6.30-rc5-tip #2
[   21.402007] Call Trace:
[   21.402007]  [&lt;ffffffff81069789&gt;] add_lock_to_list+0x53/0xba
[   21.402007]  [&lt;ffffffff810eb615&gt;] ? lookup_mnt+0x19/0x53
[   21.402007]  [&lt;ffffffff8106be14&gt;] check_prev_add+0x14b/0x1c7
[   21.402007]  [&lt;ffffffff8106c304&gt;] validate_chain+0x474/0x52a
[   21.402007]  [&lt;ffffffff8106c6fc&gt;] __lock_acquire+0x342/0x3c7
[   21.402007]  [&lt;ffffffff8106c842&gt;] lock_acquire+0xc1/0xe5
[   21.402007]  [&lt;ffffffff810eb615&gt;] ? lookup_mnt+0x19/0x53
[   21.402007]  [&lt;ffffffff8153aedc&gt;] _spin_lock+0x31/0x66

Double the size - as we've done in the past.

[ Impact: allow lockdep to cover more locks ]

Acked-by: Peter Zijlstra &lt;a.p.zijlstra@chello.nl&gt;
LKML-Reference: &lt;new-submission&gt;
Signed-off-by: Ingo Molnar &lt;mingo@elte.hu&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Now that lockdep coverage has increased it has become easier to
run out of entries:

[   21.401387] BUG: MAX_LOCKDEP_ENTRIES too low!
[   21.402007] turning off the locking correctness validator.
[   21.402007] Pid: 1555, comm: S99local Not tainted 2.6.30-rc5-tip #2
[   21.402007] Call Trace:
[   21.402007]  [&lt;ffffffff81069789&gt;] add_lock_to_list+0x53/0xba
[   21.402007]  [&lt;ffffffff810eb615&gt;] ? lookup_mnt+0x19/0x53
[   21.402007]  [&lt;ffffffff8106be14&gt;] check_prev_add+0x14b/0x1c7
[   21.402007]  [&lt;ffffffff8106c304&gt;] validate_chain+0x474/0x52a
[   21.402007]  [&lt;ffffffff8106c6fc&gt;] __lock_acquire+0x342/0x3c7
[   21.402007]  [&lt;ffffffff8106c842&gt;] lock_acquire+0xc1/0xe5
[   21.402007]  [&lt;ffffffff810eb615&gt;] ? lookup_mnt+0x19/0x53
[   21.402007]  [&lt;ffffffff8153aedc&gt;] _spin_lock+0x31/0x66

Double the size - as we've done in the past.

[ Impact: allow lockdep to cover more locks ]

Acked-by: Peter Zijlstra &lt;a.p.zijlstra@chello.nl&gt;
LKML-Reference: &lt;new-submission&gt;
Signed-off-by: Ingo Molnar &lt;mingo@elte.hu&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>lockdep: get_user_chars() redo</title>
<updated>2009-02-14T22:28:22+00:00</updated>
<author>
<name>Peter Zijlstra</name>
<email>a.p.zijlstra@chello.nl</email>
</author>
<published>2009-01-22T16:53:47+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=f510b233cfc7bfd57b6007071c52aa42e3d16b06'/>
<id>f510b233cfc7bfd57b6007071c52aa42e3d16b06</id>
<content type='text'>
Generic, states independent, get_user_chars().

Signed-off-by: Peter Zijlstra &lt;a.p.zijlstra@chello.nl&gt;
Signed-off-by: Ingo Molnar &lt;mingo@elte.hu&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Generic, states independent, get_user_chars().

Signed-off-by: Peter Zijlstra &lt;a.p.zijlstra@chello.nl&gt;
Signed-off-by: Ingo Molnar &lt;mingo@elte.hu&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>lockdep: generate the state bit definitions</title>
<updated>2009-02-14T22:28:01+00:00</updated>
<author>
<name>Peter Zijlstra</name>
<email>a.p.zijlstra@chello.nl</email>
</author>
<published>2009-01-22T13:38:38+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=d7b1b02134272840f4b655136e00c461e1cf1d53'/>
<id>d7b1b02134272840f4b655136e00c461e1cf1d53</id>
<content type='text'>
Generate the state bit definitions from the lockdep_states.h file.

Also, move LOCK_USED to last, so that the

 USED_IN
 USED_IN_READ
 ENABLED
 ENABLED_READ

states are nicely bit aligned -- we're going to use that property

Signed-off-by: Peter Zijlstra &lt;a.p.zijlstra@chello.nl&gt;
Signed-off-by: Ingo Molnar &lt;mingo@elte.hu&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Generate the state bit definitions from the lockdep_states.h file.

Also, move LOCK_USED to last, so that the

 USED_IN
 USED_IN_READ
 ENABLED
 ENABLED_READ

states are nicely bit aligned -- we're going to use that property

Signed-off-by: Peter Zijlstra &lt;a.p.zijlstra@chello.nl&gt;
Signed-off-by: Ingo Molnar &lt;mingo@elte.hu&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>lockdep: move state bit definitions around</title>
<updated>2009-02-14T22:27:59+00:00</updated>
<author>
<name>Peter Zijlstra</name>
<email>a.p.zijlstra@chello.nl</email>
</author>
<published>2009-01-22T13:18:40+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=9851673bc32bc9fcafbbaeffc858ead434bd6d58'/>
<id>9851673bc32bc9fcafbbaeffc858ead434bd6d58</id>
<content type='text'>
For convenience later.

Signed-off-by: Peter Zijlstra &lt;a.p.zijlstra@chello.nl&gt;
Signed-off-by: Ingo Molnar &lt;mingo@elte.hu&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
For convenience later.

Signed-off-by: Peter Zijlstra &lt;a.p.zijlstra@chello.nl&gt;
Signed-off-by: Ingo Molnar &lt;mingo@elte.hu&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>lockdep: annotate reclaim context (__GFP_NOFS)</title>
<updated>2009-02-14T22:27:49+00:00</updated>
<author>
<name>Nick Piggin</name>
<email>npiggin@suse.de</email>
</author>
<published>2009-01-21T07:12:39+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=cf40bd16fdad42c053040bcd3988f5fdedbb6c57'/>
<id>cf40bd16fdad42c053040bcd3988f5fdedbb6c57</id>
<content type='text'>
Here is another version, with the incremental patch rolled up, and
added reclaim context annotation to kswapd, and allocation tracing
to slab allocators (which may only ever reach the page allocator
in rare cases, so it is good to put annotations here too).

Haven't tested this version as such, but it should be getting closer
to merge worthy ;)

--
After noticing some code in mm/filemap.c accidentally perform a __GFP_FS
allocation when it should not have been, I thought it might be a good idea to
try to catch this kind of thing with lockdep.

I coded up a little idea that seems to work. Unfortunately the system has to
actually be in __GFP_FS page reclaim, then take the lock, before it will mark
it. But at least that might still be some orders of magnitude more common
(and more debuggable) than an actual deadlock condition, so we have some
improvement I hope (the concept is no less complete than discovery of a lock's
interrupt contexts).

I guess we could even do the same thing with __GFP_IO (normal reclaim), and
even GFP_NOIO locks too... but filesystems will have the most locks and fiddly
code paths, so let's start there and see how it goes.

It *seems* to work. I did a quick test.

=================================
[ INFO: inconsistent lock state ]
2.6.28-rc6-00007-ged31348-dirty #26
---------------------------------
inconsistent {in-reclaim-W} -&gt; {ov-reclaim-W} usage.
modprobe/8526 [HC0[0]:SC0[0]:HE1:SE1] takes:
 (testlock){--..}, at: [&lt;ffffffffa0020055&gt;] brd_init+0x55/0x216 [brd]
{in-reclaim-W} state was registered at:
  [&lt;ffffffff80267bdb&gt;] __lock_acquire+0x75b/0x1a60
  [&lt;ffffffff80268f71&gt;] lock_acquire+0x91/0xc0
  [&lt;ffffffff8070f0e1&gt;] mutex_lock_nested+0xb1/0x310
  [&lt;ffffffffa002002b&gt;] brd_init+0x2b/0x216 [brd]
  [&lt;ffffffff8020903b&gt;] _stext+0x3b/0x170
  [&lt;ffffffff80272ebf&gt;] sys_init_module+0xaf/0x1e0
  [&lt;ffffffff8020c3fb&gt;] system_call_fastpath+0x16/0x1b
  [&lt;ffffffffffffffff&gt;] 0xffffffffffffffff
irq event stamp: 3929
hardirqs last  enabled at (3929): [&lt;ffffffff8070f2b5&gt;] mutex_lock_nested+0x285/0x310
hardirqs last disabled at (3928): [&lt;ffffffff8070f089&gt;] mutex_lock_nested+0x59/0x310
softirqs last  enabled at (3732): [&lt;ffffffff8061f623&gt;] sk_filter+0x83/0xe0
softirqs last disabled at (3730): [&lt;ffffffff8061f5b6&gt;] sk_filter+0x16/0xe0

other info that might help us debug this:
1 lock held by modprobe/8526:
 #0:  (testlock){--..}, at: [&lt;ffffffffa0020055&gt;] brd_init+0x55/0x216 [brd]

stack backtrace:
Pid: 8526, comm: modprobe Not tainted 2.6.28-rc6-00007-ged31348-dirty #26
Call Trace:
 [&lt;ffffffff80265483&gt;] print_usage_bug+0x193/0x1d0
 [&lt;ffffffff80266530&gt;] mark_lock+0xaf0/0xca0
 [&lt;ffffffff80266735&gt;] mark_held_locks+0x55/0xc0
 [&lt;ffffffffa0020000&gt;] ? brd_init+0x0/0x216 [brd]
 [&lt;ffffffff802667ca&gt;] trace_reclaim_fs+0x2a/0x60
 [&lt;ffffffff80285005&gt;] __alloc_pages_internal+0x475/0x580
 [&lt;ffffffff8070f29e&gt;] ? mutex_lock_nested+0x26e/0x310
 [&lt;ffffffffa0020000&gt;] ? brd_init+0x0/0x216 [brd]
 [&lt;ffffffffa002006a&gt;] brd_init+0x6a/0x216 [brd]
 [&lt;ffffffffa0020000&gt;] ? brd_init+0x0/0x216 [brd]
 [&lt;ffffffff8020903b&gt;] _stext+0x3b/0x170
 [&lt;ffffffff8070f8b9&gt;] ? mutex_unlock+0x9/0x10
 [&lt;ffffffff8070f83d&gt;] ? __mutex_unlock_slowpath+0x10d/0x180
 [&lt;ffffffff802669ec&gt;] ? trace_hardirqs_on_caller+0x12c/0x190
 [&lt;ffffffff80272ebf&gt;] sys_init_module+0xaf/0x1e0
 [&lt;ffffffff8020c3fb&gt;] system_call_fastpath+0x16/0x1b

Signed-off-by: Nick Piggin &lt;npiggin@suse.de&gt;
Signed-off-by: Peter Zijlstra &lt;a.p.zijlstra@chello.nl&gt;
Signed-off-by: Ingo Molnar &lt;mingo@elte.hu&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Here is another version, with the incremental patch rolled up, and
added reclaim context annotation to kswapd, and allocation tracing
to slab allocators (which may only ever reach the page allocator
in rare cases, so it is good to put annotations here too).

Haven't tested this version as such, but it should be getting closer
to merge worthy ;)

--
After noticing some code in mm/filemap.c accidentally perform a __GFP_FS
allocation when it should not have been, I thought it might be a good idea to
try to catch this kind of thing with lockdep.

I coded up a little idea that seems to work. Unfortunately the system has to
actually be in __GFP_FS page reclaim, then take the lock, before it will mark
it. But at least that might still be some orders of magnitude more common
(and more debuggable) than an actual deadlock condition, so we have some
improvement I hope (the concept is no less complete than discovery of a lock's
interrupt contexts).

I guess we could even do the same thing with __GFP_IO (normal reclaim), and
even GFP_NOIO locks too... but filesystems will have the most locks and fiddly
code paths, so let's start there and see how it goes.

It *seems* to work. I did a quick test.

=================================
[ INFO: inconsistent lock state ]
2.6.28-rc6-00007-ged31348-dirty #26
---------------------------------
inconsistent {in-reclaim-W} -&gt; {ov-reclaim-W} usage.
modprobe/8526 [HC0[0]:SC0[0]:HE1:SE1] takes:
 (testlock){--..}, at: [&lt;ffffffffa0020055&gt;] brd_init+0x55/0x216 [brd]
{in-reclaim-W} state was registered at:
  [&lt;ffffffff80267bdb&gt;] __lock_acquire+0x75b/0x1a60
  [&lt;ffffffff80268f71&gt;] lock_acquire+0x91/0xc0
  [&lt;ffffffff8070f0e1&gt;] mutex_lock_nested+0xb1/0x310
  [&lt;ffffffffa002002b&gt;] brd_init+0x2b/0x216 [brd]
  [&lt;ffffffff8020903b&gt;] _stext+0x3b/0x170
  [&lt;ffffffff80272ebf&gt;] sys_init_module+0xaf/0x1e0
  [&lt;ffffffff8020c3fb&gt;] system_call_fastpath+0x16/0x1b
  [&lt;ffffffffffffffff&gt;] 0xffffffffffffffff
irq event stamp: 3929
hardirqs last  enabled at (3929): [&lt;ffffffff8070f2b5&gt;] mutex_lock_nested+0x285/0x310
hardirqs last disabled at (3928): [&lt;ffffffff8070f089&gt;] mutex_lock_nested+0x59/0x310
softirqs last  enabled at (3732): [&lt;ffffffff8061f623&gt;] sk_filter+0x83/0xe0
softirqs last disabled at (3730): [&lt;ffffffff8061f5b6&gt;] sk_filter+0x16/0xe0

other info that might help us debug this:
1 lock held by modprobe/8526:
 #0:  (testlock){--..}, at: [&lt;ffffffffa0020055&gt;] brd_init+0x55/0x216 [brd]

stack backtrace:
Pid: 8526, comm: modprobe Not tainted 2.6.28-rc6-00007-ged31348-dirty #26
Call Trace:
 [&lt;ffffffff80265483&gt;] print_usage_bug+0x193/0x1d0
 [&lt;ffffffff80266530&gt;] mark_lock+0xaf0/0xca0
 [&lt;ffffffff80266735&gt;] mark_held_locks+0x55/0xc0
 [&lt;ffffffffa0020000&gt;] ? brd_init+0x0/0x216 [brd]
 [&lt;ffffffff802667ca&gt;] trace_reclaim_fs+0x2a/0x60
 [&lt;ffffffff80285005&gt;] __alloc_pages_internal+0x475/0x580
 [&lt;ffffffff8070f29e&gt;] ? mutex_lock_nested+0x26e/0x310
 [&lt;ffffffffa0020000&gt;] ? brd_init+0x0/0x216 [brd]
 [&lt;ffffffffa002006a&gt;] brd_init+0x6a/0x216 [brd]
 [&lt;ffffffffa0020000&gt;] ? brd_init+0x0/0x216 [brd]
 [&lt;ffffffff8020903b&gt;] _stext+0x3b/0x170
 [&lt;ffffffff8070f8b9&gt;] ? mutex_unlock+0x9/0x10
 [&lt;ffffffff8070f83d&gt;] ? __mutex_unlock_slowpath+0x10d/0x180
 [&lt;ffffffff802669ec&gt;] ? trace_hardirqs_on_caller+0x12c/0x190
 [&lt;ffffffff80272ebf&gt;] sys_init_module+0xaf/0x1e0
 [&lt;ffffffff8020c3fb&gt;] system_call_fastpath+0x16/0x1b

Signed-off-by: Nick Piggin &lt;npiggin@suse.de&gt;
Signed-off-by: Peter Zijlstra &lt;a.p.zijlstra@chello.nl&gt;
Signed-off-by: Ingo Molnar &lt;mingo@elte.hu&gt;
</pre>
</div>
</content>
</entry>
</feed>
