public inbox for linux-xfs@vger.kernel.org
 help / color / mirror / Atom feed
From: "Bhagi rathi" <jahnu77@gmail.com>
To: Lachlan McIlroy <lachlan@sgi.com>
Cc: sgi.bugs.xfs@engr.sgi.com, xfs@oss.sgi.com
Subject: Re: TAKE 981498 - Use KM_NOFS for debug trace buffers
Date: Wed, 6 Aug 2008 22:42:15 +0530	[thread overview]
Message-ID: <cc7060690808061012x43511581m15c794e72129becc@mail.gmail.com> (raw)
In-Reply-To: <20080806061553.A8D8958C52A4@chook.melbourne.sgi.com>

I couldn't get a chance to read the diff's completely. If I click on
Lachlan's url for diff's, I couldn't access them. It looks to me that
the issue is not just with trace buffers. It can extend to xfs_iformat
as well. The same dead-lock can spring via

xfs_iread -> xfs_iformat -> xfs_iformat_extents -> xfs_iext_add ->
xfs_iext_inline_to_direct -> which can do kmem_alloc with
KM_SLEEP flag.


The source of the problem is that holding a lock and entering into
file-system once again. This can lead to dead-lock on the same
clustered buffer during cleaning of log space.

Cheers,
Bhagi.


On Wed, Aug 6, 2008 at 11:45 AM, Lachlan McIlroy <lachlan@sgi.com> wrote:

> Use KM_NOFS for debug trace buffers
>
> Use KM_NOFS to prevent recursion back into the filesystem which can
> cause deadlocks.
>
> In the case of xfs_iread() we hold the lock on the inode cluster buffer
> while allocating memory for the trace buffers.  If we recurse back into
> XFS to flush data that may require a transaction to allocate extents
> which needs log space.  This can deadlock with the xfsaild thread which
> can't push the tail of the log because it is trying to get the inode
> cluster buffer lock.
>
> Date:  Wed Aug  6 16:15:14 AEST 2008
> Workarea:  redback.melbourne.sgi.com:/home/lachlan/isms/2.6.x-mm
> Inspected by:  david@fromorbit.com
> Author:  lachlan
>
> The following file(s) were checked into:
>  longdrop.melbourne.sgi.com:/isms/linux/2.6.x-xfs-melb
>
>
> Modid:  xfs-linux-melb:xfs-kern:31838a
> fs/xfs/xfs_log.c - 1.362 - changed
http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-linux/> xfs_log.c.diff?r1=text&tr1=1.362&r2=text&tr2=1.361&f=h
>
> http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-linux/xfs_log.c.diff?r1=text&tr1=1.362&r2=text&tr2=1.361&f=h
> fs/xfs/xfs_buf_item.c<http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-linux/xfs_log.c.diff?r1=text&tr1=1.362&r2=text&tr2=1.361&f=hfs/xfs/xfs_buf_item.c>- 1.168 - changed
>
> http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-linux/xfs_buf_item.c.diff?r1=text&tr1=1.168&r2=text&tr2=1.167&f=h
> fs/xfs/xfs_inode.c<http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-linux/xfs_buf_item.c.diff?r1=text&tr1=1.168&r2=text&tr2=1.167&f=hfs/xfs/xfs_inode.c>- 1.518 - changed
>
> http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-linux/xfs_inode.c.diff?r1=text&tr1=1.518&r2=text&tr2=1.517&f=h
> fs/xfs/quota/xfs_dquot.c<http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-linux/xfs_inode.c.diff?r1=text&tr1=1.518&r2=text&tr2=1.517&f=hfs/xfs/quota/xfs_dquot.c>- 1.38 - changed
>
> http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-linux/quota/xfs_dquot.c.diff?r1=text&tr1=1.38&r2=text&tr2=1.37&f=h
> fs/xfs/linux-2.6/xfs_buf.c<http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-linux/quota/xfs_dquot.c.diff?r1=text&tr1=1.38&r2=text&tr2=1.37&f=hfs/xfs/linux-2.6/xfs_buf.c>- 1.262 - changed
>
> http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-linux/linux-2.6/xfs_buf.c.diff?r1=text&tr1=1.262&r2=text&tr2=1.261&f=h
> fs/xfs/xfs_filestream.c<http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-linux/linux-2.6/xfs_buf.c.diff?r1=text&tr1=1.262&r2=text&tr2=1.261&f=hfs/xfs/xfs_filestream.c>- 1.9 - changed
>
> http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-linux/xfs_filestream.c.diff?r1=text&tr1=1.9&r2=text&tr2=1.8&f=h
>        - Use KM_NOFS for debug trace buffers
>
>
>
>
>


[[HTML alternate version deleted]]

  reply	other threads:[~2008-08-06 17:11 UTC|newest]

Thread overview: 11+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-08-06  6:15 TAKE 981498 - Use KM_NOFS for debug trace buffers Lachlan McIlroy
2008-08-06 17:12 ` Bhagi rathi [this message]
2008-08-06 19:56   ` Eric Sandeen
2008-08-06 20:19   ` Dave Chinner
2008-08-06 20:27     ` Dave Chinner
2008-08-06 21:03       ` Dave Chinner
2008-08-07  2:19         ` Russell Cattelan
2008-08-07 17:45         ` Bhagi rathi
2008-08-07 17:43     ` Bhagi rathi
2008-08-08  5:16       ` Bhagi rathi
2008-08-07 22:04 ` Christoph Hellwig

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=cc7060690808061012x43511581m15c794e72129becc@mail.gmail.com \
    --to=jahnu77@gmail.com \
    --cc=lachlan@sgi.com \
    --cc=sgi.bugs.xfs@engr.sgi.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