mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: "Barry K. Nathan" <barryn@pobox.com>
To: "Ingo Molnar" <mingo@elte.hu>
Cc: Valdis.Kletnieks@vt.edu, "Andrew Morton" <akpm@osdl.org>,
	arjan@linux.intel.com, linux-kernel@vger.kernel.org,
	reiserfs-dev@namesys.com, "Hans Reiser" <reiser@namesys.com>
Subject: Re: 2.6.17-rc5-mm3: bad unlock ordering (reiser4?)
Date: Mon, 5 Jun 2006 02:00:20 -0700	[thread overview]
Message-ID: <986ed62e0606050200w67514c6ey2794b59b1bd0cbec@mail.gmail.com> (raw)
In-Reply-To: <20060605081220.GA30123@elte.hu>

On 6/5/06, Ingo Molnar <mingo@elte.hu> wrote:
>
> * Barry K. Nathan <barryn@pobox.com> wrote:
[snip]
> > So, does that mean the plan is to annotate/tweak things in order to
> > shut up *each and every* false positive in the kernel?
>
> yes. Note that for the many reasons i outlined before they are only
> "half false positives" - i.e. they are potentially dangerous constructs
> and they are potentially inefficient - hence we _want to_ document them
> in the code, to increase the cleanliness of the kernel. A pure "false
> positive" would be a totally valid and perfect locking construct being
> flagged by the lock validator.
>
> nor do these warnings really hurt anyone. Lockdep prints info and then
> shuts up - the system continues to work.

Ok, thanks for explaining that.

> > Anyway, I tried your patch and I got this:
>
> please try the addon patch below.

I don't know if you saw this comment on the lock validator article at LWN?

---begin quote---
The kernel lock validator
Posted May 31, 2006 9:35 UTC (Wed) by subscriber nix [Link]

... and now reiser4 turns up with a tree of locks where each rank may
be taken within the rank above safely, but where there are a
potentially unbounded number of ranks...
---end quote---

I have no idea if that's actually the case, but if it is, it might be relevant.

Anyway, I have a new, more scary-looking lockdep warning:

http://members.cox.net/barrykn/linux/trace/dmesg.reiser4-4
http://members.cox.net/barrykn/linux/trace/latency_trace_reiser4-4.bz2

