On Mon, Oct 06, 2008 at 04:03:35PM +0100, Mel Gorman wrote:
> On (03/10/08 18:37), Andy Whitcroft didst pronounce:
> > Expose possible page sizes.  Expose the page sizes which are available
> > (have pages assigned to them) via --page-sizes.  Expose all possible page
> > sizes (supported by the processor) via --page-sizes-all.
> > 
> > Signed-off-by: Andy Whitcroft <[EMAIL PROTECTED]>
> > ---
> >  hpoolcfg.c |   40 ++++++++++++++++++++++++++++++++++++++--
> >  1 files changed, 38 insertions(+), 2 deletions(-)
> > 
> > diff --git a/hpoolcfg.c b/hpoolcfg.c
> > index 46e8de4..e9ac665 100644
> > --- a/hpoolcfg.c
> > +++ b/hpoolcfg.c
> > @@ -50,6 +50,9 @@ void print_usage()
> >  
> >     OPTION("--pool-list", "List all pools");
> >  
> > +   OPTION("--page-sizes", "List all available page sizes");
> > +   OPTION("--page-sizes-all", "List all supported page sizes");
> > +
> >     OPTION("--help, -h", "Prints this message");
> >  }
> >  
> > @@ -61,6 +64,10 @@ int opt_dry_run = 0;
> >  #define LONG_POOL  ('p' << 8)
> >  #define LONG_POOL_LIST     (LONG_POOL|'l')
> >  
> > +#define LONG_PAGE  ('P' << 8)
> > +#define LONG_PAGE_SIZES    (LONG_PAGE|'s')
> > +#define LONG_PAGE_AVAIL    (LONG_PAGE|'a')
> > +
> >  #define MAX_POOLS  32
> >  void pool_list(void)
> >  {
> > @@ -74,14 +81,32 @@ void pool_list(void)
> >             exit(EXIT_FAILURE);
> >     }
> >  
> > -   printf("%10s   %8s %8s %8s\n", "Size", "Minimum", "Current", "Maximum");
> > +   printf("%10s %8s %8s %8s\n", "Size", "Minimum", "Current", "Maximum");
> >     for (pos = 0; cnt--; pos++) {
> > -           printf("%10ldkB %8ld %8ld %8ld\n", pools[pos].pagesize_kb,
> > +           printf("%10ld %8ld %8ld %8ld\n", pools[pos].pagesize_kb,
> >                     pools[pos].minimum, pools[pos].size,
> >                     pools[pos].maximum);
> >     }
> 
> Does this hunk belong in the previous patch?

Yep.

> >  }
> >  
> > +void page_sizes(int all)
> > +{
> > +   struct hpage_pool pools[MAX_POOLS];
> > +   int pos;
> > +   int cnt;
> > +
> > +   cnt = __lh_hpool_sizes(pools, MAX_POOLS);
> > +   if (cnt < 0) {
> > +           ERROR("unable to obtain pools list");
> > +           exit(EXIT_FAILURE);
> > +   }
> > +
> > +   for (pos = 0; cnt--; pos++) {
> > +           if (all || pools[pos].maximum)
> > +                   printf("%ld\n", pools[pos].pagesize_kb);
> > +   }
> > +}
> 
> Ok, so the definition of available page sizes is that a pool has been
> configured. Is this intentional?
> 
> Maybe the description of the options should be
> 
> --page-sizes   Display page sizes that have a configured pool
> --page-sizes-all Display page sizes supported by the hardware

Yes we should do that.

> ?
> 
> I also wonder if the display of pagesizes belongs in a separate pagesize
> utility similar to what is available on other operating systems.

I have pulled out this into a new utility.

> > +
> >  int main(int argc, char** argv)
> >  {
> >     char opts[] = "+h";
> > @@ -91,6 +116,9 @@ int main(int argc, char** argv)
> >  
> >             {"pool-list", no_argument, NULL, LONG_POOL_LIST},
> >  
> > +           {"page-sizes", no_argument, NULL, LONG_PAGE_SIZES},
> > +           {"page-sizes-all", no_argument, NULL, LONG_PAGE_AVAIL},
> > +
> >             {0},
> >     };
> >  
> > @@ -114,6 +142,14 @@ int main(int argc, char** argv)
> >                     pool_list();
> >                     break;
> >  
> > +           case LONG_PAGE_SIZES:
> > +                   page_sizes(0);
> > +                   break;
> > +
> > +           case LONG_PAGE_AVAIL:
> > +                   page_sizes(1);
> > +                   break;
> > +
> >             default:
> >                     WARNING("unparsed option %08x\n", ret);
> >                     ret = -1;

-apw

-------------------------------------------------------------------------
This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
Build the coolest Linux based applications with Moblin SDK & win great prizes
Grand prize is a trip for two to an Open Source event anywhere in the world
http://moblin-contest.org/redirect.php?banner_id=100&url=/
_______________________________________________
Libhugetlbfs-devel mailing list
Libhugetlbfs-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/libhugetlbfs-devel

Reply via email to