blob: c51fb0c1d8206953322f9dc2dc8b3131c85b7982 [file] [log] [blame]
#!/bin/sh
#
# Exercises code in mincore.c mm/
#
. ./hw_vars
# set number of hugepages in the system
echo never > /sys/kernel/mm/transparent_hugepage/enabled
echo $((mem/Hugepagesize/1024 / 20)) > /proc/sys/vm/nr_hugepages
echo $((mem/Hugepagesize/1024 / 10)) > /proc/sys/vm/nr_overcommit_hugepages
#check for max shared memory allowed on system
MAX_HUGEPAGES=$(( $(cat /proc/sys/vm/nr_hugepages) + $(cat /proc/sys/vm/nr_overcommit_hugepages) ))
#segment size being requested
SHM_SIZE=$(($MAX_HUGEPAGES*$hugepagesize / nr_task))
#set shmmax to accommodate the request
echo $SHM_SIZE > /proc/sys/kernel/shmmax
#check to see if the request can be satisfied else exit with error
MAX_SHARE_SEGMENT=$(cat /proc/sys/kernel/shmmax)
if [ $SHM_SIZE -gt $MAX_SHARE_SEGMENT ]
then
echo "Cannot allocate more shared memory segment than $MAX_SHARE_SEGMENT"
echo "exiting now..."
exit 1 #exit on failure
fi
create_sparse_file $SPARSE_FILE $SHM_SIZE
$USEMEM -t $nr_task -f $SPARSE_FILE -H --prealloc --readonly --random $SHM_SIZE
echo always > /sys/kernel/mm/transparent_hugepage/enabled
rm $SPARSE_FILE