From: Ryusuke Konishi <konishi.ryusuke@lab.ntt.co.jp>
To: bonbons@linux-vserver.org
Cc: konishi.ryusuke@lab.ntt.co.jp, users@nilfs.org,
linux-fsdevel@vger.kernel.org, ryusuke@osrg.net
Subject: Re: Deadlock with nilfs on 2.6.31.4
Date: Tue, 03 Nov 2009 02:05:02 +0900 (JST) [thread overview]
Message-ID: <20091103.020502.126745214.ryusuke@osrg.net> (raw)
In-Reply-To: <20091022221939.61c832c2@neptune.home>
Hi Bruno,
On Thu, 22 Oct 2009 22:19:39 +0200, Bruno Prémont <bonbons@linux-vserver.org> wrote:
> On Fri, 23 October 2009 Ryusuke Konishi <konishi.ryusuke@lab.ntt.co.jp> wrote:
> > Thank you for reporting the issue.
> >
> > According to the log, the log-writer of nilfs looks to be idle even
> > though it has some requests waiting.
> >
> > Could you try the following patch to narrow down the issue ?
> >
> > I'll dig into this issue next week since I'm now away from my office
> > to attend the Linux symposium in Tokyo.
> >
> > Thank you,
> > Ryusuke Konishi
> >
> >
> > diff --git a/fs/nilfs2/segment.c b/fs/nilfs2/segment.c
> > index 51ff3d0..0932571 100644
> > --- a/fs/nilfs2/segment.c
> > +++ b/fs/nilfs2/segment.c
>
> I tried the patch, below is full dmesg output from system start-up to
> frozen syslog-ng (and collectd thread). (with echo t > /proc/sysrq-trigger)
>
> Hard to tell at what time syslog-ng did freeze, but chances are big it's
> somewhere between 435.x and 591.x when nilfs stops sending/getting events.
>
> The collectd instance in D-state is most probably the one that wants to
> write data to RRD file.
>
> At least it looks very easy to reproduce! Just restarting collectd a few
> times and enabling its rrdtool plugin. (syslog-ng writing to one nilfs
> partition, collectd to another one, both on the same SD card)
>
> Bruno
>
<snip>
I found the cause of the hang issue reported on ARM targets.
The following patch would fix the issue.
It resolved hang problem on my Feroceon based Linux box.
Could you try if the patch fixes the hang of yours ?
Thanks,
Ryusuke Konishi
--
From: Ryusuke Konishi <konishi.ryusuke@lab.ntt.co.jp>
nilfs2: fix dirty page accounting leak causing hang at write
Some users experienced a consistent hang while using NILFS on
ARM-based targets.
I found this was caused by an underflow of dirty pages counter. A
b-tree cache routine was marking page dirty without adjusting page
account information.
This fixes the dirty page accounting leak and resolves the hang on
arm-based targets.
Reported-by: Bruno Premont <bonbons@linux-vserver.org>
Reported-by: Dunphy, Bill <WDunphy@tandbergdata.com>
Signed-off-by: Ryusuke Konishi <konishi.ryusuke@lab.ntt.co.jp>
---
fs/nilfs2/btnode.c | 3 +--
1 files changed, 1 insertions(+), 2 deletions(-)
diff --git a/fs/nilfs2/btnode.c b/fs/nilfs2/btnode.c
index 5941958..435864c 100644
--- a/fs/nilfs2/btnode.c
+++ b/fs/nilfs2/btnode.c
@@ -276,8 +276,7 @@ void nilfs_btnode_commit_change_key(struct address_space *btnc,
"invalid oldkey %lld (newkey=%lld)",
(unsigned long long)oldkey,
(unsigned long long)newkey);
- if (!test_set_buffer_dirty(obh) && TestSetPageDirty(opage))
- BUG();
+ nilfs_btnode_mark_dirty(obh);
spin_lock_irq(&btnc->tree_lock);
radix_tree_delete(&btnc->page_tree, oldkey);
--
To unsubscribe from this list: send the line "unsubscribe linux-fsdevel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
next prev parent reply other threads:[~2009-11-02 17:05 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-10-21 18:38 Deadlock with nilfs on 2.6.31.4 Bruno Prémont
2009-10-22 17:51 ` Ryusuke Konishi
2009-10-22 20:19 ` Bruno Prémont
2009-11-02 17:05 ` Ryusuke Konishi [this message]
2009-11-02 21:32 ` Bruno Prémont
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=20091103.020502.126745214.ryusuke@osrg.net \
--to=konishi.ryusuke@lab.ntt.co.jp \
--cc=bonbons@linux-vserver.org \
--cc=linux-fsdevel@vger.kernel.org \
--cc=ryusuke@osrg.net \
--cc=users@nilfs.org \
/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