From: Nathan Scott <nathans@sgi.com>
To: Janos Haar <djani22@netcenter.hu>
Cc: linux-kernel@vger.kernel.org, linux-xfs@oss.sgi.com
Subject: XFS related hang (was Re: How to send a break? - dump from frozen 64bit linux)
Date: Wed, 31 May 2006 14:38:49 +1000 [thread overview]
Message-ID: <20060531143849.C478554@wobbly.melbourne.sgi.com> (raw)
In-Reply-To: <1149038431.21827.20.camel@localhost.localdomain>; from rostedt@goodmis.org on Tue, May 30, 2006 at 09:20:31PM -0400
On Tue, May 30, 2006 at 09:20:31PM -0400, Steven Rostedt wrote:
> Added all those listed in the MAINTAINERS file for XFS.
Thanks Steve.
> On Tue, 2006-05-30 at 15:03 -0400, Valdis.Kletnieks@vt.edu wrote:
> > On Tue, 30 May 2006 12:22:01 +0200, Janos Haar said:
> > Half the processes on the box seem wedged at that same mutex_lock. I can't
> > seem to find an xfs_qm_shake in my source tree though.
Its in fs/xfs/quota/xfs_qm.c.
> kswapd0 D ffff81011fe03c38 0 297 1 1287 19 (L-TLB)
> ffff81011fe03c38 0000000000000004 000000000000000a ffff81011f92ba68
> ffff81011f92b850 ffffffff805a23a0 0000149f99fa7d7c 000000000003bcde
> 000000002f2c46e0 ffff81008bc37180
> Call Trace: <ffffffff804e5522>{schedule_timeout+34}
> <ffffffff80269f87>{xfs_qm_dqunpin_wait+220} <ffffffff80140e74>{debug_mutex_free_waiter+141}
So, we're waiting here on a synchronisation variable that'll
be released once the dquot metadata buffer write completes.
> So it is now waiting to be woken up by something that calls:
>
> xfs_qm_dquot_logitem_unpin which seems to be the function to wake it
> up.
Mhmm, that'd be called by the I/O completion handler on the buffer
containing that dquot.
> And decyphering all the macro crap it seems that the function that wakes
> it up is xfs_trans_chunk_committed, or xfs_trans_uncommit.
Right (the former, at this point in the code).
> The above xfs_qm_dqunpin_wait still looks awfully racy, and the
> xfs_log_force, which I'm assuming wakes up whoever is suppose to wake up
> kswapd0, doesn't have a return code check. So if it failed to do
The logforce isn't race-critical here - its ensuring writeout
of previously logged buffers is started before we go to sleep
waiting for the driver to wake us up when its done.
An earlier I/O error on the journal is the only thing the log
force can return as an error there, which isnt useful at that
point anyway (we're in a kernel thread trying to free mem).
> whatever the hell it's doing (that code gives me a headache), it looks
Heh, likewise. I have voodoo dolls of one or two of the early
XFS folks that I like to poke with needles occasionally.. :)
> like this guy might sleep forever holding a lock that will prevent
> others from freeing kernel memory.
It will sleep until the previously initiated buffer write is done.
AFAICT, we aren't seeing the I/O completion here for some reason...
which points more to a possible device driver or h/ware issue (that
is the usual root cause of this sort of hang, anyway).
cheers.
--
Nathan
next prev parent reply other threads:[~2006-05-31 4:39 UTC|newest]
Thread overview: 26+ messages / expand[flat|nested] mbox.gz Atom feed top
2006-05-27 12:58 How to send a break? Haar János
2006-05-27 23:43 ` Jim Crilly
2006-05-28 7:04 ` How to send a break? - dump from frozen 64bit linux Haar János
2006-05-28 16:17 ` Jesper Juhl
2006-05-28 17:34 ` Haar János
2006-05-29 4:37 ` Jesper Juhl
2007-08-20 7:44 ` Andev Debi
2006-05-30 10:22 ` Janos Haar
2006-05-30 19:03 ` Valdis.Kletnieks
2006-05-30 21:44 ` Janos Haar
2006-05-31 1:20 ` Steven Rostedt
2006-05-31 4:38 ` Nathan Scott [this message]
2006-05-31 8:00 ` XFS related hang (was Re: How to send a break? - dump from frozen 64bit linux) Janos Haar
2006-05-31 21:54 ` Jan Engelhardt
2006-06-01 7:29 ` Janos Haar
2006-06-01 9:44 ` Jan Engelhardt
2006-06-01 22:04 ` Nathan Scott
2006-06-02 5:11 ` Jan Engelhardt
2006-06-01 21:58 ` Nathan Scott
2006-06-01 22:14 ` Janos Haar
2006-06-01 23:43 ` Nathan Scott
2006-06-02 8:01 ` Janos Haar
2006-05-28 23:06 ` How to send a break? H. Peter Anvin
2006-05-29 15:08 ` linux-os (Dick Johnson)
2006-05-29 15:35 ` Valdis.Kletnieks
2006-05-29 17:32 ` Haar János
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=20060531143849.C478554@wobbly.melbourne.sgi.com \
--to=nathans@sgi.com \
--cc=djani22@netcenter.hu \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-xfs@oss.sgi.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
Powered by JetHome