usertools: show hugepages requested/set on failure

In case the number of requested hugepages cannot be set,
a more detailed error message is printed.
The new message does not mention "reserve" because setting
can be reserving or clearing.
The filename and numbers requested/set are printed to ease debugging.

Signed-off-by: Thomas Monjalon <thomas@monjalon.net>
This commit is contained in:
Thomas Monjalon 2021-03-08 23:25:20 +01:00
parent 01ae049dda
commit defd7f5a53

View File

@ -57,19 +57,21 @@ def get_hugepages(path):
return 0 return 0
def set_hugepages(path, pages): def set_hugepages(path, reqpages):
'''Write the number of reserved huge pages''' '''Write the number of reserved huge pages'''
filename = path + '/nr_hugepages' filename = path + '/nr_hugepages'
try: try:
with open(filename, 'w') as nr_hugepages: with open(filename, 'w') as nr_hugepages:
nr_hugepages.write('{}\n'.format(pages)) nr_hugepages.write('{}\n'.format(reqpages))
except PermissionError: except PermissionError:
sys.exit('Permission denied: need to be root!') sys.exit('Permission denied: need to be root!')
except FileNotFoundError: except FileNotFoundError:
sys.exit("Invalid page size. Valid page sizes: {}".format( sys.exit("Invalid page size. Valid page sizes: {}".format(
get_valid_page_sizes(path))) get_valid_page_sizes(path)))
if get_hugepages(path) != pages: gotpages = get_hugepages(path)
sys.exit('Unable to reserve required pages.') if gotpages != reqpages:
sys.exit('Unable to set pages ({} instead of {} in {}).'.format(
gotpages, reqpages, filename))
def show_numa_pages(): def show_numa_pages():