Thread (13 messages) 13 messages, 4 authors, 2021-02-11

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

From: Burakov, Anatoly <hidden>
Date: 2021-02-09 11:34:22

On 02-Dec-20 11:06 AM, Sarosh Arif wrote:
quoted hunk ↗ jump to hunk
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 <redacted>
---
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)
quoted hunk ↗ jump to hunk
+    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
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help