Re: HugeTLB vs. SH3 cpu

From: Paul Mundt
Date: Thu Apr 03 2008 - 01:49:25 EST


On Wed, Apr 02, 2008 at 05:06:09PM -0700, Dave Hansen wrote:
> On Wed, 2008-04-02 at 15:55 -0700, Nishanth Aravamudan wrote:
> > On 02.04.2008 [17:04:48 +0900], Paul Mundt wrote:
> > > On Tue, Apr 01, 2008 at 04:26:14PM -0700, Nish Aravamudan wrote:
> > > Sorting out the mess noted by Adrian is pretty trivial with a
> > > HAVE_HUGETLB_PAGE. How about this?
> >
> > I'm confused, isn't the following simpler fix equivalent?
> >
> > Fix sh3 build with HUGETLBFS=y. Only SH4 and SH5 actually support
> > HUGETLB_PAGE (which HUGETLBFS depends on).
> >
> > Signed-off-by: Nishanth Aravamudan <nacc@xxxxxxxxxx>
> >
> > diff --git a/fs/Kconfig b/fs/Kconfig
> > index d731282..1981f8e 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 X86 || IA64 || PPC64 || SPARC64 || ((CPU_SH4 || CPU_SH5) && MMU) || BROKEN
>
> Yeah, that's equivalent. But, you have to draw the line at some point
> on how complex that "depends on" is going to get. I think you each have
> unique pain tolerances. :)
>
> Personally, I kinda prefer to break it out per-arch, because that SUPERH
> logic is getting a bit screwy.
>
> You could also do something like this:
>
> > config HUGETLBFS
> > bool "HugeTLB file system support"
> > - depends on X86 || IA64 || PPC64 || SPARC64 || (SUPERH && MMU) || BROKEN
> > + depends on X86 || IA64 || PPC64 || SPARC64 || SUPERH_HUGETLBFS || BROKEN
>
> And then:
>
> config SUPERH_HUGETLBFS
> def_bool y
> depends on (CPU_SH4 || CPU_SH5) && MMU
>
> on the arch-specific side.
>
SUPERH has the MMU dependence because it's the only one out of that list
of architectures that supports both CONFIG_MMU=y and CONFIG_MMU=n
configurations. The dependence on CONFIG_MMU should be tied in to the
HUGETLBFS dependency directly, which is what my patch did.

The other issue is that the dependencies here are just totally backwards.
the file system has the architecture dependence which enables support for
the hugetlb page feature, while the architectures should simply select
whether they can support the hugetlb pages or not and have the file
system conditionalized on that. A bit more work is needed to have
HUGETLBFS and HUGETLB_PAGE toggling independently of each other without
breaking, but that's certainly the next logical step.
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/