All of lore.kernel.org
 help / color / mirror / Atom feed
From: Dan Williams <dan.j.williams@intel.com>
To: "Kirill A. Shutemov" <kirill@shutemov.name>
Cc: Catalin Marinas <catalin.marinas@arm.com>,
	"Aneesh Kumar K.V" <aneesh.kumar@linux.vnet.ibm.com>,
	steve.capper@linaro.org, Thomas Gleixner <tglx@linutronix.de>,
	Peter Zijlstra <peterz@infradead.org>,
	Linux Kernel Mailing List <linux-kernel@vger.kernel.org>,
	Ingo Molnar <mingo@kernel.org>,
	Andrew Morton <akpm@linux-foundation.org>,
	"Kirill A. Shutemov" <kirill.shutemov@linux.intel.com>,
	"H. Peter Anvin" <hpa@zytor.com>,
	Dave Hansen <dave.hansen@intel.com>,
	Borislav Petkov <bp@alien8.de>, Rik van Riel <riel@redhat.com>,
	dann.frazier@canonical.com,
	Linus Torvalds <torvalds@linux-foundation.org>,
	Michal Hocko <mhocko@suse.cz>,
	linux-tip-commits@vger.kernel.org
Subject: Re: [tip:x86/mm] x86/mm/gup: Switch GUP to the generic get_user_page_fast() implementation
Date: Fri, 21 Apr 2017 12:30:57 -0700	[thread overview]
Message-ID: <CAPcyv4g5WkSCRBUPhXx3iF1KEQQ0RfmgnmaAzrT3dwuQFxYUEQ@mail.gmail.com> (raw)
In-Reply-To: <20170421141628.ruxxnq54jvuhiqnz@node.shutemov.name>

On Fri, Apr 21, 2017 at 7:16 AM, Kirill A. Shutemov
<kirill@shutemov.name> wrote:
> On Thu, Apr 20, 2017 at 02:46:51PM -0700, Dan Williams wrote:
>> On Sat, Mar 18, 2017 at 2:52 AM, tip-bot for Kirill A. Shutemov
>> <tipbot@zytor.com> wrote:
>> > Commit-ID:  2947ba054a4dabbd82848728d765346886050029
>> > Gitweb:     http://git.kernel.org/tip/2947ba054a4dabbd82848728d765346886050029
>> > Author:     Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
>> > AuthorDate: Fri, 17 Mar 2017 00:39:06 +0300
>> > Committer:  Ingo Molnar <mingo@kernel.org>
>> > CommitDate: Sat, 18 Mar 2017 09:48:03 +0100
>> >
>> > x86/mm/gup: Switch GUP to the generic get_user_page_fast() implementation
>> >
>> > This patch provides all required callbacks required by the generic
>> > get_user_pages_fast() code and switches x86 over - and removes
>> > the platform specific implementation.
>> >
>> > Signed-off-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
>> > Cc: Andrew Morton <akpm@linux-foundation.org>
>> > Cc: Aneesh Kumar K . V <aneesh.kumar@linux.vnet.ibm.com>
>> > Cc: Borislav Petkov <bp@alien8.de>
>> > Cc: Catalin Marinas <catalin.marinas@arm.com>
>> > Cc: Dann Frazier <dann.frazier@canonical.com>
>> > Cc: Dave Hansen <dave.hansen@intel.com>
>> > Cc: H. Peter Anvin <hpa@zytor.com>
>> > Cc: Linus Torvalds <torvalds@linux-foundation.org>
>> > Cc: Peter Zijlstra <peterz@infradead.org>
>> > Cc: Rik van Riel <riel@redhat.com>
>> > Cc: Steve Capper <steve.capper@linaro.org>
>> > Cc: Thomas Gleixner <tglx@linutronix.de>
>> > Cc: linux-arch@vger.kernel.org
>> > Cc: linux-mm@kvack.org
>> > Link: http://lkml.kernel.org/r/20170316213906.89528-1-kirill.shutemov@linux.intel.com
>> > [ Minor readability edits. ]
>> > Signed-off-by: Ingo Molnar <mingo@kernel.org>
>>
>> I'm still trying to spot the bug, but bisect points to this patch as
>> the point at which my unit tests start failing with the following
>> signature:
>
> I can't find the issue either.
>
> Is it something reproducible without hardware? In KVM?

