From b35a94d83cffa24e8bafc1c157155d1b1116e947 Mon Sep 17 00:00:00 2001 From: Dom Date: Tue, 7 Mar 2023 14:28:02 +0800 Subject: [PATCH] tests: integration: Use hugepage size to calculate the number of pages The tests require a fixed amount of huge page memory to run, rather than encode that as fixed number of huge pages it should be calculated from the size of memory required and the huge page size Signed-off-by: Dom --- scripts/run_integration_tests_aarch64.sh | 4 +++- scripts/run_integration_tests_live_migration.sh | 4 +++- scripts/run_integration_tests_vfio.sh | 4 +++- scripts/run_integration_tests_x86_64.sh | 4 +++- scripts/run_metrics.sh | 4 +++- 5 files changed, 15 insertions(+), 5 deletions(-) diff --git a/scripts/run_integration_tests_aarch64.sh b/scripts/run_integration_tests_aarch64.sh index 2171501db..df0bc0730 100755 --- a/scripts/run_integration_tests_aarch64.sh +++ b/scripts/run_integration_tests_aarch64.sh @@ -240,7 +240,9 @@ sudo bash -c "echo 10 > /sys/kernel/mm/ksm/sleep_millisecs" sudo bash -c "echo 1 > /sys/kernel/mm/ksm/run" # Both test_vfio and ovs-dpdk rely on hugepages -echo 6144 | sudo tee /proc/sys/vm/nr_hugepages +HUGEPAGESIZE=`grep Hugepagesize /proc/meminfo | awk '{print $2}'` +PAGE_NUM=`echo $((12288 * 1024 / $HUGEPAGESIZE))` +echo $PAGE_NUM | sudo tee /proc/sys/vm/nr_hugepages sudo chmod a+rwX /dev/hugepages # Run all direct kernel boot (Device Tree) test cases in mod `parallel` diff --git a/scripts/run_integration_tests_live_migration.sh b/scripts/run_integration_tests_live_migration.sh index 35c44eeea..545868a71 100755 --- a/scripts/run_integration_tests_live_migration.sh +++ b/scripts/run_integration_tests_live_migration.sh @@ -89,7 +89,9 @@ fi cargo build --no-default-features --features "kvm,mshv" --all --release --target $BUILD_TARGET # Test ovs-dpdk relies on hugepages -echo 6144 | sudo tee /proc/sys/vm/nr_hugepages +HUGEPAGESIZE=`grep Hugepagesize /proc/meminfo | awk '{print $2}'` +PAGE_NUM=`echo $((12288 * 1024 / $HUGEPAGESIZE))` +echo $PAGE_NUM | sudo tee /proc/sys/vm/nr_hugepages sudo chmod a+rwX /dev/hugepages export RUST_BACKTRACE=1 diff --git a/scripts/run_integration_tests_vfio.sh b/scripts/run_integration_tests_vfio.sh index 9cba7823f..66711dd65 100755 --- a/scripts/run_integration_tests_vfio.sh +++ b/scripts/run_integration_tests_vfio.sh @@ -52,7 +52,9 @@ cp target/$BUILD_TARGET/release/cloud-hypervisor $VFIO_DIR cp target/$BUILD_TARGET/release/ch-remote $VFIO_DIR # test_vfio rely on hugepages -echo 6144 | sudo tee /proc/sys/vm/nr_hugepages +HUGEPAGESIZE=`grep Hugepagesize /proc/meminfo | awk '{print $2}'` +PAGE_NUM=`echo $((12288 * 1024 / $HUGEPAGESIZE))` +echo $PAGE_NUM | sudo tee /proc/sys/vm/nr_hugepages sudo chmod a+rwX /dev/hugepages export RUST_BACKTRACE=1 diff --git a/scripts/run_integration_tests_x86_64.sh b/scripts/run_integration_tests_x86_64.sh index 48e2b1c61..850bb981d 100755 --- a/scripts/run_integration_tests_x86_64.sh +++ b/scripts/run_integration_tests_x86_64.sh @@ -169,7 +169,9 @@ sudo bash -c "echo 10 > /sys/kernel/mm/ksm/sleep_millisecs" sudo bash -c "echo 1 > /sys/kernel/mm/ksm/run" # Both test_vfio, ovs-dpdk and vDPA tests rely on hugepages -echo 6144 | sudo tee /proc/sys/vm/nr_hugepages +HUGEPAGESIZE=`grep Hugepagesize /proc/meminfo | awk '{print $2}'` +PAGE_NUM=`echo $((12288 * 1024 / $HUGEPAGESIZE))` +echo $PAGE_NUM | sudo tee /proc/sys/vm/nr_hugepages sudo chmod a+rwX /dev/hugepages # Update max locked memory to 'unlimited' to avoid issues with vDPA diff --git a/scripts/run_metrics.sh b/scripts/run_metrics.sh index ea4aa9904..9e4de9e1b 100755 --- a/scripts/run_metrics.sh +++ b/scripts/run_metrics.sh @@ -95,7 +95,9 @@ fi cargo build --no-default-features --features "kvm,mshv" --all --release --target $BUILD_TARGET # setup hugepages -echo 6144 | sudo tee /proc/sys/vm/nr_hugepages +HUGEPAGESIZE=`grep Hugepagesize /proc/meminfo | awk '{print $2}'` +PAGE_NUM=`echo $((12288 * 1024 / $HUGEPAGESIZE))` +echo $PAGE_NUM | sudo tee /proc/sys/vm/nr_hugepages sudo chmod a+rwX /dev/hugepages if [ -n "$test_filter" ]; then