From: Brian Foster <bfoster@redhat.com>
To: xfs@oss.sgi.com
Subject: [PATCH v2 0/2] fix spinlock recursion on xa_lock in xfs_buf_item_push
Date: Wed, 6 Feb 2013 07:44:39 -0500 [thread overview]
Message-ID: <1360154681-28246-1-git-send-email-bfoster@redhat.com> (raw)
Hi all,
Here is v2 of the xa_lock recursion fix[1]. This has survived several days of the
reproduction workload and an xfstests run shows no regressions. Thoughts
appreciated.
Brian
v2:
- Patch 2 is reworked to detect the potential race and defer the log force to
xfsaild by returning XFS_ITEM_PINNED.
[1] - recursion stack trace
BUG: spinlock recursion on CPU#5, xfsaild/dm-3/2690
Pid: 2690, comm: xfsaild/dm-3 Not tainted 3.8.0-rc1+ #46
Call Trace:
[<ffffffff8163211c>] spin_dump+0x8a/0x8f
[<ffffffff81632142>] spin_bug+0x21/0x26
[<ffffffff812f66a1>] do_raw_spin_lock+0x101/0x150
[<ffffffff816378ce>] _raw_spin_lock+0xe/0x10
[<ffffffffa0522c85>] xlog_assign_tail_lsn+0x25/0x50 [xfs]
[<ffffffffa0523286>] xlog_state_release_iclog+0x86/0xd0 [xfs]
[<ffffffffa0523c89>] xlog_write+0x569/0x710 [xfs]
[<ffffffffa052555c>] xlog_cil_push+0x29c/0x3c0 [xfs]
[<ffffffffa04cbfe2>] ? xfs_buf_get_map+0xf2/0x1b0 [xfs]
[<ffffffffa0525d17>] xlog_cil_force_lsn+0x157/0x160 [xfs]
[<ffffffffa04cced1>] ? xfs_buf_read_map+0x31/0x130 [xfs]
[<ffffffffa0529e99>] ? xfs_trans_read_buf_map+0x279/0x4b0 [xfs]
[<ffffffff8117e45d>] ? __kmalloc+0x15d/0x1b0
[<ffffffffa0523f7d>] _xfs_log_force+0x6d/0x290 [xfs]
[<ffffffffa051450f>] ? xfs_iflush_cluster+0x25f/0x3d0 [xfs]
[<ffffffffa05241d9>] xfs_log_force+0x39/0xc0 [xfs]
[<ffffffffa04cbaa0>] xfs_buf_trylock+0xd0/0xe0 [xfs]
[<ffffffffa0526369>] xfs_buf_item_push+0x39/0xd0 [xfs]
[<ffffffffa0527bdf>] ? xfs_inode_item_push+0x8f/0x140 [xfs]
[<ffffffffa0528c01>] xfsaild+0x2e1/0x6e0 [xfs]
[<ffffffff8108aa08>] ? __wake_up_common+0x58/0x90
[<ffffffffa0528920>] ? xfs_trans_ail_cursor_first+0xc0/0xc0 [xfs]
[<ffffffff81081708>] kthread+0xd8/0xe0
[<ffffffff81081630>] ? flush_kthread_work+0x150/0x150
[<ffffffff816400ac>] ret_from_fork+0x7c/0xb0
[<ffffffff81081630>] ? flush_kthread_work+0x150/0x150
Brian Foster (2):
xfs: conditionally force log on trylock failure of pinned/stale buf
xfs: disable log force in xfs_buf_item_push() to avoid xa_lock
recursion
fs/xfs/xfs_buf.c | 8 +++++---
fs/xfs/xfs_buf.h | 3 ++-
fs/xfs/xfs_buf_item.c | 14 +++++++++++++-
3 files changed, 20 insertions(+), 5 deletions(-)
--
1.7.7.6
_______________________________________________
xfs mailing list
xfs@oss.sgi.com
http://oss.sgi.com/mailman/listinfo/xfs
next reply other threads:[~2013-02-06 12:41 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-02-06 12:44 Brian Foster [this message]
2013-02-06 12:44 ` [PATCH v2 1/2] xfs: conditionally force log on trylock failure of pinned/stale buf Brian Foster
2013-02-06 20:24 ` Mark Tinguely
2013-02-07 0:57 ` Dave Chinner
2013-02-06 12:44 ` [PATCH v2 2/2] xfs: disable log force in xfs_buf_item_push() to avoid xa_lock recursion Brian Foster
2013-02-06 20:25 ` Mark Tinguely
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=1360154681-28246-1-git-send-email-bfoster@redhat.com \
--to=bfoster@redhat.com \
--cc=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