Kirill A. Shutemov
7251ab6b86
m32r: handle pgtable_page_ctor() fail
...
Signed-off-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com >
Cc: Hirokazu Takata <takata@linux-m32r.org >
Signed-off-by: Andrew Morton <akpm@linux-foundation.org >
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org >
2013-11-15 09:32:17 +09:00
Kirill A. Shutemov
ca973d86d4
ia64: handle pgtable_page_ctor() fail
...
Signed-off-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com >
Cc: Tony Luck <tony.luck@intel.com >
Cc: Fenghua Yu <fenghua.yu@intel.com >
Signed-off-by: Andrew Morton <akpm@linux-foundation.org >
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org >
2013-11-15 09:32:17 +09:00
Kirill A. Shutemov
5de1423d89
hexagon: handle pgtable_page_ctor() fail
...
Signed-off-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com >
Cc: Richard Kuo <rkuo@codeaurora.org >
Signed-off-by: Andrew Morton <akpm@linux-foundation.org >
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org >
2013-11-15 09:32:17 +09:00
Kirill A. Shutemov
3b9cf77d1a
frv: handle pgtable_page_ctor() fail
...
Signed-off-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com >
Acked-by: David Howells <dhowells@redhat.com >
Signed-off-by: Andrew Morton <akpm@linux-foundation.org >
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org >
2013-11-15 09:32:17 +09:00
Kirill A. Shutemov
0da5303bdb
cris: handle pgtable_page_ctor() fail
...
Signed-off-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com >
Cc: Mikael Starvik <starvik@axis.com >
Acked-by: Jesper Nilsson <jesper.nilsson@axis.com >
Signed-off-by: Andrew Morton <akpm@linux-foundation.org >
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org >
2013-11-15 09:32:17 +09:00
Kirill A. Shutemov
2cb6182bb6
avr32: handle pgtable_page_ctor() fail
...
Signed-off-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com >
Cc: Haavard Skinnemoen <hskinnemoen@gmail.com >
Acked-by: Hans-Christian Egtvedt <egtvedt@samfundet.no >
Signed-off-by: Andrew Morton <akpm@linux-foundation.org >
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org >
2013-11-15 09:32:17 +09:00
Kirill A. Shutemov
d97a229138
arm64: handle pgtable_page_ctor() fail
...
Signed-off-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com >
Cc: Catalin Marinas <catalin.marinas@arm.com >
Cc: Will Deacon <will.deacon@arm.com >
Signed-off-by: Andrew Morton <akpm@linux-foundation.org >
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org >
2013-11-15 09:32:16 +09:00
Kirill A. Shutemov
affce5089a
arm: handle pgtable_page_ctor() fail
...
Signed-off-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com >
Cc: Russell King <linux@arm.linux.org.uk >
Signed-off-by: Andrew Morton <akpm@linux-foundation.org >
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org >
2013-11-15 09:32:16 +09:00
Kirill A. Shutemov
ca6ec3bbaa
arc: handle pgtable_page_ctor() fail
...
Signed-off-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com >
Acked-by: Vineet Gupta <vgupta@synopsys.com > [for arch/arc bits]
Signed-off-by: Andrew Morton <akpm@linux-foundation.org >
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org >
2013-11-15 09:32:16 +09:00
Kirill A. Shutemov
3fd681b68c
alpha: handle pgtable_page_ctor() fail
...
Signed-off-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com >
Cc: Richard Henderson <rth@twiddle.net >
Cc: Ivan Kokshaysky <ink@jurassic.park.msu.ru >
Cc: Matt Turner <mattst88@gmail.com >
Signed-off-by: Andrew Morton <akpm@linux-foundation.org >
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org >
2013-11-15 09:32:16 +09:00
Kirill A. Shutemov
b3d59c6eb4
openrisc: add missing pgtable_page_ctor/dtor calls
...
It will fix NR_PAGETABLE accounting. It's also required if the arch is
going ever support split ptl.
Signed-off-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com >
Cc: Jonas Bonn <jonas@southpole.se >
Signed-off-by: Andrew Morton <akpm@linux-foundation.org >
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org >
2013-11-15 09:32:16 +09:00
Kirill A. Shutemov
0470d4aa29
mn10300: add missing pgtable_page_ctor/dtor calls
...
It will fix NR_PAGETABLE accounting. It's also required if the arch is
going ever support split ptl.
Signed-off-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com >
Acked-by: David Howells <dhowells@redhat.com >
Cc: Koichi Yasutake <yasutake.koichi@jp.panasonic.com >
Signed-off-by: Andrew Morton <akpm@linux-foundation.org >
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org >
2013-11-15 09:32:16 +09:00
Kirill A. Shutemov
8abe734656
microblaze: add missing pgtable_page_ctor/dtor calls
...
It will fix NR_PAGETABLE accounting. It's also required if the arch is
going ever support split ptl.
Signed-off-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com >
Cc: Michal Simek <monstr@monstr.eu >
Signed-off-by: Andrew Morton <akpm@linux-foundation.org >
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org >
2013-11-15 09:32:16 +09:00
Kirill A. Shutemov
390f44e2aa
mm: allow pgtable_page_ctor() to fail
...
Change pgtable_page_ctor() return type from void to bool. Returns true,
if initialization is successful and false otherwise.
Current implementation never fails, but it will change later.
Signed-off-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com >
Signed-off-by: Andrew Morton <akpm@linux-foundation.org >
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org >
2013-11-15 09:32:16 +09:00
Kirill A. Shutemov
f8c6d30b76
xtensa: fix potential NULL-pointer dereference
...
Add missing check for memory allocation fail.
Signed-off-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com >
Cc: Chris Zankel <chris@zankel.net >
Cc: Max Filippov <jcmvbkbc@gmail.com >
Signed-off-by: Andrew Morton <akpm@linux-foundation.org >
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org >
2013-11-15 09:32:15 +09:00
Kirill A. Shutemov
fecf3743b8
m32r: fix potential NULL-pointer dereference
...
Add missing check for memory allocation fail.
Signed-off-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com >
Cc: Hirokazu Takata <takata@linux-m32r.org >
Signed-off-by: Andrew Morton <akpm@linux-foundation.org >
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org >
2013-11-15 09:32:15 +09:00
Kirill A. Shutemov
26db39027c
cris: fix potential NULL-pointer dereference
...
Add missing check for memory allocation fail.
Signed-off-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com >
Cc: Mikael Starvik <starvik@axis.com >
Acked-by: Jesper Nilsson <jesper.nilsson@axis.com >
Signed-off-by: Andrew Morton <akpm@linux-foundation.org >
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org >
2013-11-15 09:32:15 +09:00
Kirill A. Shutemov
09ef493985
x86: add missed pgtable_pmd_page_ctor/dtor calls for preallocated pmds
...
In split page table lock case, we embed spinlock_t into struct page.
For obvious reason, we don't want to increase size of struct page if
spinlock_t is too big, like with DEBUG_SPINLOCK or DEBUG_LOCK_ALLOC or
on -rt kernel. So we disable split page table lock, if spinlock_t is
too big.
This patchset allows to allocate the lock dynamically if spinlock_t is
big. In this page->ptl is used to store pointer to spinlock instead of
spinlock itself. It costs additional cache line for indirect access,
but fix page fault scalability for multi-threaded applications.
LOCK_STAT depends on DEBUG_SPINLOCK, so on current kernel enabling
LOCK_STAT to analyse scalability issues breaks scalability. ;)
The patchset mostly fixes this. Results for ./thp_memscale -c 80 -b 512M
on 4-socket machine:
baseline, no CONFIG_LOCK_STAT: 9.115460703 seconds time elapsed
baseline, CONFIG_LOCK_STAT=y: 53.890567123 seconds time elapsed
patched, no CONFIG_LOCK_STAT: 8.852250368 seconds time elapsed
patched, CONFIG_LOCK_STAT=y: 11.069770759 seconds time elapsed
Patch count is scary, but most of them trivial. Overview:
Patches 1-4 Few bug fixes. No dependencies to other patches.
Probably should applied as soon as possible.
Patch 5 Changes signature of pgtable_page_ctor(). We will use it
for dynamic lock allocation, so it can fail.
Patches 6-8 Add missing constructor/destructor calls on few archs.
It's fixes NR_PAGETABLE accounting and prepare to use
split ptl.
Patches 9-33 Add pgtable_page_ctor() fail handling to all archs.
Patches 34 Finally adds support of dynamically-allocated page->pte.
Also contains documentation for split page table lock.
This patch (of 34):
I've missed that we preallocate few pmds on pgd_alloc() if X86_PAE
enabled. Let's add missed constructor/destructor calls.
I haven't noticed it during testing since prep_new_page() clears
page->mapping and therefore page->ptl. It's effectively equal to
spin_lock_init(&page->ptl).
Signed-off-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com >
Acked-by: Ingo Molnar <mingo@kernel.org >
Cc: "H. Peter Anvin" <hpa@zytor.com >
Cc: "James E.J. Bottomley" <jejb@parisc-linux.org >
Cc: "Kirill A. Shutemov" <kirill.shutemov@linux.intel.com >
Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org >
Cc: Catalin Marinas <catalin.marinas@arm.com >
Cc: Chen Liqin <liqin.chen@sunplusct.com >
Cc: Chris Metcalf <cmetcalf@tilera.com >
Cc: Chris Zankel <chris@zankel.net >
Cc: Christoph Lameter <cl@linux.com >
Cc: David Howells <dhowells@redhat.com >
Cc: David S. Miller <davem@davemloft.net >
Cc: Fenghua Yu <fenghua.yu@intel.com >
Cc: Geert Uytterhoeven <geert@linux-m68k.org >
Cc: Grant Likely <grant.likely@linaro.org >
Cc: Guan Xuetao <gxt@mprc.pku.edu.cn >
Cc: Haavard Skinnemoen <hskinnemoen@gmail.com >
Cc: Hans-Christian Egtvedt <egtvedt@samfundet.no >
Cc: Heiko Carstens <heiko.carstens@de.ibm.com >
Cc: Helge Deller <deller@gmx.de >
Cc: Hirokazu Takata <takata@linux-m32r.org >
Cc: Ivan Kokshaysky <ink@jurassic.park.msu.ru >
Cc: James Hogan <james.hogan@imgtec.com >
Cc: Jeff Dike <jdike@addtoit.com >
Cc: Jesper Nilsson <jesper.nilsson@axis.com >
Cc: Jonas Bonn <jonas@southpole.se >
Cc: Koichi Yasutake <yasutake.koichi@jp.panasonic.com >
Cc: Lennox Wu <lennox.wu@gmail.com >
Cc: Martin Schwidefsky <schwidefsky@de.ibm.com >
Cc: Matt Turner <mattst88@gmail.com >
Cc: Max Filippov <jcmvbkbc@gmail.com >
Cc: Michal Simek <monstr@monstr.eu >
Cc: Mikael Starvik <starvik@axis.com >
Cc: Paul Mackerras <paulus@samba.org >
Cc: Paul Mundt <lethal@linux-sh.org >
Cc: Peter Zijlstra <peterz@infradead.org >
Cc: Ralf Baechle <ralf@linux-mips.org >
Cc: Richard Henderson <rth@twiddle.net >
Cc: Richard Kuo <rkuo@codeaurora.org >
Cc: Richard Weinberger <richard@nod.at >
Cc: Rob Herring <rob.herring@calxeda.com >
Cc: Russell King <linux@arm.linux.org.uk >
Cc: Thomas Gleixner <tglx@linutronix.de >
Cc: Tony Luck <tony.luck@intel.com >
Cc: Vineet Gupta <vgupta@synopsys.com >
Cc: Will Deacon <will.deacon@arm.com >
Signed-off-by: Andrew Morton <akpm@linux-foundation.org >
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org >
2013-11-15 09:32:15 +09:00
Kirill A. Shutemov
9491846fca
x86, mm: enable split page table lock for PMD level
...
Enable PMD split page table lock for X86_64 and PAE.
[akpm@linux-foundation.org: coding-style fixes]
Signed-off-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
Tested-by: Alex Thorlton <athorlton@sgi.com>
Cc: Ingo Molnar <mingo@redhat.com>
Cc: Naoya Horiguchi <n-horiguchi@ah.jp.nec.com>
Cc: "Eric W . Biederman" <ebiederm@xmission.com>
Cc: "Paul E . McKenney" <paulmck@linux.vnet.ibm.com>
Cc: Al Viro <viro@zeniv.linux.org.uk>
Cc: Andi Kleen <ak@linux.intel.com>
Cc: Andrea Arcangeli <aarcange@redhat.com>
Cc: Dave Hansen <dave.hansen@intel.com>
Cc: Dave Jones <davej@redhat.com>
Cc: David Howells <dhowells@redhat.com>
Cc: Frederic Weisbecker <fweisbec@gmail.com>
Cc: Johannes Weiner <hannes@cmpxchg.org>
Cc: Kees Cook <keescook@chromium.org>
Cc: Mel Gorman <mgorman@suse.de>
Cc: Michael Kerrisk <mtk.manpages@gmail.com>
Cc: Oleg Nesterov <oleg@redhat.com>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Rik van Riel <riel@redhat.com>
Cc: Robin Holt <robinmholt@gmail.com>
Cc: Sedat Dilek <sedat.dilek@gmail.com>
Cc: Srikar Dronamraju <srikar@linux.vnet.ibm.com>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: Hugh Dickins <hughd@google.com>
Reviewed-by: Steven Rostedt <rostedt@goodmis.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2013-11-15 09:32:15 +09:00
Kirill A. Shutemov
e009bb30c8
mm: implement split page table lock for PMD level
...
The basic idea is the same as with PTE level: the lock is embedded into
struct page of table's page.
We can't use mm->pmd_huge_pte to store pgtables for THP, since we don't
take mm->page_table_lock anymore. Let's reuse page->lru of table's page
for that.
pgtable_pmd_page_ctor() returns true, if initialization is successful
and false otherwise. Current implementation never fails, but assumption
that constructor can fail will help to port it to -rt where spinlock_t
is rather huge and cannot be embedded into struct page -- dynamic
allocation is required.
Signed-off-by: Naoya Horiguchi <n-horiguchi@ah.jp.nec.com >
Signed-off-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com >
Tested-by: Alex Thorlton <athorlton@sgi.com >
Cc: Ingo Molnar <mingo@redhat.com >
Cc: "Eric W . Biederman" <ebiederm@xmission.com >
Cc: "Paul E . McKenney" <paulmck@linux.vnet.ibm.com >
Cc: Al Viro <viro@zeniv.linux.org.uk >
Cc: Andi Kleen <ak@linux.intel.com >
Cc: Andrea Arcangeli <aarcange@redhat.com >
Cc: Dave Hansen <dave.hansen@intel.com >
Cc: Dave Jones <davej@redhat.com >
Cc: David Howells <dhowells@redhat.com >
Cc: Frederic Weisbecker <fweisbec@gmail.com >
Cc: Johannes Weiner <hannes@cmpxchg.org >
Cc: Kees Cook <keescook@chromium.org >
Cc: Mel Gorman <mgorman@suse.de >
Cc: Michael Kerrisk <mtk.manpages@gmail.com >
Cc: Oleg Nesterov <oleg@redhat.com >
Cc: Peter Zijlstra <peterz@infradead.org >
Cc: Rik van Riel <riel@redhat.com >
Cc: Robin Holt <robinmholt@gmail.com >
Cc: Sedat Dilek <sedat.dilek@gmail.com >
Cc: Srikar Dronamraju <srikar@linux.vnet.ibm.com >
Cc: Thomas Gleixner <tglx@linutronix.de >
Cc: Hugh Dickins <hughd@google.com >
Reviewed-by: Steven Rostedt <rostedt@goodmis.org >
Signed-off-by: Andrew Morton <akpm@linux-foundation.org >
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org >
2013-11-15 09:32:15 +09:00
Kirill A. Shutemov
c4088ebdca
mm: convert the rest to new page table lock api
...
Only trivial cases left. Let's convert them altogether.
Signed-off-by: Naoya Horiguchi <n-horiguchi@ah.jp.nec.com >
Signed-off-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com >
Tested-by: Alex Thorlton <athorlton@sgi.com >
Cc: Ingo Molnar <mingo@redhat.com >
Cc: "Eric W . Biederman" <ebiederm@xmission.com >
Cc: "Paul E . McKenney" <paulmck@linux.vnet.ibm.com >
Cc: Al Viro <viro@zeniv.linux.org.uk >
Cc: Andi Kleen <ak@linux.intel.com >
Cc: Andrea Arcangeli <aarcange@redhat.com >
Cc: Dave Hansen <dave.hansen@intel.com >
Cc: Dave Jones <davej@redhat.com >
Cc: David Howells <dhowells@redhat.com >
Cc: Frederic Weisbecker <fweisbec@gmail.com >
Cc: Johannes Weiner <hannes@cmpxchg.org >
Cc: Kees Cook <keescook@chromium.org >
Cc: Mel Gorman <mgorman@suse.de >
Cc: Michael Kerrisk <mtk.manpages@gmail.com >
Cc: Oleg Nesterov <oleg@redhat.com >
Cc: Peter Zijlstra <peterz@infradead.org >
Cc: Rik van Riel <riel@redhat.com >
Cc: Robin Holt <robinmholt@gmail.com >
Cc: Sedat Dilek <sedat.dilek@gmail.com >
Cc: Srikar Dronamraju <srikar@linux.vnet.ibm.com >
Cc: Thomas Gleixner <tglx@linutronix.de >
Cc: Hugh Dickins <hughd@google.com >
Signed-off-by: Andrew Morton <akpm@linux-foundation.org >
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org >
2013-11-15 09:32:15 +09:00
Kirill A. Shutemov
cb900f4121
mm, hugetlb: convert hugetlbfs to use split pmd lock
...
Hugetlb supports multiple page sizes. We use split lock only for PMD
level, but not for PUD.
[akpm@linux-foundation.org: coding-style fixes]
Signed-off-by: Naoya Horiguchi <n-horiguchi@ah.jp.nec.com>
Signed-off-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
Tested-by: Alex Thorlton <athorlton@sgi.com>
Cc: Ingo Molnar <mingo@redhat.com>
Cc: "Eric W . Biederman" <ebiederm@xmission.com>
Cc: "Paul E . McKenney" <paulmck@linux.vnet.ibm.com>
Cc: Al Viro <viro@zeniv.linux.org.uk>
Cc: Andi Kleen <ak@linux.intel.com>
Cc: Andrea Arcangeli <aarcange@redhat.com>
Cc: Dave Hansen <dave.hansen@intel.com>
Cc: Dave Jones <davej@redhat.com>
Cc: David Howells <dhowells@redhat.com>
Cc: Frederic Weisbecker <fweisbec@gmail.com>
Cc: Johannes Weiner <hannes@cmpxchg.org>
Cc: Kees Cook <keescook@chromium.org>
Cc: Mel Gorman <mgorman@suse.de>
Cc: Michael Kerrisk <mtk.manpages@gmail.com>
Cc: Oleg Nesterov <oleg@redhat.com>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Rik van Riel <riel@redhat.com>
Cc: Robin Holt <robinmholt@gmail.com>
Cc: Sedat Dilek <sedat.dilek@gmail.com>
Cc: Srikar Dronamraju <srikar@linux.vnet.ibm.com>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: Hugh Dickins <hughd@google.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2013-11-15 09:32:14 +09:00
Kirill A. Shutemov
c389a250ab
mm, thp: do not access mm->pmd_huge_pte directly
...
Currently mm->pmd_huge_pte protected by page table lock. It will not
work with split lock. We have to have per-pmd pmd_huge_pte for proper
access serialization.
For now, let's just introduce wrapper to access mm->pmd_huge_pte.
Signed-off-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com >
Tested-by: Alex Thorlton <athorlton@sgi.com >
Cc: Alex Thorlton <athorlton@sgi.com >
Cc: Ingo Molnar <mingo@redhat.com >
Cc: Naoya Horiguchi <n-horiguchi@ah.jp.nec.com >
Cc: "Eric W . Biederman" <ebiederm@xmission.com >
Cc: "Paul E . McKenney" <paulmck@linux.vnet.ibm.com >
Cc: Al Viro <viro@zeniv.linux.org.uk >
Cc: Andi Kleen <ak@linux.intel.com >
Cc: Andrea Arcangeli <aarcange@redhat.com >
Cc: Dave Hansen <dave.hansen@intel.com >
Cc: Dave Jones <davej@redhat.com >
Cc: David Howells <dhowells@redhat.com >
Cc: Frederic Weisbecker <fweisbec@gmail.com >
Cc: Johannes Weiner <hannes@cmpxchg.org >
Cc: Kees Cook <keescook@chromium.org >
Cc: Mel Gorman <mgorman@suse.de >
Cc: Michael Kerrisk <mtk.manpages@gmail.com >
Cc: Oleg Nesterov <oleg@redhat.com >
Cc: Peter Zijlstra <peterz@infradead.org >
Cc: Rik van Riel <riel@redhat.com >
Cc: Robin Holt <robinmholt@gmail.com >
Cc: Sedat Dilek <sedat.dilek@gmail.com >
Cc: Srikar Dronamraju <srikar@linux.vnet.ibm.com >
Cc: Thomas Gleixner <tglx@linutronix.de >
Cc: Hugh Dickins <hughd@google.com >
Signed-off-by: Andrew Morton <akpm@linux-foundation.org >
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org >
2013-11-15 09:32:14 +09:00
Kirill A. Shutemov
117b0791ac
mm, thp: move ptl taking inside page_check_address_pmd()
...
With split page table lock we can't know which lock we need to take
before we find the relevant pmd.
Let's move lock taking inside the function.
Signed-off-by: Naoya Horiguchi <n-horiguchi@ah.jp.nec.com >
Signed-off-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com >
Tested-by: Alex Thorlton <athorlton@sgi.com >
Cc: Ingo Molnar <mingo@redhat.com >
Cc: "Eric W . Biederman" <ebiederm@xmission.com >
Cc: "Paul E . McKenney" <paulmck@linux.vnet.ibm.com >
Cc: Al Viro <viro@zeniv.linux.org.uk >
Cc: Andi Kleen <ak@linux.intel.com >
Cc: Andrea Arcangeli <aarcange@redhat.com >
Cc: Dave Hansen <dave.hansen@intel.com >
Cc: Dave Jones <davej@redhat.com >
Cc: David Howells <dhowells@redhat.com >
Cc: Frederic Weisbecker <fweisbec@gmail.com >
Cc: Johannes Weiner <hannes@cmpxchg.org >
Cc: Kees Cook <keescook@chromium.org >
Cc: Mel Gorman <mgorman@suse.de >
Cc: Michael Kerrisk <mtk.manpages@gmail.com >
Cc: Oleg Nesterov <oleg@redhat.com >
Cc: Peter Zijlstra <peterz@infradead.org >
Cc: Rik van Riel <riel@redhat.com >
Cc: Robin Holt <robinmholt@gmail.com >
Cc: Sedat Dilek <sedat.dilek@gmail.com >
Cc: Srikar Dronamraju <srikar@linux.vnet.ibm.com >
Cc: Thomas Gleixner <tglx@linutronix.de >
Cc: Hugh Dickins <hughd@google.com >
Signed-off-by: Andrew Morton <akpm@linux-foundation.org >
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org >
2013-11-15 09:32:14 +09:00
Kirill A. Shutemov
bf929152e9
mm, thp: change pmd_trans_huge_lock() to return taken lock
...
With split ptlock it's important to know which lock
pmd_trans_huge_lock() took. This patch adds one more parameter to the
function to return the lock.
In most places migration to new api is trivial. Exception is
move_huge_pmd(): we need to take two locks if pmd tables are different.
Signed-off-by: Naoya Horiguchi <n-horiguchi@ah.jp.nec.com >
Signed-off-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com >
Tested-by: Alex Thorlton <athorlton@sgi.com >
Cc: Ingo Molnar <mingo@redhat.com >
Cc: "Eric W . Biederman" <ebiederm@xmission.com >
Cc: "Paul E . McKenney" <paulmck@linux.vnet.ibm.com >
Cc: Al Viro <viro@zeniv.linux.org.uk >
Cc: Andi Kleen <ak@linux.intel.com >
Cc: Andrea Arcangeli <aarcange@redhat.com >
Cc: Dave Hansen <dave.hansen@intel.com >
Cc: Dave Jones <davej@redhat.com >
Cc: David Howells <dhowells@redhat.com >
Cc: Frederic Weisbecker <fweisbec@gmail.com >
Cc: Johannes Weiner <hannes@cmpxchg.org >
Cc: Kees Cook <keescook@chromium.org >
Cc: Mel Gorman <mgorman@suse.de >
Cc: Michael Kerrisk <mtk.manpages@gmail.com >
Cc: Oleg Nesterov <oleg@redhat.com >
Cc: Peter Zijlstra <peterz@infradead.org >
Cc: Rik van Riel <riel@redhat.com >
Cc: Robin Holt <robinmholt@gmail.com >
Cc: Sedat Dilek <sedat.dilek@gmail.com >
Cc: Srikar Dronamraju <srikar@linux.vnet.ibm.com >
Cc: Thomas Gleixner <tglx@linutronix.de >
Cc: Hugh Dickins <hughd@google.com >
Signed-off-by: Andrew Morton <akpm@linux-foundation.org >
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org >
2013-11-15 09:32:14 +09:00