You can do it in KVM, just boot with the memmap=ss!nn parameter to
simulate pmem. In this case I'm booting with memmap=4G!8G, you should
also specify "nokaslr".

> If yes, could you share the test-case?

Yes, run:

    ./autogen.sh
    ./configure CFLAGS='-g -O0' --prefix=/usr --sysconfdir=/etc
--libdir=/usr/lib64
    make TESTS=device-dax check

...from a checkout of the ndctl project:

    https://github.com/pmem/ndctl

Let me know if you run into any problems getting the test to build or run.

>
>> [   35.423841] WARNING: CPU: 8 PID: 245 at lib/percpu-refcount.c:155
>> percpu_ref_switch_to_atomic_rcu+0x1f5/0x200
>> [   35.425328] percpu ref (dax_pmem_percpu_release [dax_pmem]) <= 0
>> (0) after switching to atomic
>> [   35.425329] Modules linked in: ip6t_rpfilter ip6t_REJECT
>> nf_reject_ipv6 xt_conntrack ebtable_nat ebtable_broute bridge stp llc
>> ip6table_nat nf_conntrack_ipv6 nf_defrag_ipv6 nf_nat_ipv6 ip
>> 6table_mangle ip6table_raw ip6table_security iptable_nat
>> nf_conntrack_ipv4 nf_defrag_ipv4 nf_nat_ipv4 nf_nat nf_conntrack
>> iptable_mangle iptable_raw iptable_security ebtable_filter ebtables
>> ip6table_filter ip6_tables crct10dif_pclmul crc32_pclmul crc32c_intel
>> ghash_clmulni_intel nd_pmem(O) dax_pmem(O) nd_btt(O) dax(O) serio_raw
>> nfit(O) nd_e820(O) libnvdimm(O) tpm_tis tpm_tis_co
>> re tpm nfit_test_iomap(O) nfsd nfs_acl
>> [   35.433683] CPU: 8 PID: 245 Comm: rcuos/29 Tainted: G           O
>>  4.11.0-rc2+ #55
>> [   35.435538] Hardware name: QEMU Standard PC (i440FX + PIIX, 1996),
>> BIOS 1.9.3-1.fc25 04/01/2014
>> [   35.437500] Call Trace:
>> [   35.438270]  dump_stack+0x86/0xc3
>> [   35.439156]  __warn+0xcb/0xf0
>> [   35.439995]  warn_slowpath_fmt+0x5f/0x80
>> [   35.440962]  ? rcu_nocb_kthread+0x27a/0x500
>> [   35.441957]  ? dax_pmem_percpu_exit+0x50/0x50 [dax_pmem]
>> [   35.443107]  percpu_ref_switch_to_atomic_rcu+0x1f5/0x200
>> [   35.444251]  ? percpu_ref_exit+0x60/0x60
>> [   35.445206]  rcu_nocb_kthread+0x327/0x500
>> [   35.446186]  ? rcu_nocb_kthread+0x27a/0x500
>> [   35.447188]  kthread+0x10c/0x140
>> [   35.448058]  ? rcu_eqs_enter+0x50/0x50
>> [   35.448990]  ? kthread_create_on_node+0x60/0x60
>> [   35.450038]  ret_from_fork+0x31/0x40
>> [   35.450976] ---[ end trace eaa40898a09519b5 ]---
>>
>> This is similar to the backtrace when we were not properly handling
>> pud faults and was fixed with this commit: 220ced1676c4 "mm: fix
>> get_user_pages() vs device-dax pud mappings"
>>
>> I've found some missing _devmap checks in the generic
>> get_user_pages_fast() path, but this does not fix the regression:
>
> I don't see these in x86 GUP. Was the bug there too?

