Alexandre Ghiti
544db7597a
hugetlb: introduce generic version of huge_ptep_get
...
ia64, mips, parisc, powerpc, sh, sparc, x86 architectures use the same
version of huge_ptep_get, so move this generic implementation into
asm-generic/hugetlb.h.
[arnd@arndb.de: fix ARM 3level page tables]
Link: http://lkml.kernel.org/r/20181005161722.904274-1-arnd@arndb.de
Link: http://lkml.kernel.org/r/20180920060358.16606-12-alex@ghiti.fr
Signed-off-by: Alexandre Ghiti <alex@ghiti.fr >
Reviewed-by: Luiz Capitulino <lcapitulino@redhat.com >
Reviewed-by: Mike Kravetz <mike.kravetz@oracle.com >
Tested-by: Helge Deller <deller@gmx.de > [parisc]
Acked-by: Catalin Marinas <catalin.marinas@arm.com > [arm64]
Acked-by: Paul Burton <paul.burton@mips.com > [MIPS]
Acked-by: Ingo Molnar <mingo@kernel.org > [x86]
Cc: Arnd Bergmann <arnd@arndb.de >
Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org >
Cc: David S. Miller <davem@davemloft.net >
Cc: Fenghua Yu <fenghua.yu@intel.com >
Cc: Heiko Carstens <heiko.carstens@de.ibm.com >
Cc: H. Peter Anvin <hpa@zytor.com >
Cc: Ingo Molnar <mingo@redhat.com >
Cc: James E.J. Bottomley <jejb@parisc-linux.org >
Cc: James Hogan <jhogan@kernel.org >
Cc: Martin Schwidefsky <schwidefsky@de.ibm.com >
Cc: Michael Ellerman <mpe@ellerman.id.au >
Cc: Paul Mackerras <paulus@samba.org >
Cc: Ralf Baechle <ralf@linux-mips.org >
Cc: Rich Felker <dalias@libc.org >
Cc: Russell King <linux@armlinux.org.uk >
Cc: Thomas Gleixner <tglx@linutronix.de >
Cc: Tony Luck <tony.luck@intel.com >
Cc: Will Deacon <will.deacon@arm.com >
Cc: Yoshinori Sato <ysato@users.sourceforge.jp >
Signed-off-by: Andrew Morton <akpm@linux-foundation.org >
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org >
2018-10-26 16:26:34 -07:00
Alexandre Ghiti
facf6d5b8b
hugetlb: introduce generic version of huge_ptep_set_access_flags()
...
arm, ia64, sh, x86 architectures use the same version
of huge_ptep_set_access_flags, so move this generic implementation
into asm-generic/hugetlb.h.
Link: http://lkml.kernel.org/r/20180920060358.16606-11-alex@ghiti.fr
Signed-off-by: Alexandre Ghiti <alex@ghiti.fr >
Reviewed-by: Luiz Capitulino <lcapitulino@redhat.com >
Reviewed-by: Mike Kravetz <mike.kravetz@oracle.com >
Tested-by: Helge Deller <deller@gmx.de > [parisc]
Acked-by: Catalin Marinas <catalin.marinas@arm.com > [arm64]
Acked-by: Paul Burton <paul.burton@mips.com > [MIPS]
Acked-by: Ingo Molnar <mingo@kernel.org > [x86]
Cc: Arnd Bergmann <arnd@arndb.de >
Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org >
Cc: David S. Miller <davem@davemloft.net >
Cc: Fenghua Yu <fenghua.yu@intel.com >
Cc: Heiko Carstens <heiko.carstens@de.ibm.com >
Cc: H. Peter Anvin <hpa@zytor.com >
Cc: Ingo Molnar <mingo@redhat.com >
Cc: James E.J. Bottomley <jejb@parisc-linux.org >
Cc: James Hogan <jhogan@kernel.org >
Cc: Martin Schwidefsky <schwidefsky@de.ibm.com >
Cc: Michael Ellerman <mpe@ellerman.id.au >
Cc: Paul Mackerras <paulus@samba.org >
Cc: Ralf Baechle <ralf@linux-mips.org >
Cc: Rich Felker <dalias@libc.org >
Cc: Russell King <linux@armlinux.org.uk >
Cc: Thomas Gleixner <tglx@linutronix.de >
Cc: Tony Luck <tony.luck@intel.com >
Cc: Will Deacon <will.deacon@arm.com >
Cc: Yoshinori Sato <ysato@users.sourceforge.jp >
Signed-off-by: Andrew Morton <akpm@linux-foundation.org >
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org >
2018-10-26 16:26:34 -07:00
Alexandre Ghiti
8e581d433b
hugetlb: introduce generic version of huge_ptep_set_wrprotect()
...
arm, ia64, mips, powerpc, sh, x86 architectures use the same version of
huge_ptep_set_wrprotect, so move this generic implementation into
asm-generic/hugetlb.h.
Link: http://lkml.kernel.org/r/20180920060358.16606-10-alex@ghiti.fr
Signed-off-by: Alexandre Ghiti <alex@ghiti.fr >
Reviewed-by: Luiz Capitulino <lcapitulino@redhat.com >
Reviewed-by: Mike Kravetz <mike.kravetz@oracle.com >
Tested-by: Helge Deller <deller@gmx.de > [parisc]
Acked-by: Catalin Marinas <catalin.marinas@arm.com > [arm64]
Acked-by: Paul Burton <paul.burton@mips.com > [MIPS]
Acked-by: Ingo Molnar <mingo@kernel.org > [x86]
Cc: Arnd Bergmann <arnd@arndb.de >
Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org >
Cc: David S. Miller <davem@davemloft.net >
Cc: Fenghua Yu <fenghua.yu@intel.com >
Cc: Heiko Carstens <heiko.carstens@de.ibm.com >
Cc: H. Peter Anvin <hpa@zytor.com >
Cc: Ingo Molnar <mingo@redhat.com >
Cc: James E.J. Bottomley <jejb@parisc-linux.org >
Cc: James Hogan <jhogan@kernel.org >
Cc: Martin Schwidefsky <schwidefsky@de.ibm.com >
Cc: Michael Ellerman <mpe@ellerman.id.au >
Cc: Paul Mackerras <paulus@samba.org >
Cc: Ralf Baechle <ralf@linux-mips.org >
Cc: Rich Felker <dalias@libc.org >
Cc: Russell King <linux@armlinux.org.uk >
Cc: Thomas Gleixner <tglx@linutronix.de >
Cc: Tony Luck <tony.luck@intel.com >
Cc: Will Deacon <will.deacon@arm.com >
Cc: Yoshinori Sato <ysato@users.sourceforge.jp >
Signed-off-by: Andrew Morton <akpm@linux-foundation.org >
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org >
2018-10-26 16:26:34 -07:00
Alexandre Ghiti
78d6e4e8ea
hugetlb: introduce generic version of prepare_hugepage_range
...
arm, arm64, powerpc, sparc, x86 architectures use the same version of
prepare_hugepage_range, so move this generic implementation into
asm-generic/hugetlb.h.
Link: http://lkml.kernel.org/r/20180920060358.16606-9-alex@ghiti.fr
Signed-off-by: Alexandre Ghiti <alex@ghiti.fr >
Reviewed-by: Luiz Capitulino <lcapitulino@redhat.com >
Reviewed-by: Mike Kravetz <mike.kravetz@oracle.com >
Tested-by: Helge Deller <deller@gmx.de > [parisc]
Acked-by: Catalin Marinas <catalin.marinas@arm.com > [arm64]
Acked-by: Paul Burton <paul.burton@mips.com > [MIPS]
Acked-by: Ingo Molnar <mingo@kernel.org > [x86]
Cc: Arnd Bergmann <arnd@arndb.de >
Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org >
Cc: David S. Miller <davem@davemloft.net >
Cc: Fenghua Yu <fenghua.yu@intel.com >
Cc: Heiko Carstens <heiko.carstens@de.ibm.com >
Cc: H. Peter Anvin <hpa@zytor.com >
Cc: Ingo Molnar <mingo@redhat.com >
Cc: James E.J. Bottomley <jejb@parisc-linux.org >
Cc: James Hogan <jhogan@kernel.org >
Cc: Martin Schwidefsky <schwidefsky@de.ibm.com >
Cc: Michael Ellerman <mpe@ellerman.id.au >
Cc: Paul Mackerras <paulus@samba.org >
Cc: Ralf Baechle <ralf@linux-mips.org >
Cc: Rich Felker <dalias@libc.org >
Cc: Russell King <linux@armlinux.org.uk >
Cc: Thomas Gleixner <tglx@linutronix.de >
Cc: Tony Luck <tony.luck@intel.com >
Cc: Will Deacon <will.deacon@arm.com >
Cc: Yoshinori Sato <ysato@users.sourceforge.jp >
Signed-off-by: Andrew Morton <akpm@linux-foundation.org >
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org >
2018-10-26 16:26:34 -07:00
Alexandre Ghiti
c4916a0086
hugetlb: introduce generic version of huge_pte_wrprotect
...
arm, arm64, ia64, mips, parisc, powerpc, sh, sparc, x86 architectures use
the same version of huge_pte_wrprotect, so move this generic
implementation into asm-generic/hugetlb.h.
Link: http://lkml.kernel.org/r/20180920060358.16606-8-alex@ghiti.fr
Signed-off-by: Alexandre Ghiti <alex@ghiti.fr >
Reviewed-by: Luiz Capitulino <lcapitulino@redhat.com >
Reviewed-by: Mike Kravetz <mike.kravetz@oracle.com >
Tested-by: Helge Deller <deller@gmx.de > [parisc]
Acked-by: Catalin Marinas <catalin.marinas@arm.com > [arm64]
Acked-by: Paul Burton <paul.burton@mips.com > [MIPS]
Acked-by: Ingo Molnar <mingo@kernel.org > [x86]
Cc: Arnd Bergmann <arnd@arndb.de >
Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org >
Cc: David S. Miller <davem@davemloft.net >
Cc: Fenghua Yu <fenghua.yu@intel.com >
Cc: Heiko Carstens <heiko.carstens@de.ibm.com >
Cc: H. Peter Anvin <hpa@zytor.com >
Cc: Ingo Molnar <mingo@redhat.com >
Cc: James E.J. Bottomley <jejb@parisc-linux.org >
Cc: James Hogan <jhogan@kernel.org >
Cc: Martin Schwidefsky <schwidefsky@de.ibm.com >
Cc: Michael Ellerman <mpe@ellerman.id.au >
Cc: Paul Mackerras <paulus@samba.org >
Cc: Ralf Baechle <ralf@linux-mips.org >
Cc: Rich Felker <dalias@libc.org >
Cc: Russell King <linux@armlinux.org.uk >
Cc: Thomas Gleixner <tglx@linutronix.de >
Cc: Tony Luck <tony.luck@intel.com >
Cc: Will Deacon <will.deacon@arm.com >
Cc: Yoshinori Sato <ysato@users.sourceforge.jp >
Signed-off-by: Andrew Morton <akpm@linux-foundation.org >
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org >
2018-10-26 16:26:34 -07:00
Alexandre Ghiti
cae72abc1a
hugetlb: introduce generic version of huge_pte_none()
...
arm, arm64, ia64, mips, parisc, powerpc, sh, sparc, x86 architectures use
the same version of huge_pte_none, so move this generic implementation
into asm-generic/hugetlb.h.
Link: http://lkml.kernel.org/r/20180920060358.16606-7-alex@ghiti.fr
Signed-off-by: Alexandre Ghiti <alex@ghiti.fr >
Reviewed-by: Luiz Capitulino <lcapitulino@redhat.com >
Reviewed-by: Mike Kravetz <mike.kravetz@oracle.com >
Tested-by: Helge Deller <deller@gmx.de > [parisc]
Acked-by: Catalin Marinas <catalin.marinas@arm.com > [arm64]
Acked-by: Paul Burton <paul.burton@mips.com > [MIPS]
Acked-by: Ingo Molnar <mingo@kernel.org > [x86]
Cc: Arnd Bergmann <arnd@arndb.de >
Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org >
Cc: David S. Miller <davem@davemloft.net >
Cc: Fenghua Yu <fenghua.yu@intel.com >
Cc: Heiko Carstens <heiko.carstens@de.ibm.com >
Cc: H. Peter Anvin <hpa@zytor.com >
Cc: Ingo Molnar <mingo@redhat.com >
Cc: James E.J. Bottomley <jejb@parisc-linux.org >
Cc: James Hogan <jhogan@kernel.org >
Cc: Martin Schwidefsky <schwidefsky@de.ibm.com >
Cc: Michael Ellerman <mpe@ellerman.id.au >
Cc: Paul Mackerras <paulus@samba.org >
Cc: Ralf Baechle <ralf@linux-mips.org >
Cc: Rich Felker <dalias@libc.org >
Cc: Russell King <linux@armlinux.org.uk >
Cc: Thomas Gleixner <tglx@linutronix.de >
Cc: Tony Luck <tony.luck@intel.com >
Cc: Will Deacon <will.deacon@arm.com >
Cc: Yoshinori Sato <ysato@users.sourceforge.jp >
Signed-off-by: Andrew Morton <akpm@linux-foundation.org >
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org >
2018-10-26 16:26:34 -07:00
Alexandre Ghiti
fe632225bd
hugetlb: introduce generic version of huge_ptep_clear_flush
...
arm, x86 architectures use the same version of huge_ptep_clear_flush, so
move this generic implementation into asm-generic/hugetlb.h.
Link: http://lkml.kernel.org/r/20180920060358.16606-6-alex@ghiti.fr
Signed-off-by: Alexandre Ghiti <alex@ghiti.fr >
Reviewed-by: Luiz Capitulino <lcapitulino@redhat.com >
Reviewed-by: Mike Kravetz <mike.kravetz@oracle.com >
Tested-by: Helge Deller <deller@gmx.de > [parisc]
Acked-by: Catalin Marinas <catalin.marinas@arm.com > [arm64]
Acked-by: Paul Burton <paul.burton@mips.com > [MIPS]
Acked-by: Ingo Molnar <mingo@kernel.org > [x86]
Cc: Arnd Bergmann <arnd@arndb.de >
Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org >
Cc: David S. Miller <davem@davemloft.net >
Cc: Fenghua Yu <fenghua.yu@intel.com >
Cc: Heiko Carstens <heiko.carstens@de.ibm.com >
Cc: H. Peter Anvin <hpa@zytor.com >
Cc: Ingo Molnar <mingo@redhat.com >
Cc: James E.J. Bottomley <jejb@parisc-linux.org >
Cc: James Hogan <jhogan@kernel.org >
Cc: Martin Schwidefsky <schwidefsky@de.ibm.com >
Cc: Michael Ellerman <mpe@ellerman.id.au >
Cc: Paul Mackerras <paulus@samba.org >
Cc: Ralf Baechle <ralf@linux-mips.org >
Cc: Rich Felker <dalias@libc.org >
Cc: Russell King <linux@armlinux.org.uk >
Cc: Thomas Gleixner <tglx@linutronix.de >
Cc: Tony Luck <tony.luck@intel.com >
Cc: Will Deacon <will.deacon@arm.com >
Cc: Yoshinori Sato <ysato@users.sourceforge.jp >
Signed-off-by: Andrew Morton <akpm@linux-foundation.org >
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org >
2018-10-26 16:26:34 -07:00
Alexandre Ghiti
a4d838536c
hugetlb: introduce generic version of huge_ptep_get_and_clear()
...
arm, ia64, sh, x86 architectures use the same version of
huge_ptep_get_and_clear, so move this generic implementation into
asm-generic/hugetlb.h.
Link: http://lkml.kernel.org/r/20180920060358.16606-5-alex@ghiti.fr
Signed-off-by: Alexandre Ghiti <alex@ghiti.fr >
Reviewed-by: Luiz Capitulino <lcapitulino@redhat.com >
Reviewed-by: Mike Kravetz <mike.kravetz@oracle.com >
Tested-by: Helge Deller <deller@gmx.de > [parisc]
Acked-by: Catalin Marinas <catalin.marinas@arm.com > [arm64]
Acked-by: Paul Burton <paul.burton@mips.com > [MIPS]
Acked-by: Ingo Molnar <mingo@kernel.org > [x86]
Cc: Arnd Bergmann <arnd@arndb.de >
Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org >
Cc: David S. Miller <davem@davemloft.net >
Cc: Fenghua Yu <fenghua.yu@intel.com >
Cc: Heiko Carstens <heiko.carstens@de.ibm.com >
Cc: H. Peter Anvin <hpa@zytor.com >
Cc: Ingo Molnar <mingo@redhat.com >
Cc: James E.J. Bottomley <jejb@parisc-linux.org >
Cc: James Hogan <jhogan@kernel.org >
Cc: Martin Schwidefsky <schwidefsky@de.ibm.com >
Cc: Michael Ellerman <mpe@ellerman.id.au >
Cc: Paul Mackerras <paulus@samba.org >
Cc: Ralf Baechle <ralf@linux-mips.org >
Cc: Rich Felker <dalias@libc.org >
Cc: Russell King <linux@armlinux.org.uk >
Cc: Thomas Gleixner <tglx@linutronix.de >
Cc: Tony Luck <tony.luck@intel.com >
Cc: Will Deacon <will.deacon@arm.com >
Cc: Yoshinori Sato <ysato@users.sourceforge.jp >
Signed-off-by: Andrew Morton <akpm@linux-foundation.org >
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org >
2018-10-26 16:26:34 -07:00
Alexandre Ghiti
cea685d556
hugetlb: introduce generic version of set_huge_pte_at()
...
arm, ia64, mips, powerpc, sh, x86 architectures use the same version of
set_huge_pte_at, so move this generic implementation into
asm-generic/hugetlb.h.
Link: http://lkml.kernel.org/r/20180920060358.16606-4-alex@ghiti.fr
Signed-off-by: Alexandre Ghiti <alex@ghiti.fr >
Reviewed-by: Luiz Capitulino <lcapitulino@redhat.com >
Reviewed-by: Mike Kravetz <mike.kravetz@oracle.com >
Tested-by: Helge Deller <deller@gmx.de > [parisc]
Acked-by: Catalin Marinas <catalin.marinas@arm.com > [arm64]
Acked-by: Paul Burton <paul.burton@mips.com > [MIPS]
Acked-by: Ingo Molnar <mingo@kernel.org > [x86]
Cc: Arnd Bergmann <arnd@arndb.de >
Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org >
Cc: David S. Miller <davem@davemloft.net >
Cc: Fenghua Yu <fenghua.yu@intel.com >
Cc: Heiko Carstens <heiko.carstens@de.ibm.com >
Cc: H. Peter Anvin <hpa@zytor.com >
Cc: Ingo Molnar <mingo@redhat.com >
Cc: James E.J. Bottomley <jejb@parisc-linux.org >
Cc: James Hogan <jhogan@kernel.org >
Cc: Martin Schwidefsky <schwidefsky@de.ibm.com >
Cc: Michael Ellerman <mpe@ellerman.id.au >
Cc: Paul Mackerras <paulus@samba.org >
Cc: Ralf Baechle <ralf@linux-mips.org >
Cc: Rich Felker <dalias@libc.org >
Cc: Russell King <linux@armlinux.org.uk >
Cc: Thomas Gleixner <tglx@linutronix.de >
Cc: Tony Luck <tony.luck@intel.com >
Cc: Will Deacon <will.deacon@arm.com >
Cc: Yoshinori Sato <ysato@users.sourceforge.jp >
Signed-off-by: Andrew Morton <akpm@linux-foundation.org >
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org >
2018-10-26 16:26:34 -07:00
Alexandre Ghiti
1e5f50fc9d
hugetlb: introduce generic version of hugetlb_free_pgd_range
...
arm, arm64, mips, parisc, sh, x86 architectures use the same version of
hugetlb_free_pgd_range, so move this generic implementation into
asm-generic/hugetlb.h.
Link: http://lkml.kernel.org/r/20180920060358.16606-3-alex@ghiti.fr
Signed-off-by: Alexandre Ghiti <alex@ghiti.fr >
Reviewed-by: Luiz Capitulino <lcapitulino@redhat.com >
Reviewed-by: Mike Kravetz <mike.kravetz@oracle.com >
Tested-by: Helge Deller <deller@gmx.de > [parisc]
Acked-by: Catalin Marinas <catalin.marinas@arm.com > [arm64]
Acked-by: Paul Burton <paul.burton@mips.com > [MIPS]
Acked-by: Ingo Molnar <mingo@kernel.org > [x86]
Cc: Arnd Bergmann <arnd@arndb.de >
Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org >
Cc: David S. Miller <davem@davemloft.net >
Cc: Fenghua Yu <fenghua.yu@intel.com >
Cc: Heiko Carstens <heiko.carstens@de.ibm.com >
Cc: H. Peter Anvin <hpa@zytor.com >
Cc: Ingo Molnar <mingo@redhat.com >
Cc: James E.J. Bottomley <jejb@parisc-linux.org >
Cc: James Hogan <jhogan@kernel.org >
Cc: Martin Schwidefsky <schwidefsky@de.ibm.com >
Cc: Michael Ellerman <mpe@ellerman.id.au >
Cc: Paul Mackerras <paulus@samba.org >
Cc: Ralf Baechle <ralf@linux-mips.org >
Cc: Rich Felker <dalias@libc.org >
Cc: Russell King <linux@armlinux.org.uk >
Cc: Thomas Gleixner <tglx@linutronix.de >
Cc: Tony Luck <tony.luck@intel.com >
Cc: Will Deacon <will.deacon@arm.com >
Cc: Yoshinori Sato <ysato@users.sourceforge.jp >
Signed-off-by: Andrew Morton <akpm@linux-foundation.org >
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org >
2018-10-26 16:26:34 -07:00
Dominik Dingel
08bd4fc156
mm/hugetlb: remove arch_prepare/release_hugepage from arch headers
...
Nobody used these hooks so they were removed from common code, and can now
be removed from the architectures.
Signed-off-by: Dominik Dingel <dingel@linux.vnet.ibm.com >
Acked-by: Martin Schwidefsky <schwidefsky@de.ibm.com >
Acked-by: Ralf Baechle <ralf@linux-mips.org >
Cc: Heiko Carstens <heiko.carstens@de.ibm.com >
Cc: Christian Borntraeger <borntraeger@de.ibm.com >
Signed-off-by: Andrew Morton <akpm@linux-foundation.org >
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org >
2015-06-25 17:00:35 -07:00
Zhang Zhen
a67a31fa30
mm/hugetlb: reduce arch dependent code about hugetlb_prefault_arch_hook
...
Currently we have many duplicates in definitions of
hugetlb_prefault_arch_hook. In all architectures this function is empty.
Signed-off-by: Zhang Zhen <zhenzhang.zhang@huawei.com >
Acked-by: David Rientjes <rientjes@google.com >
Signed-off-by: Andrew Morton <akpm@linux-foundation.org >
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org >
2015-06-24 17:49:41 -07:00
Gerald Schaefer
106c992a5e
mm/hugetlb: add more arch-defined huge_pte functions
...
Commit abf09bed3c
("s390/mm: implement software dirty bits")
introduced another difference in the pte layout vs. the pmd layout on
s390, thoroughly breaking the s390 support for hugetlbfs. This requires
replacing some more pte_xxx functions in mm/hugetlbfs.c with a
huge_pte_xxx version.
This patch introduces those huge_pte_xxx functions and their generic
implementation in asm-generic/hugetlb.h, which will now be included on
all architectures supporting hugetlbfs apart from s390. This change
will be a no-op for those architectures.
[akpm@linux-foundation.org: fix warning]
Signed-off-by: Gerald Schaefer <gerald.schaefer@de.ibm.com>
Cc: Mel Gorman <mgorman@suse.de>
Cc: Hugh Dickins <hughd@google.com>
Cc: Hillf Danton <dhillf@gmail.com>
Acked-by: Michal Hocko <mhocko@suse.cz> [for !s390 parts]
Cc: Tony Luck <tony.luck@intel.com>
Cc: Fenghua Yu <fenghua.yu@intel.com>
Cc: Ralf Baechle <ralf@linux-mips.org>
Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Cc: Paul Mackerras <paulus@samba.org>
Cc: Paul Mundt <lethal@linux-sh.org>
Cc: "David S. Miller" <davem@davemloft.net>
Cc: Chris Metcalf <cmetcalf@tilera.com>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: Ingo Molnar <mingo@redhat.com>
Cc: "H. Peter Anvin" <hpa@zytor.com>
Cc: Martin Schwidefsky <schwidefsky@de.ibm.com>
Cc: Heiko Carstens <heiko.carstens@de.ibm.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2013-04-29 15:54:33 -07:00
David Daney
ac53c4fca4
MIPS: Avoid mcheck by flushing page range in huge_ptep_set_access_flags()
...
Problem:
1) Huge page mapping of anonymous memory is initially invalid. Will be
faulted in by copy-on-write mechanism.
2) Userspace attempts store at the end of the huge mapping.
3) TLB Refill exception handler fill TLB with a normal (4K sized)
invalid page at the end of the huge mapping virtual address range.
4) Userspace restarted, and re-attempts the store at the end of the
huge mapping.
5) Page from #3 is invalid, we get a fault and go to the hugepage
fault handler. This tries to map a huge page and calls
huge_ptep_set_access_flags() to install the mapping.
6) We just call the generic ptep_set_access_flags() to set up the page
tables, but the flush there assumes a normal (4K sized) page and
only tries to flush the first part of the huge page virtual address
out of the TLB, since the existing entry from step #3 doesn't
conflict, nothing is flushed.
7) We attempt to load the mapping into the TLB, but because it
conflicts with the entry from step #3 , we get a Machine Check
exception.
The fix: Flush the entire rage covered by the huge page in
huge_ptep_set_access_flags(), and remove the optimization in
local_flush_tlb_range() so that the flush actually does the correct
thing.
Signed-off-by: David Daney <david.daney@cavium.com >
Cc: linux-mips@linux-mips.org
Cc: linux-kernel@vger.kernel.org
Cc: Hillf Danton <dhillf@gmail.com >
Patchwork: https://patchwork.linux-mips.org/patch/4661/
Signed-off-by: Ralf Baechle <ralf@linux-mips.org >
(cherry picked from commit dd617f258cc39d36be26afee9912624a2d23112c)
2012-12-04 16:57:54 +01:00
Will Deacon
5d3a551c28
mm: hugetlb: add arch hook for clearing page flags before entering pool
...
The core page allocator ensures that page flags are zeroed when freeing
pages via free_pages_check. A number of architectures (ARM, PPC, MIPS)
rely on this property to treat new pages as dirty with respect to the data
cache and perform the appropriate flushing before mapping the pages into
userspace.
This can lead to cache synchronisation problems when using hugepages,
since the allocator keeps its own pool of pages above the usual page
allocator and does not reset the page flags when freeing a page into the
pool.
This patch adds a new architecture hook, arch_clear_hugepage_flags, so
that architectures which rely on the page flags being in a particular
state for fresh allocations can adjust the flags accordingly when a page
is freed into the pool.
Signed-off-by: Will Deacon <will.deacon@arm.com >
Cc: Michal Hocko <mhocko@suse.cz >
Reviewed-by: Michal Hocko <mhocko@suse.cz >
Signed-off-by: Andrew Morton <akpm@linux-foundation.org >
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org >
2012-10-09 16:22:24 +09:00
Hillf Danton
5639bc4a64
MIPS: Hugetlb: Keep TLB cache hot while flushing
...
If we only flush the TLB of the given huge page, the TLB cache remains hot
for the relevant mm as it is, and less will be refilled after flush, huge
or not.
Signed-off-by: Hillf Danton <dhillf@gmail.com >
Cc: linux-mips@linux-mips.org
Acked-by: David Daney <david.daney@cavium.com >
Patchwork: https://patchwork.linux-mips.org/patch/2860/
Signed-off-by: Ralf Baechle <ralf@linux-mips.org >
2011-12-07 22:03:45 +00:00
David Daney
310f130339
MIPS: Invalidate old TLB mappings when updating huge page PTEs.
...
Without this, stale Icache or TLB entries may be used.
Signed-off-by: David Daney <ddaney@caviumnetworks.com >
To: linux-mips@linux-mips.org
https://patchwork.linux-mips.org/patch/2318/
Signed-off-by: Ralf Baechle <ralf@linux-mips.org >
2011-05-10 18:15:26 +01:00
David Daney
50a41ff292
MIPS: Add support files for hugetlbfs.
...
Signed-off-by: David Daney <ddaney@caviumnetworks.com >
Signed-off-by: Ralf Baechle <ralf@linux-mips.org >
2009-06-17 11:06:30 +01:00