[dpdk-dev] [v2 PATCH] usertools: show valid hugepage sizes if user requests an invalid hugepage size

Burakov, Anatoly anatoly.burakov at intel.com
Tue Feb 9 12:34:15 CET 2021


On 02-Dec-20 11:06 AM, Sarosh Arif wrote:
> If user requests a hugepage size which is not supported by the system,
> currently user gets an error message saying that the requested size
> is not a valid system huge page size. In addition to this if we display
> the valid hugepage sizes it will be convenient for the user to request
> the right size next time.
> 
> Signed-off-by: Sarosh Arif <sarosh.arif at emumba.com>
> ---
> v2:
> pass string in sys.exit() to remove pylint warning
> ---
>   usertools/dpdk-hugepages.py | 14 ++++++++++----
>   1 file changed, 10 insertions(+), 4 deletions(-)
> 
> diff --git a/usertools/dpdk-hugepages.py b/usertools/dpdk-hugepages.py
> index 1be100ca3..09d35bf55 100755
> --- a/usertools/dpdk-hugepages.py
> +++ b/usertools/dpdk-hugepages.py
> @@ -49,6 +49,14 @@ def get_hugepages(path):
>           return int(nr_hugepages.read())
>       return 0
>   
> +def get_valid_page_sizes(path):
> +    valid_page_sizes = ""
> +    hugepage_dir_path = os.path.split(path)[0]

os.path.dirname() ?

> +    hugepage_dirs = os.listdir(hugepage_dir_path)
> +    for each_dir in hugepage_dirs:
> +        hugepage_size = each_dir.split("-")[1]
> +        valid_page_sizes = valid_page_sizes + " " + hugepage_size

You could rewrite this to be clearer and more concise:

def get_valid_page_sizes(path):
     dir = os.path.dirname(path)
     pg_sizes = (d.split("-")[1] for d in os.listdir(dir))
     return " ".join(pg_sizes)

> +    return valid_page_sizes
>   
>   def set_hugepages(path, pages):
>       '''Write the number of reserved huge pages'''
> @@ -59,10 +67,8 @@ def set_hugepages(path, pages):
>       except PermissionError:
>           sys.exit('Permission denied: need to be root!')
>       except FileNotFoundError:
> -        filename = os.path.basename(path)
> -        size = filename[10:]
> -        sys.exit('{} is not a valid system huge page size'.format(size))
> -
> +        sys.exit("Invalid page size. Valid page sizes: {}".format(
> +                                        get_valid_page_sizes(path)))
>   
>   def show_numa_pages():
>       '''Show huge page reservations on Numa system'''
> 


-- 
Thanks,
Anatoly


More information about the dev mailing list