Skip to content

Commit ff79258

Browse files
committed
arm64: hugetlb: partial revert of 66b3923
Commit 66b3923 ("arm64: hugetlb: add support for PTE contiguous bit") introduced support for huge pages using the contiguous bit in the PTE as opposed to block mappings, which may be slightly unwieldy (512M) in 64k page configurations. Unfortunately, this support has resulted in some late regressions when running the libhugetlbfs test suite with 64k pages and CONFIG_DEBUG_VM as a result of a BUG: | readback (2M: 64): ------------[ cut here ]------------ | kernel BUG at fs/hugetlbfs/inode.c:446! | Internal error: Oops - BUG: 0 [#1] SMP | Modules linked in: | CPU: 7 PID: 1448 Comm: readback Not tainted 4.5.0-rc7 torvalds#148 | Hardware name: linux,dummy-virt (DT) | task: fffffe0040964b00 ti: fffffe00c2668000 task.ti: fffffe00c2668000 | PC is at remove_inode_hugepages+0x44c/0x480 | LR is at remove_inode_hugepages+0x264/0x480 Rather than revert the entire patch, simply avoid advertising the contiguous huge page sizes for now while people are actively working on a fix. This patch can then be reverted once things have been sorted out. Cc: David Woods <dwoods@ezchip.com> Reported-by: Steve Capper <steve.capper@arm.com> Signed-off-by: Will Deacon <will.deacon@arm.com>
1 parent 36e5cd6 commit ff79258

File tree

1 file changed

+0
-14
lines changed

1 file changed

+0
-14
lines changed

arch/arm64/mm/hugetlbpage.c

Lines changed: 0 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -306,24 +306,10 @@ static __init int setup_hugepagesz(char *opt)
306306
hugetlb_add_hstate(PMD_SHIFT - PAGE_SHIFT);
307307
} else if (ps == PUD_SIZE) {
308308
hugetlb_add_hstate(PUD_SHIFT - PAGE_SHIFT);
309-
} else if (ps == (PAGE_SIZE * CONT_PTES)) {
310-
hugetlb_add_hstate(CONT_PTE_SHIFT);
311-
} else if (ps == (PMD_SIZE * CONT_PMDS)) {
312-
hugetlb_add_hstate((PMD_SHIFT + CONT_PMD_SHIFT) - PAGE_SHIFT);
313309
} else {
314310
pr_err("hugepagesz: Unsupported page size %lu K\n", ps >> 10);
315311
return 0;
316312
}
317313
return 1;
318314
}
319315
__setup("hugepagesz=", setup_hugepagesz);
320-
321-
#ifdef CONFIG_ARM64_64K_PAGES
322-
static __init int add_default_hugepagesz(void)
323-
{
324-
if (size_to_hstate(CONT_PTES * PAGE_SIZE) == NULL)
325-
hugetlb_add_hstate(CONT_PMD_SHIFT);
326-
return 0;
327-
}
328-
arch_initcall(add_default_hugepagesz);
329-
#endif

0 commit comments

Comments
 (0)