]> git.baikalelectronics.ru Git - kernel.git/commit
Revert "x86/mm/gup: Switch GUP to the generic get_user_page_fast() implementation"
authorIngo Molnar <mingo@kernel.org>
Sun, 23 Apr 2017 09:37:17 +0000 (11:37 +0200)
committerIngo Molnar <mingo@kernel.org>
Sun, 23 Apr 2017 09:45:20 +0000 (11:45 +0200)
commit3589a2b15b57246329246adfc67910b49f6e9666
treef7f214935c45eb7ea9096fccd4cdace3baa99e68
parentf1a21baa0f25fe4296f18e32f7b206ba7de84de8
Revert "x86/mm/gup: Switch GUP to the generic get_user_page_fast() implementation"

This reverts commit 43e4683762744b7ad8c36b5c91fac4b5ffc05c82.

Dan Williams reported dax-pmem kernel warnings with the following signature:

   WARNING: CPU: 8 PID: 245 at lib/percpu-refcount.c:155 percpu_ref_switch_to_atomic_rcu+0x1f5/0x200
   percpu ref (dax_pmem_percpu_release [dax_pmem]) <= 0 (0) after switching to atomic

... and bisected it to this commit, which suggests possible memory corruption
caused by the x86 fast-GUP conversion.

He also pointed out:

 "
  This is similar to the backtrace when we were not properly handling
  pud faults and was fixed with this commit: 239e41931c5a "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
  [...]
 "

So given that there are known bugs, and a pretty robust looking bisection
points to this commit suggesting that are unknown bugs in the conversion
as well, revert it for the time being - we'll re-try in v4.13.

Reported-by: Dan Williams <dan.j.williams@intel.com>
Cc: Andrew Morton <akpm@linux-foundation.org>
Cc: Borislav Petkov <bp@alien8.de>
Cc: Catalin Marinas <catalin.marinas@arm.com>
Cc: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
Cc: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Michal Hocko <mhocko@suse.cz>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Rik van Riel <riel@redhat.com>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: aneesh.kumar@linux.vnet.ibm.com
Cc: dann.frazier@canonical.com
Cc: dave.hansen@intel.com
Cc: steve.capper@linaro.org
Cc: linux-kernel@vger.kernel.org
Signed-off-by: Ingo Molnar <mingo@kernel.org>
12 files changed:
arch/arm/Kconfig
arch/arm64/Kconfig
arch/powerpc/Kconfig
arch/x86/Kconfig
arch/x86/include/asm/mmu_context.h
arch/x86/include/asm/pgtable-3level.h
arch/x86/include/asm/pgtable.h
arch/x86/include/asm/pgtable_64.h
arch/x86/mm/Makefile
arch/x86/mm/gup.c [new file with mode: 0644]
mm/Kconfig
mm/gup.c