lkml.org 
[lkml]   [2008]   [Apr]   [2]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    Date
    From
    SubjectRe: HugeTLB vs. SH3 cpu
    On Tue, Apr 01, 2008 at 04:26:14PM -0700, Nish Aravamudan wrote:
    > On 4/1/08, Adrian Bunk <bunk@kernel.org> wrote:
    > > fs/Kconfig says:
    > >
    > > config HUGETLBFS
    > > bool "HugeTLB file system support"
    > > depends on X86 || IA64 || PPC64 || SPARC64 || (SUPERH && MMU) || BROKEN
    > >
    > >
    > > arch/sh/mm/Kconfig says:
    > >
    > > choice
    > > prompt "HugeTLB page size"
    > > depends on HUGETLB_PAGE && (CPU_SH4 || CPU_SH5) && MMU
    >
    > So the problem is that SH3 is allowed to enable
    > HUGETLB_PAGE/HUGETLBFS, but only SH4/5 define the HPAGE_SHIFT macro,
    > due to some #ifdeffery on the hugepage size. So either the choice
    > needs to be extended to include CPU_SH3 (which builds here, when
    > changed) or the HUGETLBFS conditional needs to depend more
    > specifically on SH4/5 and not just SUPERH. I think the arch maintainer
    > has to make that call, as I don't know the hardware to say if SH3
    > actually supports multiple hugepage sizes.
    >
    The problem is that the hugetlb Kconfig stuff is a complete mess. There's
    a semi-decoupling between HUGETLBFS and HUGETLB_PAGE, though they both
    depend on each other.

    Sorting out the mess noted by Adrian is pretty trivial with a
    HAVE_HUGETLB_PAGE. How about this?

    Signed-off-by: Paul Mundt <lethal@linux-sh.org>

    ---

    arch/ia64/Kconfig | 1 +
    arch/powerpc/platforms/Kconfig.cputype | 1 +
    arch/sh/Kconfig | 2 ++
    arch/sparc64/Kconfig | 1 +
    arch/x86/Kconfig | 1 +
    fs/Kconfig | 3 ++-
    mm/Kconfig | 3 +++
    7 files changed, 11 insertions(+), 1 deletion(-)

    diff --git a/arch/ia64/Kconfig b/arch/ia64/Kconfig
    index 8fa3faf..bb1e02b 100644
    --- a/arch/ia64/Kconfig
    +++ b/arch/ia64/Kconfig
    @@ -19,6 +19,7 @@ config IA64
    select HAVE_OPROFILE
    select HAVE_KPROBES
    select HAVE_KRETPROBES
    + select HAVE_HUGETLB_PAGE
    default y
    help
    The Itanium Processor Family is Intel's 64-bit successor to
    diff --git a/arch/powerpc/platforms/Kconfig.cputype b/arch/powerpc/platforms/Kconfig.cputype
    index 0c3face..7c937ad 100644
    --- a/arch/powerpc/platforms/Kconfig.cputype
    +++ b/arch/powerpc/platforms/Kconfig.cputype
    @@ -1,5 +1,6 @@
    config PPC64
    bool "64-bit kernel"
    + select HAVE_HUGETLB_PAGE
    default n
    help
    This option selects whether a 32-bit or a 64-bit kernel
    diff --git a/arch/sh/Kconfig b/arch/sh/Kconfig
    index df2e2f9..c48f629 100644
    --- a/arch/sh/Kconfig
    +++ b/arch/sh/Kconfig
    @@ -114,6 +114,7 @@ config CPU_SH3

    config CPU_SH4
    bool
    + select HAVE_HUGETLB_PAGE
    select CPU_HAS_INTEVT
    select CPU_HAS_SR_RB
    select CPU_HAS_PTEA if !CPU_SH4A || CPU_SHX2
    @@ -130,6 +131,7 @@ config CPU_SH4AL_DSP

    config CPU_SH5
    bool
    + select HAVE_HUGETLB_PAGE
    select CPU_HAS_FPU

    config CPU_SHX2
    diff --git a/arch/sparc64/Kconfig b/arch/sparc64/Kconfig
    index 463d1be..3045673 100644
    --- a/arch/sparc64/Kconfig
    +++ b/arch/sparc64/Kconfig
    @@ -16,6 +16,7 @@ config SPARC64
    bool
    default y
    select HAVE_IDE
    + select HAVE_HUGETLB_PAGE
    help
    SPARC is a family of RISC microprocessors designed and marketed by
    Sun Microsystems, incorporated. This port covers the newer 64-bit
    diff --git a/arch/x86/Kconfig b/arch/x86/Kconfig
    index 6c70fed..d91e7b7 100644
    --- a/arch/x86/Kconfig
    +++ b/arch/x86/Kconfig
    @@ -22,6 +22,7 @@ config X86
    select HAVE_OPROFILE
    select HAVE_KPROBES
    select HAVE_KRETPROBES
    + select HAVE_HUGETLB_PAGE
    select HAVE_KVM if ((X86_32 && !X86_VOYAGER && !X86_VISWS && !X86_NUMAQ) || X86_64)


    diff --git a/fs/Kconfig b/fs/Kconfig
    index d731282..f886ae2 100644
    --- a/fs/Kconfig
    +++ b/fs/Kconfig
    @@ -978,7 +978,7 @@ config TMPFS_POSIX_ACL

    config HUGETLBFS
    bool "HugeTLB file system support"
    - depends on X86 || IA64 || PPC64 || SPARC64 || (SUPERH && MMU) || BROKEN
    + depends on HAVE_HUGETLB_PAGE || BROKEN
    help
    hugetlbfs is a filesystem backing for HugeTLB pages, based on
    ramfs. For architectures that support it, say Y here and read
    @@ -987,6 +987,7 @@ config HUGETLBFS
    If unsure, say N.

    config HUGETLB_PAGE
    + depends on MMU
    def_bool HUGETLBFS

    config CONFIGFS_FS
    diff --git a/mm/Kconfig b/mm/Kconfig
    index 0016ebd..3113374 100644
    --- a/mm/Kconfig
    +++ b/mm/Kconfig
    @@ -90,6 +90,9 @@ config HAVE_MEMORY_PRESENT
    def_bool y
    depends on ARCH_HAVE_MEMORY_PRESENT || SPARSEMEM

    +config HAVE_HUGETLB_PAGE
    + def_bool n
    +
    #
    # SPARSEMEM_EXTREME (which is the default) does some bootmem
    # allocations when memory_present() is called. If this cannot

    \
     
     \ /
      Last update: 2008-04-02 10:07    [W:0.028 / U:331.052 seconds]
    ©2003-2017 Jasper Spaans. hosted at Digital OceanAdvertise on this site