0001
0002
0003
0004
0005
0006
0007
0008
0009
0010 set -e
0011
0012 NX_HUGE_PAGES=$(cat /sys/module/kvm/parameters/nx_huge_pages)
0013 NX_HUGE_PAGES_RECOVERY_RATIO=$(cat /sys/module/kvm/parameters/nx_huge_pages_recovery_ratio)
0014 NX_HUGE_PAGES_RECOVERY_PERIOD=$(cat /sys/module/kvm/parameters/nx_huge_pages_recovery_period_ms)
0015 HUGE_PAGES=$(cat /sys/kernel/mm/hugepages/hugepages-2048kB/nr_hugepages)
0016
0017 set +e
0018
0019 function sudo_echo () {
0020 echo "$1" | sudo tee -a "$2" > /dev/null
0021 }
0022
0023 NXECUTABLE="$(dirname $0)/nx_huge_pages_test"
0024
0025 sudo_echo test /dev/null || exit 4
0026
0027 (
0028 set -e
0029
0030 sudo_echo 1 /sys/module/kvm/parameters/nx_huge_pages
0031 sudo_echo 1 /sys/module/kvm/parameters/nx_huge_pages_recovery_ratio
0032 sudo_echo 100 /sys/module/kvm/parameters/nx_huge_pages_recovery_period_ms
0033 sudo_echo "$(( $HUGE_PAGES + 3 ))" /sys/kernel/mm/hugepages/hugepages-2048kB/nr_hugepages
0034
0035
0036 if [ $(whoami) == "root" ] || sudo setcap cap_sys_boot+ep $NXECUTABLE 2> /dev/null; then
0037 echo Running test with CAP_SYS_BOOT enabled
0038 $NXECUTABLE -t 887563923 -p 100 -r
0039 test $(whoami) == "root" || sudo setcap cap_sys_boot-ep $NXECUTABLE
0040 else
0041 echo setcap failed, skipping nx_huge_pages_test with CAP_SYS_BOOT enabled
0042 fi
0043
0044
0045 if [ $(whoami) != "root" ] ; then
0046 echo Running test with CAP_SYS_BOOT disabled
0047 $NXECUTABLE -t 887563923 -p 100
0048 else
0049 echo Running as root, skipping nx_huge_pages_test with CAP_SYS_BOOT disabled
0050 fi
0051 )
0052 RET=$?
0053
0054 sudo_echo "$NX_HUGE_PAGES" /sys/module/kvm/parameters/nx_huge_pages
0055 sudo_echo "$NX_HUGE_PAGES_RECOVERY_RATIO" /sys/module/kvm/parameters/nx_huge_pages_recovery_ratio
0056 sudo_echo "$NX_HUGE_PAGES_RECOVERY_PERIOD" /sys/module/kvm/parameters/nx_huge_pages_recovery_period_ms
0057 sudo_echo "$HUGE_PAGES" /sys/kernel/mm/hugepages/hugepages-2048kB/nr_hugepages
0058
0059 exit $RET