No it wasn't, the test runs fine with v4.11-rc7, so perhaps I'm
looking in the wrong place...

  reply	other threads:[~2017-04-21 19:31 UTC|newest]

Thread overview: 93+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-04-20 21:46 [tip:x86/mm] x86/mm/gup: Switch GUP to the generic get_user_page_fast() implementation Dan Williams
2017-04-21 14:16 ` Kirill A. Shutemov
2017-04-21 19:30   ` Dan Williams [this message]
2017-04-23  9:52     ` [PATCH] Revert "x86/mm/gup: Switch GUP to the generic get_user_page_fast() implementation" Ingo Molnar
2017-04-23 23:31 ` get_zone_device_page() in get_page() and page_cache_get_speculative() Kirill A. Shutemov
2017-04-23 23:31   ` Kirill A. Shutemov
2017-04-24 17:23   ` Dan Williams
2017-04-24 17:23     ` Dan Williams
2017-04-24 17:30     ` Kirill A. Shutemov
2017-04-24 17:30       ` Kirill A. Shutemov
2017-04-24 17:47       ` Dan Williams
2017-04-24 17:47         ` Dan Williams
2017-04-24 18:01         ` Kirill A. Shutemov
2017-04-24 18:01           ` Kirill A. Shutemov
2017-04-24 18:25           ` Kirill A. Shutemov
2017-04-24 18:25             ` Kirill A. Shutemov
2017-04-24 18:41             ` Dan Williams
2017-04-24 18:41               ` Dan Williams
2017-04-25 13:19               ` Kirill A. Shutemov
2017-04-25 13:19                 ` Kirill A. Shutemov
2017-04-25 16:44                 ` Dan Williams
2017-04-25 16:44                   ` Dan Williams
2017-04-27  0:55   ` [PATCH] mm, zone_device: replace {get, put}_zone_device_page() with a single reference Dan Williams
2017-04-27  0:55     ` Dan Williams
2017-04-27  8:33     ` Kirill A. Shutemov
2017-04-27  8:33       ` Kirill A. Shutemov
2017-04-28  6:39       ` Ingo Molnar
2017-04-28  6:39         ` Ingo Molnar
2017-04-28  8:14         ` [PATCH] mm, zone_device: Replace " Kirill A. Shutemov
2017-04-28  8:14           ` Kirill A. Shutemov
2017-04-28 17:23         ` [PATCH v2] mm, zone_device: replace " Dan Williams
2017-04-28 17:23           ` Dan Williams
2017-04-28 17:34           ` Jerome Glisse
2017-04-28 17:34             ` Jerome Glisse
2017-04-28 17:41             ` Dan Williams
2017-04-28 17:41               ` Dan Williams
2017-04-28 18:00               ` Jerome Glisse
2017-04-28 18:00                 ` Jerome Glisse
2017-04-28 19:02                 ` Dan Williams
2017-04-28 19:02                   ` Dan Williams
2017-04-28 19:16                   ` Jerome Glisse
2017-04-28 19:16                     ` Jerome Glisse
2017-04-28 19:22                     ` Dan Williams
2017-04-28 19:22                       ` Dan Williams
2017-04-28 19:33                       ` Jerome Glisse
2017-04-28 19:33                         ` Jerome Glisse
2017-04-29 10:17                         ` Kirill A. Shutemov
2017-04-29 10:17                           ` Kirill A. Shutemov
2017-04-30 23:14                           ` Jerome Glisse
2017-04-30 23:14                             ` Jerome Glisse
2017-05-01  1:42                             ` Dan Williams
2017-05-01  1:42                               ` Dan Williams
2017-05-01  1:54                               ` Jerome Glisse
2017-05-01  1:54                                 ` Jerome Glisse
2017-05-01  2:40                                 ` Dan Williams
2017-05-01  2:40                                   ` Dan Williams
2017-05-01  3:48                             ` Logan Gunthorpe
2017-05-01  3:48                               ` Logan Gunthorpe
2017-05-01 10:23                             ` Kirill A. Shutemov
2017-05-01 10:23                               ` Kirill A. Shutemov
2017-05-01 13:55                               ` Jerome Glisse
2017-05-01 13:55                                 ` Jerome Glisse
2017-05-01 20:19                                 ` Dan Williams
2017-05-01 20:19                                   ` Dan Williams
2017-05-01 20:32                                   ` Jerome Glisse
2017-05-01 20:32                                     ` Jerome Glisse
2017-05-02 11:37                                 ` Kirill A. Shutemov
2017-05-02 11:37                                   ` Kirill A. Shutemov
2017-05-02 13:22                                   ` Jerome Glisse
2017-05-02 13:22                                     ` Jerome Glisse
2017-04-29 14:18           ` Ingo Molnar
2017-04-29 14:18             ` Ingo Molnar
2017-05-01  2:45             ` Dan Williams
2017-05-01  2:45               ` Dan Williams
2017-05-01  7:12               ` Ingo Molnar
2017-05-01  7:12                 ` Ingo Molnar
2017-05-01  9:33                 ` Kirill A. Shutemov
2017-05-01  9:33                   ` Kirill A. Shutemov
2017-05-01  8:28           ` [tip:x86/mm] mm, zone_device: Replace {get, put}_zone_device_page() with a single reference to fix pmem crash tip-bot for Dan Williams
2017-04-27 16:11     ` [PATCH] mm, zone_device: replace {get, put}_zone_device_page() with a single reference Logan Gunthorpe
2017-04-27 16:11       ` Logan Gunthorpe
2017-04-27 16:14       ` Dan Williams
2017-04-27 16:14         ` Dan Williams
2017-04-27 16:33         ` Logan Gunthorpe
2017-04-27 16:33           ` Logan Gunthorpe
2017-04-27 16:38           ` Dan Williams
2017-04-27 16:38             ` Dan Williams
2017-04-27 16:45             ` Logan Gunthorpe
2017-04-27 16:45               ` Logan Gunthorpe
2017-04-27 16:46               ` Dan Williams
2017-04-27 16:46                 ` Dan Williams
  -- strict thread matches above, loose matches on Subject: below --