[  316.680616] (            smbd-824  |#0): new 239822061 us user-latency.
[  316.680805] stopped custom tracer.
[  316.680951]
[  316.680964] =====================================================
[  316.681241] [ BUG: possible circular locking deadlock detected! ]
[  316.681412] -----------------------------------------------------
[  316.681575] smbd/824 is trying to acquire lock:
[  316.681727]  (&txnh->hlock){--..}, at: [<e09a884a>]
txn_end+0x3f9/0x47c [reiser4]
[  316.682366]
[  316.682379] but task is already holding lock:
[  316.682629]  (&atom->alock){--..}, at: [<e09a78da>]
txnh_get_atom+0x23/0x85 [reiser4]
[  316.683192]
[  316.683206] which lock already depends on the new lock,
[  316.683472] which could lead to circular deadlocks!
[  316.683633]
[  316.683648] the existing dependency chain (in reverse order) is:
[  316.683922]
[  316.683936] -> #1 (&atom->alock){--..}:
[  316.684392]        [<c012f30f>] lockdep_acquire+0x67/0x7f
[  316.685084]        [<c029b67f>] _spin_lock+0x1d/0x2b
[  316.685772]        [<e09a7c0c>] try_capture+0x2d0/0x9cb [reiser4]
[  316.686514]        [<e09a214d>] longterm_lock_znode+0x2fc/0x415 [reiser4]
[  316.687245]        [<e09af884>] coord_by_handle+0x142/0xb76 [reiser4]
[  316.687982]        [<e09b03cc>] coord_by_key+0x55/0x5a [reiser4]
[  316.688714]        [<e09a3ca5>] insert_by_key+0x31/0x5c [reiser4]
[  316.689483]        [<e09bb77d>]
write_sd_by_inode_common+0x117/0x502 [reiser4]
[  316.690340]        [<e09bbb95>] create_object_common+0x2d/0x37 [reiser4]
[  316.691092]        [<e09b8f57>] create_vfs_object+0x376/0x551 [reiser4]
[  316.691841]        [<e09b91bb>] create_common+0x44/0x4b [reiser4]
[  316.692581]        [<c0167a6e>] vfs_create+0x67/0xad
[  316.693259]        [<c016a832>] open_namei+0x19b/0x6cd
[  316.693936]        [<c0158d64>] do_filp_open+0x2b/0x42
[  316.694621]        [<c0158ddc>] do_sys_open+0x61/0xef
[  316.695276]        [<c0158e9d>] sys_open+0x18/0x1a
[  316.695934]        [<c029b8cc>] syscall_call+0x7/0xb
[  316.696629]
[  316.696643] -> #0 (&txnh->hlock){--..}:
[  316.697087]        [<c012f30f>] lockdep_acquire+0x67/0x7f
[  316.697781]        [<c029b67f>] _spin_lock+0x1d/0x2b
[  316.698451]        [<e09a884a>] txn_end+0x3f9/0x47c [reiser4]
[  316.699242]        [<e09a443c>] reiser4_exit_context+0xb2/0x125 [reiser4]
[  316.699981]        [<e09b90f2>] create_vfs_object+0x511/0x551 [reiser4]
[  316.700729]        [<e09b91bb>] create_common+0x44/0x4b [reiser4]
[  316.701467]        [<c0167a6e>] vfs_create+0x67/0xad
[  316.702142]        [<c016a832>] open_namei+0x19b/0x6cd
[  316.702823]        [<c0158d64>] do_filp_open+0x2b/0x42
[  316.703493]        [<c0158ddc>] do_sys_open+0x61/0xef
[  316.704159]        [<c0158e9d>] sys_open+0x18/0x1a
[  316.704831]        [<c029b8cc>] syscall_call+0x7/0xb
[  316.705518]
[  316.705532] other info that might help us debug this:
[  316.705566]
[  316.705936] 2 locks held by smbd/824:
[  316.706085]  #0:  (&inode->i_mutex){--..}, at: [<c0299d58>]
mutex_lock+0xd/0xf
[  316.706654]  #1:  (&atom->alock){--..}, at: [<e09a78da>]
txnh_get_atom+0x23/0x85 [reiser4]
[  316.707335]
[  316.707349] stack backtrace:
[  316.709560]  [<c01032ab>] show_trace_log_lvl+0x64/0x125
[  316.710003]  [<c01038bd>] show_trace+0x1b/0x20
[  316.710421]  [<c0103914>] dump_stack+0x1f/0x24
[  316.710842]  [<c012e400>] print_circular_bug_tail+0x5d/0x69
[  316.712546]  [<c012eca2>] __lockdep_acquire+0x896/0xa91
[  316.714438]  [<c012f30f>] lockdep_acquire+0x67/0x7f
[  316.716133]  [<c029b67f>] _spin_lock+0x1d/0x2b
[  316.717929]  [<e09a884a>] txn_end+0x3f9/0x47c [reiser4]
[  316.718768]  [<e09a443c>] reiser4_exit_context+0xb2/0x125 [reiser4]
[  316.719319]  [<e09b90f2>] create_vfs_object+0x511/0x551 [reiser4]
[  316.720536]  [<e09b91bb>] create_common+0x44/0x4b [reiser4]
[  316.721610]  [<c0167a6e>] vfs_create+0x67/0xad
[  316.724954]  [<c016a832>] open_namei+0x19b/0x6cd
[  316.728125]  [<c0158d64>] do_filp_open+0x2b/0x42
[  316.730886]  [<c0158ddc>] do_sys_open+0x61/0xef
[  316.733473]  [<c0158e9d>] sys_open+0x18/0x1a
[  316.736245]  [<c029b8cc>] syscall_call+0x7/0xb

-- 
-Barry K. Nathan <barryn@pobox.com>

  reply	other threads:[~2006-06-05  9:00 UTC|newest]

Thread overview: 17+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2006-06-04 12:04 Barry K. Nathan
2006-06-04 14:00 ` Barry K. Nathan
2006-06-04 20:33 ` Andrew Morton
2006-06-04 20:56   ` Valdis.Kletnieks
2006-06-04 21:34     ` Ingo Molnar
2006-06-04 22:03       ` Barry K. Nathan
2006-06-05  2:46         ` Hans Reiser
2006-06-05  6:54         ` Ingo Molnar
2006-06-05  7:37           ` Ingo Molnar
2006-06-05 11:22             ` Alexander Zarochentsev
2006-06-05 12:50               ` Ingo Molnar
2006-06-05 23:56                 ` Hans Reiser
2006-06-05  7:58           ` Barry K. Nathan
2006-06-05  8:12             ` Ingo Molnar
2006-06-05  9:00               ` Barry K. Nathan [this message]
2006-06-09 21:39               ` Hans Reiser
2006-06-09 21:36           ` Hans Reiser

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=986ed62e0606050200w67514c6ey2794b59b1bd0cbec@mail.gmail.com \
    --to=barryn@pobox.com \
    --cc=Valdis.Kletnieks@vt.edu \
    --cc=akpm@osdl.org \
    --cc=arjan@linux.intel.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mingo@elte.hu \
    --cc=reiser@namesys.com \
    --cc=reiserfs-dev@namesys.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

all inboxes | Powered by JetHome®