linux/arch
Aneesh Kumar K.V 15a25b2ead mm/thp: split out pmd collapse flush into separate functions
Architectures like ppc64 [1] need to do special things while clearing pmd
before a collapse.  For them this operation is largely different from a
normal hugepage pte clear.  Hence add a separate function to clear pmd
before collapse.  After this patch pmdp_* functions operate only on
hugepage pte, and not on regular pmd_t values pointing to page table.

[1] ppc64 needs to invalidate all the normal page pte mappings we already
have inserted in the hardware hash page table.  But before doing that we
need to make sure there are no parallel hash page table insert going on.
So we need to do a kick_all_cpus_sync() before flushing the older hash
table entries.  By moving this to a separate function we capture these
details and mention how it is different from a hugepage pte clear.

This patch is a cleanup and only does code movement for clarity.  There
should not be any change in functionality.

Signed-off-by: Aneesh Kumar K.V <aneesh.kumar@linux.vnet.ibm.com>
Acked-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Cc: Paul Mackerras <paulus@samba.org>
Cc: Michael Ellerman <mpe@ellerman.id.au>
Cc: Andrea Arcangeli <aarcange@redhat.com>
Cc: Martin Schwidefsky <schwidefsky@de.ibm.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2015-06-24 17:49:44 -07:00
..
alpha mm: new mm hook framework 2015-06-24 17:49:41 -07:00
arc mm: new mm hook framework 2015-06-24 17:49:41 -07:00
arm mm/hugetlb: reduce arch dependent code about hugetlb_prefault_arch_hook 2015-06-24 17:49:41 -07:00
arm64 mm/hugetlb: reduce arch dependent code about hugetlb_prefault_arch_hook 2015-06-24 17:49:41 -07:00
avr32 mm: new mm hook framework 2015-06-24 17:49:41 -07:00
blackfin mm: new mm hook framework 2015-06-24 17:49:41 -07:00
c6x mm: new mm hook framework 2015-06-24 17:49:41 -07:00
cris mm: new mm hook framework 2015-06-24 17:49:41 -07:00
frv mm: new mm hook framework 2015-06-24 17:49:41 -07:00
hexagon mm: new mm hook framework 2015-06-24 17:49:41 -07:00
ia64 mm/hugetlb: reduce arch dependent code about hugetlb_prefault_arch_hook 2015-06-24 17:49:41 -07:00
m32r mm: new mm hook framework 2015-06-24 17:49:41 -07:00
m68k mm: new mm hook framework 2015-06-24 17:49:41 -07:00
metag mm/hugetlb: reduce arch dependent code about hugetlb_prefault_arch_hook 2015-06-24 17:49:41 -07:00
microblaze mm: new mm hook framework 2015-06-24 17:49:41 -07:00
mips mm/hugetlb: reduce arch dependent code about hugetlb_prefault_arch_hook 2015-06-24 17:49:41 -07:00
mn10300 mm: new mm hook framework 2015-06-24 17:49:41 -07:00
nios2 mm: new mm hook framework 2015-06-24 17:49:41 -07:00
openrisc mm: new mm hook framework 2015-06-24 17:49:41 -07:00
parisc mm: new mm hook framework 2015-06-24 17:49:41 -07:00
powerpc mm/thp: split out pmd collapse flush into separate functions 2015-06-24 17:49:44 -07:00
s390 mm/hugetlb: reduce arch dependent code about hugetlb_prefault_arch_hook 2015-06-24 17:49:41 -07:00
score mm: new mm hook framework 2015-06-24 17:49:41 -07:00
sh mm/hugetlb: reduce arch dependent code about hugetlb_prefault_arch_hook 2015-06-24 17:49:41 -07:00
sparc mm/hugetlb: reduce arch dependent code about hugetlb_prefault_arch_hook 2015-06-24 17:49:41 -07:00
tile mm/hugetlb: reduce arch dependent code about hugetlb_prefault_arch_hook 2015-06-24 17:49:41 -07:00
um mm: new mm hook framework 2015-06-24 17:49:41 -07:00
unicore32 mm: new mm hook framework 2015-06-24 17:49:41 -07:00
x86 mm/hugetlb: reduce arch dependent code about hugetlb_prefault_arch_hook 2015-06-24 17:49:41 -07:00
xtensa mm: new mm hook framework 2015-06-24 17:49:41 -07:00
.gitignore
Kconfig powerpc updates for 4.1 2015-04-16 13:53:32 -05:00