diff options
author | Nitin Gupta <nitin.m.gupta@oracle.com> | 2016-07-29 00:54:21 -0700 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2016-07-29 10:49:16 -0700 |
commit | 7bc3777ca19cf9ecc5533980210f29c51df7fe5e (patch) | |
tree | baaa60bd0a6dfe46a902d7e151005b013f340e7f /arch/sparc/include/asm/hugetlb.h | |
parent | af1b1a9b36b8f9d583d4b4f90dd8946ed0cd4bd0 (diff) | |
download | op-kernel-dev-7bc3777ca19cf9ecc5533980210f29c51df7fe5e.zip op-kernel-dev-7bc3777ca19cf9ecc5533980210f29c51df7fe5e.tar.gz |
sparc64: Trim page tables for 8M hugepages
For PMD aligned (8M) hugepages, we currently allocate
all four page table levels which is wasteful. We now
allocate till PMD level only which saves memory usage
from page tables.
Also, when freeing page table for 8M hugepage backed region,
make sure we don't try to access non-existent PTE level.
Orabug: 22630259
Signed-off-by: Nitin Gupta <nitin.m.gupta@oracle.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'arch/sparc/include/asm/hugetlb.h')
-rw-r--r-- | arch/sparc/include/asm/hugetlb.h | 12 |
1 files changed, 4 insertions, 8 deletions
diff --git a/arch/sparc/include/asm/hugetlb.h b/arch/sparc/include/asm/hugetlb.h index 139e711..dcbf985 100644 --- a/arch/sparc/include/asm/hugetlb.h +++ b/arch/sparc/include/asm/hugetlb.h @@ -31,14 +31,6 @@ static inline int prepare_hugepage_range(struct file *file, return 0; } -static inline void hugetlb_free_pgd_range(struct mmu_gather *tlb, - unsigned long addr, unsigned long end, - unsigned long floor, - unsigned long ceiling) -{ - free_pgd_range(tlb, addr, end, floor, ceiling); -} - static inline void huge_ptep_clear_flush(struct vm_area_struct *vma, unsigned long addr, pte_t *ptep) { @@ -82,4 +74,8 @@ static inline void arch_clear_hugepage_flags(struct page *page) { } +void hugetlb_free_pgd_range(struct mmu_gather *tlb, unsigned long addr, + unsigned long end, unsigned long floor, + unsigned long ceiling); + #endif /* _ASM_SPARC64_HUGETLB_H */ |