[dpdk-dev] [PATCH] usertools: add huge page setup script
Ferruh Yigit
ferruh.yigit at intel.com
Sat Sep 5 01:13:06 CEST 2020
On 9/4/2020 7:35 PM, Stephen Hemminger wrote:
> This is an improved version of the setup of huge pages
> bases on earlier DPDK setup. Differences are:
> * it autodetects NUMA vs non NUMA
> * it allows setting different page sizes
> recent kernels support multiple sizes.
> * it accepts a parameter in bytes (not pages).
>
> If necessary the steps of clearing old settings and mounting/umounting
> can be done individually.
Very handy, thanks.
>
> Signed-off-by: Stephen Hemminger <stephen at networkplumber.org>
> ---
> v3 -- incorporate review feedback
> add missing SPDX and env header
> overengineer the memory prefix string code
> add numa node argument
> fix some pylint warnings
>
> v2 -- convert to python3
>
<...>
> +def is_numa():
> + '''Test if NUMA is necessary on this system'''
> + return exists('/sys/devices/numa/node')
- return exists('/sys/devices/numa/node')
+ return exists('/sys/devices/system/node')
<...>
> +def clear_numa_pages():
> + for path in glob.glob(
> + '/sys/devices/system/node/node*/hugepages/hugepages-*'):
> + with open(path + '/nr_hugepages', 'w') as f:
> + f.write('\n0')
- f.write('\n0')
+ f.write('0\n')
<...>
> +def mount_huge(pagesize):> + cmd = "mount -t hugetlbfs"
> + if pagesize:
> + cmd += ' -o pagesize={}'.format(pagesize)
> + cmd += ' nodev {}'.format(HUGEDIR)
> + os.system(cmd)
What do you thing checking if mount point exist before 'cmd'?
+ if not exists(HUGEDIR):
+ os.system('mkdir -p ' + HUGEDIR)
<...>
> +def do_arg_actions():
> + '''do the actual action requested by the user'''
> + global hugepagesize_kb
> +
> + if clear_flag:
> + clear_pages()
> + if unmount_flag:
> + os.system("umount " + HUGEDIR)
What do you think umount only if it is mounted, (to get rid of warning for
--setup after -u), something like:
+ if not os.system("mount | grep -q " + HUGEDIR):
+ os.system("umount " + HUGEDIR)
More information about the dev
mailing list