All of lore.kernel.org
 help / color / mirror / Atom feed
From: Dave Chinner <david@fromorbit.com>
To: linux-fsdevel@vger.kernel.org
Cc: willy@linux.intel.com, kirill.shutemov@linux.intel.com,
	linux-kernel@vger.kernel.org
Subject: [4.3-rc1, regression] dax: hang on i_mmap_rwsem in generic/075
Date: Tue, 22 Sep 2015 13:05:55 +1000	[thread overview]
Message-ID: <20150922030555.GA3902@dastard> (raw)

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.

Cheers,

Dave.
-- 
Dave Chinner
david@fromorbit.com

             reply	other threads:[~2015-09-22  3:05 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-09-22  3:05 Dave Chinner [this message]
2015-09-22 10:06 ` [4.3-rc1, regression] dax: hang on i_mmap_rwsem in generic/075 Kirill A. Shutemov
2015-09-22 19:56   ` Dave Chinner
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=20150922030555.GA3902@dastard \
    --to=david@fromorbit.com \
    --cc=kirill.shutemov@linux.intel.com \
    --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.