#!/bin/bash

. run_profile.txt
. $base_dir/plans/commands/common.fns

# Check needed vars from run_profile.txt
[ ! -d "$run_dir" ] && echo "ERROR: $run_dir does not exist" && exit -10

SUT=`hostname -s`
log_dir="$run_dir/test_output"
mkdir -p $log_dir

# fix hugetlbfs mount point, mount it if not mounted, set sysctl values

if [ ! -d /mnt/hugetlbfs ]; then
	mkdir -p /mnt/hugetlbfs
fi

if ! grep hugetlbfs /proc/mounts ; then
	mount -t hugetlbfs hugetlbfs /mnt/hugetlbfs
	sts=$?
	if [ $sts != 0 ]; then
		echo "mount hugetlbfs failed"
		exit $sts
	fi
fi

echo 268435456 > /proc/sys/kernel/shmmax
echo 4194304 > /proc/sys/kernel/shmall
echo 300 > /proc/sys/vm/nr_hugepages


echo "Running hugepage on SUT: $SUT"

cwd=`/bin/pwd`
echo "cwd: $cwd"

cmdtest1="./hugepage-mmap"
cmdtest2="./hugepage-shm"
cmdtest3="./huge-mmap 1000 4"

run_test "hugepage" "/usr/bin/time $cmdtest1" "$log_dir" "hugepage1.log"
run_test "hugepage" "/usr/bin/time $cmdtest2" "$log_dir" "hugepage2.log"
run_test "hugepage" "/usr/bin/time $cmdtest3" "$log_dir" "hugepage3.log"

exit 0
