From 0b89dbc2595c52a5f72b2faa168091f8e647b137 Mon Sep 17 00:00:00 2001 From: Sarosh Arif Date: Thu, 11 Feb 2021 13:20:04 +0500 Subject: [PATCH] usertools: show valid hugepage sizes if wrong request 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 Acked-by: Stephen Hemminger --- usertools/dpdk-hugepages.py | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/usertools/dpdk-hugepages.py b/usertools/dpdk-hugepages.py index 70432f9cd7..fb368b6933 100755 --- a/usertools/dpdk-hugepages.py +++ b/usertools/dpdk-hugepages.py @@ -43,6 +43,13 @@ def is_numa(): return os.path.exists('/sys/devices/system/node') +def get_valid_page_sizes(path): + '''Extract valid hugepage sizes''' + dir = os.path.dirname(path) + pg_sizes = (d.split("-")[1] for d in os.listdir(dir)) + return " ".join(pg_sizes) + + def get_hugepages(path): '''Read number of reserved pages''' with open(path + '/nr_hugepages') as nr_hugepages: @@ -59,9 +66,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))) if get_hugepages(path) != pages: sys.exit('Unable to reserve required pages.') -- 2.20.1