On 11/10/2014 06:22 AM, Joshua Kinard wrote:
On 11/10/2014 06:20, Thomas Bogendoerfer wrote:
On Mon, Nov 10, 2014 at 11:51:06AM +0100, Ralf Baechle wrote:
Thomas,
can you test CONFIG_TRANSPARENT_HUGEPAGE on an IP28?
All in all the R10000's TLB is unproblematic; my gut feeling is that
rather something else specific to IP27 is spoiling the broth.
I'll give it a spin later today.
Thomas.
Try testing with and without CONFIG_HUGETLBFS in the kernel. File systems ->
Pseudo filesystems -> HugeTLB file system support
So far, it seems adding that option in with CONFIG_TRANSPARENT_HUGEPAGE makes
both IP27 and IP30 behave. Without, I get data bus errors or segfaults on IP27
running Gentoo's "emerge" program on PAGE_SIZE_4K.
IP30 seems to be fine on an R12000 with or without that option, but I only have
a dual R12K module to test against. I've only had the R14K dual module for a
few days, and I could not reproduce the bus errors on that module, either. So
I wonder if there is something funny with the hardware on the single R14K
module, which I did get IBE's on before. And whether that will behave once
CONFIG_HUGETLBFS is in the kernel.
If so, maybe the fix is to make CONFIG_HUGETLBFS automatically selected if
CONFIG_TRANSPARENT_HUGEPAGE?
Yes, you may be on to something here. Certianly basic huge TLB support
must be in place for TRANSPARENT_HUGEPAGE to work.
It could be that the Kconfig symbols for the various portions of huge
page support are missing the required dependencies.
FWIW, I always build with a huge page Kconfig options set.
I have:
$ grep HUGE .config
CONFIG_SYS_SUPPORTS_HUGETLBFS=y
CONFIG_MIPS_HUGE_TLB_SUPPORT=y
CONFIG_CPU_SUPPORTS_HUGEPAGES=y
CONFIG_TRANSPARENT_HUGEPAGE=y
CONFIG_TRANSPARENT_HUGEPAGE_ALWAYS=y
# CONFIG_TRANSPARENT_HUGEPAGE_MADVISE is not set
CONFIG_HAVE_ARCH_TRANSPARENT_HUGEPAGE=y
CONFIG_HUGETLBFS=y
CONFIG_HUGETLB_PAGE=y
I suspect that you may not need CONFIG_HUGETLBFS, but
CONFIG_HUGETLB_PAGE is probably essential.
David Daney
--J