linux-mm.kvack.org archive mirror
 help / color / mirror / Atom feed
From: Dan Williams <dan.j.williams@intel.com>
To: Logan Gunthorpe <logang@deltatee.com>
Cc: Stephen Bates <Stephen.Bates@pmcs.com>,
	Linux MM <linux-mm@kvack.org>,
	"linux-nvdimm@lists.01.org" <linux-nvdimm@lists.01.org>
Subject: Re: [PATCH v2 00/20] get_user_pages() for dax mappings
Date: Mon, 7 Dec 2015 16:48:08 -0800	[thread overview]
Message-ID: <CAPcyv4iaWD0oxYfDWZr1Vsp0NYcYtBD3373vsY9YyQYYqis+mQ@mail.gmail.com> (raw)
In-Reply-To: <56661DBA.5000302@deltatee.com>

On Mon, Dec 7, 2015 at 4:00 PM, Logan Gunthorpe <logang@deltatee.com> wrote:
> Hi Dan,
>
> I've done a bit of digging and here's some more information:
>
> * The crash occurs in ext4_end_io_unwritten when it tries to dereference
> bh->b_assoc_map which is not necessarily NULL.
>
> * That function is called by __dax_pmd_fault, as the argument
> complete_unwritten.
>
> * Looking in __dax_pmd_fault, the bug occurs if we hit either of the first
> two 'goto fallback' lines. (In my case, it's hitting the first one.)
>
> * After the fallback code, it goes back to 'out', then checks '&bh'
> for the unwritten flag. But bh hasn't been initialized yet and, on my setup,
> the unwritten flag happens to be set. So, it then calls complete_unwritten
> with a garbage bh and crashes.
>
> If I move the memset(&bh) up in the code, before the goto fallbacks can
> occur, I can fix the crash.  I don't know if this is really the best way to
> fix the problem though.

I believe you are hitting the same issue that Matthew hit here:

https://patchwork.kernel.org/patch/7763851/

I have it fixed up in the latest that I pushed out last night to
libnvdimm-pending.  Note the libnvdimm-pending branch is now based on
linux-next as I needed to resolve collisions with transparent huge
page work pending in the -mm tree.

> However, unfortunately, fixing the above just uncovered another issue. Now
> the MR de-registration seems to have completed but the task hangs when it's
> trying to munmap the memory. (Stack trace at the end of this email.)
>
> It looks like the i_mmap_lock_write is hanging in unlink_file_vma. I'm not
> really sure how to go about debugging this lock issue. If you have any steps
> I can try to get you more information let me know. I'm also happy to re-test
> if you have any other changes you'd like me to try.

I worked through a crop of hangs and crashes triggered by Toshi's mmap
test.  Give the latest a try if you get a chance and I'll fix it up if
it still occurs.  I'll be pushing an updated branch again tonight with
fixes for issues uncovered while running the nvml test suite.

Thanks Logan!

--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org.  For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>

      reply	other threads:[~2015-12-08  0:48 UTC|newest]

Thread overview: 37+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-10-10  0:55 [PATCH v2 00/20] get_user_pages() for dax mappings Dan Williams
2015-10-10  0:55 ` [PATCH v2 01/20] block: generic request_queue reference counting Dan Williams
2015-10-11 12:59   ` Christoph Hellwig
2015-10-13  0:09     ` Dan Williams
2015-10-10  0:55 ` [PATCH v2 02/20] dax: increase granularity of dax_clear_blocks() operations Dan Williams
2015-10-10  0:55 ` [PATCH v2 03/20] block, dax: fix lifetime of in-kernel dax mappings with dax_map_atomic() Dan Williams
2015-10-10  0:55 ` [PATCH v2 04/20] mm: introduce __get_dev_pagemap() Dan Williams
2015-10-10  0:55 ` [PATCH v2 05/20] x86, mm: introduce vmem_altmap to augment vmemmap_populate() Dan Williams
2015-10-19 22:53   ` Williams, Dan J
2015-10-10  0:55 ` [PATCH v2 06/20] libnvdimm, pfn, pmem: allocate memmap array in persistent memory Dan Williams
2015-10-10  0:56 ` [PATCH v2 07/20] avr32: convert to asm-generic/memory_model.h Dan Williams
2015-10-10  0:56 ` [PATCH v2 08/20] hugetlb: fix compile error on tile Dan Williams
2015-10-10  0:56 ` [PATCH v2 09/20] frv: fix compiler warning from definition of __pmd() Dan Williams
2015-10-10  0:56 ` [PATCH v2 10/20] um: kill pfn_t Dan Williams
2015-10-10  0:56 ` [PATCH v2 11/20] kvm: rename pfn_t to kvm_pfn_t Dan Williams
2015-10-10 15:35   ` Christoffer Dall
2015-10-10 20:35   ` Paolo Bonzini
2015-10-10 20:57     ` Dan Williams
2015-10-12 12:51       ` Paolo Bonzini
2015-10-12 16:16         ` Dan Williams
2015-10-10  0:56 ` [PATCH v2 12/20] mips: fix PAGE_MASK definition Dan Williams
2015-10-10  0:56 ` [PATCH v2 13/20] mm, dax, pmem: introduce pfn_t Dan Williams
2015-10-10  0:56 ` [PATCH v2 14/20] mm, dax, gpu: convert vm_insert_mixed to pfn_t, introduce _PAGE_DEVMAP Dan Williams
2015-10-10  0:56 ` [PATCH v2 15/20] mm, dax: convert vmf_insert_pfn_pmd() to pfn_t Dan Williams
2015-10-10  0:56 ` [PATCH v2 16/20] list: introduce list_poison() and LIST_POISON3 Dan Williams
2015-10-10  0:56 ` [PATCH v2 17/20] mm, dax, pmem: introduce {get|put}_dev_pagemap() for dax-gup Dan Williams
2015-10-10  0:57 ` [PATCH v2 18/20] block: notify queue death confirmation Dan Williams
2015-10-10  0:57 ` [PATCH v2 19/20] mm, pmem: devm_memunmap_pages(), truncate and unmap ZONE_DEVICE pages Dan Williams
2015-10-10  0:57 ` [PATCH v2 20/20] mm, x86: get_user_pages() for dax mappings Dan Williams
2015-10-23 21:06 ` [PATCH v2 00/20] " Logan Gunthorpe
2015-11-30 22:15   ` Dan Williams
2015-12-02 22:02     ` Logan Gunthorpe
2015-12-02 22:04       ` Dan Williams
2015-12-04  2:16       ` Dan Williams
2015-12-05  1:58         ` Logan Gunthorpe
2015-12-08  0:00           ` Logan Gunthorpe
2015-12-08  0:48             ` Dan Williams [this message]

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=CAPcyv4iaWD0oxYfDWZr1Vsp0NYcYtBD3373vsY9YyQYYqis+mQ@mail.gmail.com \
    --to=dan.j.williams@intel.com \
    --cc=Stephen.Bates@pmcs.com \
    --cc=linux-mm@kvack.org \
    --cc=linux-nvdimm@lists.01.org \
    --cc=logang@deltatee.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;
as well as URLs for NNTP newsgroup(s).