- Add python script to get coremask - Add python script to check if system supports hugepages - Remove two corresponding .sh scripts - Replace calling of .sh with corresponding .py in meson.build
Signed-off-by: Jie Zhou <j...@linux.microsoft.com> --- app/test/get-coremask.sh | 13 ------------- app/test/get_coremask.py | 12 ++++++++++++ app/test/has-hugepage.sh | 11 ----------- app/test/has_hugepage.py | 25 +++++++++++++++++++++++++ app/test/meson.build | 7 ++++--- 5 files changed, 41 insertions(+), 27 deletions(-) delete mode 100755 app/test/get-coremask.sh create mode 100644 app/test/get_coremask.py delete mode 100755 app/test/has-hugepage.sh create mode 100644 app/test/has_hugepage.py diff --git a/app/test/get-coremask.sh b/app/test/get-coremask.sh deleted file mode 100755 index bb8cf404d2..0000000000 --- a/app/test/get-coremask.sh +++ /dev/null @@ -1,13 +0,0 @@ -#! /bin/sh -e -# SPDX-License-Identifier: BSD-3-Clause -# Copyright(c) 2019 Intel Corporation - -if [ "$(uname)" = "Linux" ] ; then - cat /sys/devices/system/cpu/present -elif [ "$(uname)" = "FreeBSD" ] ; then - ncpus=$(/sbin/sysctl -n hw.ncpu) - echo 0-$(expr $ncpus - 1) -else -# fallback - echo 0-3 -fi diff --git a/app/test/get_coremask.py b/app/test/get_coremask.py new file mode 100644 index 0000000000..13939bcf78 --- /dev/null +++ b/app/test/get_coremask.py @@ -0,0 +1,12 @@ +# SPDX-License-Identifier: BSD-3-Clause +# Copyright (c) 2021 Microsoft Corporation +"""This script returns the system cpu range""" + +import multiprocessing + +cpucount = multiprocessing.cpu_count() +if cpucount is None: + # use fallback cpu count + print("0-3") +else: + print("0-" + str(cpucount - 1)) diff --git a/app/test/has-hugepage.sh b/app/test/has-hugepage.sh deleted file mode 100755 index d600fad319..0000000000 --- a/app/test/has-hugepage.sh +++ /dev/null @@ -1,11 +0,0 @@ -#! /bin/sh -# SPDX-License-Identifier: BSD-3-Clause -# Copyright 2020 Mellanox Technologies, Ltd - -if [ "$(uname)" = "Linux" ] ; then - cat /proc/sys/vm/nr_hugepages || echo 0 -elif [ "$(uname)" = "FreeBSD" ] ; then - echo 1 # assume FreeBSD always has hugepages -else - echo 0 -fi diff --git a/app/test/has_hugepage.py b/app/test/has_hugepage.py new file mode 100644 index 0000000000..70107c61fd --- /dev/null +++ b/app/test/has_hugepage.py @@ -0,0 +1,25 @@ +# SPDX-License-Identifier: BSD-3-Clause +# Copyright (c) 2021 Microsoft Corporation +"""This script checks if the system supports huge pages""" + +import platform +import ctypes + +osName = platform.system() +if osName == "Linux": + with open("/proc/sys/vm/nr_hugepages") as file_o: + content = file_o.read() + print(content) +elif osName == "FreeBSD": + # Assume FreeBSD always has hugepages enabled + print("1") +elif osName == "Windows": + # On Windows, determine if large page is supported based on the + # value returned by GetLargePageMinimum. If the return value is zero, + # the processor does not support large pages. + if ctypes.windll.kernel32.GetLargePageMinimum() > 0: + print("1") + else: + print("0") +else: + print("0") diff --git a/app/test/meson.build b/app/test/meson.build index a7611686ad..6960cad80b 100644 --- a/app/test/meson.build +++ b/app/test/meson.build @@ -450,7 +450,7 @@ dpdk_test = executable('dpdk-test', driver_install_path), install: true) -has_hugepage = run_command('has-hugepage.sh').stdout().strip() != '0' +has_hugepage = run_command(py3, 'has_hugepage.py').stdout().strip() != '0' message('hugepage availability: @0@'.format(has_hugepage)) # some perf tests (eg: memcpy perf autotest)take very long @@ -458,8 +458,9 @@ message('hugepage availability: @0@'.format(has_hugepage)) timeout_seconds = 600 timeout_seconds_fast = 10 -get_coremask = find_program('get-coremask.sh') -num_cores_arg = '-l ' + run_command(get_coremask).stdout().strip() +list_of_cores = run_command(py3, 'get_coremask.py').stdout().strip() +message('list of cores: @0@'.format(list_of_cores)) +num_cores_arg = '-l ' + list_of_cores default_test_args = [num_cores_arg] -- 2.32.0.windows.2