On Sat, Mar 03, 2007 at 09:34:42PM -0800, Nishanth Aravamudan wrote:
> On 04.03.2007 [09:55:09 +1100], David Gibson wrote:
> > On Sat, Mar 03, 2007 at 01:53:11PM -0800, Nishanth Aravamudan wrote:
> > [snip]
> > > hugeutils: remove hugetlbfs_vaddr_granularity in favor of slice functions
> > >
> > > hugetlbfs_vaddr_granularity() currently does not take a parameter, even
> > > though the granularity at which hugepages can be used varies by address
> > > on ppc64 (and perhaps other archs). Taking a queue from Ben
> > > Herrenschmidt's kernel slice patches for Cell add similar functions and
> > > macros for hugetlbfs_slice_start() and hugetlbfs_slice_end() which,
> > > given an unsigned long address, will indicate where the enclosing slice
> > > starts and ends, inclusively (that is the start and end are part of the
> > > slice). This has very clean and useful semantics compared to the
> > > granularity() function. This is also useful for the partial_remap code,
> > > as it would (effectively) never run on ppc64 otherwise (would need a 1TB
> > > or larger segment, without relinking, which is unlikely). Thanks to
> > > David Gibson for several rounds of review.
> >
> > Looks good, save for one thing now.
> >
> > [...]
> > > --- a/libhugetlbfs_internal.h
> > > +++ b/libhugetlbfs_internal.h
> > > @@ -26,7 +26,16 @@
> > > #define stringify_1(x) #x
> > > #define stringify(x) stringify_1(x)
> > >
> > > -#define ALIGN(x, a) (((x) + (a) - 1) & ~((a) - 1))
> > > +#define SLICE_LOW_SHIFT 28
> > > +#define SLICE_HIGH_SHIFT 40
> > > +
> > > +#define SLICE_LOW_TOP (0x100000000UL)
> > > +#define SLICE_LOW_SIZE (1UL << SLICE_LOW_SHIFT)
> > > +#define SLICE_HIGH_SIZE (1UL << SLICE_HIGH_SHIFT)
> >
> > The SLICE_* constants don't belong here. They should go right next to
> > the slice functions, preferably within one of the #ifdefs, since
> > they're powerpc specific.
>
> Good point, does the following get your ACK?
>
> hugeutils: remove hugetlbfs_vaddr_granularity in favor of slice functions
>
> hugetlbfs_vaddr_granularity() currently does not take a parameter, even
> though the granularity at which hugepages can be used varies by address
> on ppc64 (and perhaps other archs). Taking a queue from Ben
> Herrenschmidt's kernel slice patches for Cell add similar functions and
> macros for hugetlbfs_slice_start() and hugetlbfs_slice_end() which,
> given an unsigned long address, will indicate where the enclosing slice
> starts and ends, inclusively (that is the start and end are part of the
> slice). This has very clean and useful semantics compared to the
> granularity() function. This is also useful for the partial_remap code,
> as it would (effectively) never run on ppc64 otherwise (would need a 1TB
> or larger segment, without relinking, which is unlikely). Thanks to
> David Gibson for several rounds of review.
Acked-by: David Gibson <[EMAIL PROTECTED]>
--
David Gibson | I'll have my music baroque, and my code
david AT gibson.dropbear.id.au | minimalist, thank you. NOT _the_ _other_
| _way_ _around_!
http://www.ozlabs.org/~dgibson
-------------------------------------------------------------------------
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your
opinions on IT & business topics through brief surveys-and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
_______________________________________________
Libhugetlbfs-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/libhugetlbfs-devel