All of lore.kernel.org
 help / color / mirror / Atom feed
From: Dave Chinner <david@fromorbit.com>
To: "Kirill A. Shutemov" <kirill@shutemov.name>
Cc: linux-fsdevel@vger.kernel.org, willy@linux.intel.com,
	kirill.shutemov@linux.intel.com, linux-kernel@vger.kernel.org
Subject: Re: [4.3-rc1, regression] dax: hang on i_mmap_rwsem in generic/075
Date: Wed, 23 Sep 2015 05:56:31 +1000	[thread overview]
Message-ID: <20150922195631.GG3902@dastard> (raw)
In-Reply-To: <20150922100644.GA17788@node.dhcp.inet.fi>

On Tue, Sep 22, 2015 at 01:06:45PM +0300, Kirill A. Shutemov wrote:
> On Tue, Sep 22, 2015 at 01:05:55PM +1000, Dave Chinner wrote:
> > Hi folks,
> > 
> > I'm seeing hangs like this when using DAX on XFS on 4.3-rc1 running
> > xfstests generic/075 (fsx test):
> > 
> > # echo w > /proc/sysrq-trigger
> > [71628.984872] sysrq: SysRq : Show Blocked State
> > [71628.985988]   task                        PC stack   pid father
> > [71628.987635] fsx             D ffff88043fd756c0 12824   520  32636 0x00000000
> > [71628.989251]  ffff88007f557ba8 0000000000000086 ffff88042eb40580 ffff8803c8bcc180
> > [71628.990645]  ffff88007f558000 ffff88041d748e80 ffff88041d748e68 ffffffff00000000
> > [71628.992068]  00000000fffffffe ffff88007f557bc0 ffffffff81d855ca ffff8803c8bcc180
> > [71628.993639] Call Trace:
> > [71628.994097]  [<ffffffff81d855ca>] schedule+0x3a/0x90
> > [71628.994997]  [<ffffffff81d88021>] rwsem_down_write_failed+0x141/0x340
> > [71628.996197]  [<ffffffff81792e13>] call_rwsem_down_write_failed+0x13/0x20
> > [71628.997548]  [<ffffffff81d87854>] ? down_write+0x24/0x40
> > [71628.998502]  [<ffffffff812110b6>] __dax_fault+0x546/0x6c0
> > [71628.999469]  [<ffffffff814b2900>] ? xfs_get_blocks+0x20/0x20
> > [71629.000515]  [<ffffffff814bd758>] xfs_filemap_fault+0xc8/0xf0
> > [71629.001668]  [<ffffffff811a0abd>] __do_fault+0x3d/0x80
> > [71629.002589]  [<ffffffff811a49da>] handle_mm_fault+0xb8a/0xfd0
> > [71629.003620]  [<ffffffff81094e3f>] __do_page_fault+0x15f/0x420
> > [71629.004680]  [<ffffffff810951c3>] trace_do_page_fault+0x43/0x110
> > [71629.005877]  [<ffffffff8108fd0a>] do_async_page_fault+0x1a/0xa0
> > [71629.006936]  [<ffffffff81d8b6c8>] async_page_fault+0x28/0x30
> > 
> > __dax_fault() gets stuck on this lock:
> > 
> > (gdb) l *(__dax_fault+0x546)
> > 0xffffffff812110b6 is in __dax_fault (include/linux/fs.h:499).
> > 494
> > 495     int mapping_tagged(struct address_space *mapping, int tag);
> > 496
> > 497     static inline void i_mmap_lock_write(struct address_space *mapping)
> > 498     {
> > 499             down_write(&mapping->i_mmap_rwsem);
> > 500     }
> > 501
> > 502     static inline void i_mmap_unlock_write(struct address_space *mapping)
> > 503     {
> > 
> > This didn't happen on 4.2 + the XFS for-next code that was merged
> > into 4.3-rc1, so it's come from changes somewhere else in the merge.
> > I suspect either of these two commits:
> > 
> > 46c043e mm: take i_mmap_lock in unmap_mapping_range() for DAX
> > 8431729 dax: fix race between simultaneous faults
> > 
> > as they both modified the i_mmap_lock usage for DAX page faults.
> 
> It's likely we broke some locking ordering rules, but it's not obvious for
> me which one.
> 
> No lockdep complain? Or it's disabled?

Wasn't running lockdep, I don't always use it because of how slow it
can make things. I'll turn it on and see what happens...

Cheers,

Dave.
-- 
Dave Chinner
david@fromorbit.com

  reply	other threads:[~2015-09-22 19:56 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-09-22  3:05 [4.3-rc1, regression] dax: hang on i_mmap_rwsem in generic/075 Dave Chinner
2015-09-22 10:06 ` Kirill A. Shutemov
2015-09-22 19:56   ` Dave Chinner [this message]
2015-09-23  4:14     ` Ross Zwisler

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=20150922195631.GG3902@dastard \
    --to=david@fromorbit.com \
    --cc=kirill.shutemov@linux.intel.com \
    --cc=kirill@shutemov.name \
    --cc=linux-fsdevel@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=willy@linux.intel.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.