On Tue, Mar 31, 2009 at 02:26:15PM +0100, Eric B Munson wrote:
> Add a switch to hugeadm that asks for a general report of huge page
> availablity on the system.  It combines the output of the
> --list-all-mounts and --pool-list switches with a list of huge page
> sizes with configured pools.  It will also let the user know if there
> is no swap configured that pool resizing is likely to fail.
> 
> Here are some sample outputs:
> 
> First, no configured mounts:
> emun...@lappy-486:~$ hugeadm --explain
> No hugetlbfs mount point found.
> 
> Huge page pools:
>       Size  Minimum  Current  Maximum  Default
>    4194304        0        0        0        *
> 
> Huge page sizes with configured pools:
> emun...@lappy-486:~$
> 
> Second, configured mount with pages available:
> emun...@lappy-486:~$ hugeadm --explain
> Mount Point                                Options
> /var/lib/hugetlbfs/global/pagesize-4194304 rw,pagesize=4194304
> 
> Huge page pools:
>       Size  Minimum  Current  Maximum  Default
>    4194304       30       30       30        *
> 
> Huge page sizes with configured pools:
> 4194304
> emun...@lappy-486:~$
> 
> Last, no swap available:
> emun...@lappy-486:~$ hugeadm --explain
> Mount Point                                Options
> /var/lib/hugetlbfs/global/pagesize-4194304 rw,pagesize=4194304
> 
> Huge page pools:
>       Size  Minimum  Current  Maximum  Default
>    4194304       30       30       30        *
> 
> Huge page sizes with configured pools:
> 4194304
> hugeadm: WARNING: Swap is full or no swap space configured, resizing pool may 
> fail.
> emun...@lappy-486:~$
> 
> Signed-off-by: Eric B Munson <ebmun...@us.ibm.com>

Acked-by: Mel Gorman <m...@csn.ul.ie>

> ---
>  hugeadm.c |   20 ++++++++++++++++++++
>  1 files changed, 20 insertions(+), 0 deletions(-)
> 
> diff --git a/hugeadm.c b/hugeadm.c
> index e713b9e..22f47a4 100644
> --- a/hugeadm.c
> +++ b/hugeadm.c
> @@ -99,6 +99,9 @@ void print_usage()
>       CONT("the specified options would have done without");
>       CONT("taking any action");
>  
> +     OPTION("--explain", "Gives a overview of the status of the system");
> +     CONT("with respect to huge page availability");
> +
>       OPTION("--help, -h", "Prints this message");
>  }
>  
> @@ -126,6 +129,8 @@ int opt_hard = 0;
>  #define LONG_CREATE_GLOBAL_MOUNTS    (LONG_MOUNTS|'G')
>  #define LONG_LIST_ALL_MOUNTS         (LONG_MOUNTS|'A')
>  
> +#define LONG_EXPLAIN ('e' << 8)
> +
>  #define MAX_POOLS    32
>  
>  static int cmpsizes(const void *p1, const void *p2)
> @@ -615,6 +620,16 @@ void page_sizes(int all)
>       }
>  }
>  
> +void explain()
> +{
> +     mounts_list_all();
> +     printf("\nHuge page pools:\n");
> +     pool_list();
> +     printf("\nHuge page sizes with configured pools:\n");
> +     page_sizes(0);
> +     check_swap();
> +}
> +
>  int main(int argc, char** argv)
>  {
>       int ops;
> @@ -640,6 +655,7 @@ int main(int argc, char** argv)
>               {"page-sizes", no_argument, NULL, LONG_PAGE_SIZES},
>               {"page-sizes-all", no_argument, NULL, LONG_PAGE_AVAIL},
>               {"dry-run", no_argument, NULL, 'd'},
> +             {"explain", no_argument, NULL, LONG_EXPLAIN},
>  
>               {0},
>       };
> @@ -730,6 +746,10 @@ int main(int argc, char** argv)
>                       page_sizes(1);
>                       break;
>  
> +             case LONG_EXPLAIN:
> +                     explain();
> +                     break;
> +
>               default:
>                       WARNING("unparsed option %08x\n", ret);
>                       ret = -1;
> -- 
> 1.6.1.2
> 
> 
> ------------------------------------------------------------------------------
> _______________________________________________
> Libhugetlbfs-devel mailing list
> Libhugetlbfs-devel@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/libhugetlbfs-devel
> 

-- 
Mel Gorman
Part-time Phd Student                          Linux Technology Center
University of Limerick                         IBM Dublin Software Lab

------------------------------------------------------------------------------
_______________________________________________
Libhugetlbfs-devel mailing list
Libhugetlbfs-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/libhugetlbfs-devel

Reply via email to