2017-06-06 11:31 [PATCHv7 01/14] x86/mm/gup: Switch GUP to the generic get_user_page_fast() implementation Kirill A. Shutemov
2017-06-13 10:04 ` [tip:x86/mm] " tip-bot for Kirill A. Shutemov
2017-03-16 21:39 [PATCHv2 7/7] x86/mm: Switch to " Kirill A. Shutemov
2017-03-18  9:52 ` [tip:x86/mm] x86/mm/gup: Switch GUP to the " tip-bot for Kirill A. Shutemov

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=CAPcyv4g5WkSCRBUPhXx3iF1KEQQ0RfmgnmaAzrT3dwuQFxYUEQ@mail.gmail.com \
    --to=dan.j.williams@intel.com \
    --cc=akpm@linux-foundation.org \
    --cc=aneesh.kumar@linux.vnet.ibm.com \
    --cc=bp@alien8.de \
    --cc=catalin.marinas@arm.com \
    --cc=dann.frazier@canonical.com \
    --cc=dave.hansen@intel.com \
    --cc=hpa@zytor.com \
    --cc=kirill.shutemov@linux.intel.com \
    --cc=kirill@shutemov.name \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-tip-commits@vger.kernel.org \
    --cc=mhocko@suse.cz \
    --cc=mingo@kernel.org \
    --cc=peterz@infradead.org \
    --cc=riel@redhat.com \
    --cc=steve.capper@linaro.org \
    --cc=tglx@linutronix.de \
    --cc=torvalds@linux-foundation.org \
    /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.