#!/bin/bash

NR_THP_PROC=$1
WAIT_TIME=1000000

# make anonymous page reclaim easily
sudo sh -c "echo 100 > /proc/sys/vm/swappiness"

# make khugepaged cpu's hogger
sudo sh -c "echo madvise > /sys/kernel/mm/transparent_hugepage/enabled"
sudo sh -c "echo 102400 > /sys/kernel/mm/transparent_hugepage/khugepaged/pages_to_scan"
sudo sh -c "echo 0 > /sys/kernel/mm/transparent_hugepage/khugepaged/alloc_sleep_millisecs"
sudo sh -c "echo 0 > /sys/kernel/mm/transparent_hugepage/khugepaged/scan_sleep_millisecs"

# For v4.0
MADV_HUGEPAGE=14

for (( i=0; i < $NR_THP_PROC; i++ ))
do
	./oops $((8<<20)) 10 $MADV_HUGEPAGE &
	PID=$!
	sudo sh -c "echo -1000 > /proc/$PID/oom_score_adj"
	echo "move $PID to /cgroup/testA"
	sudo sh -c "echo $PID > /cgroup/testA/tasks"
done

sleep $WAIT_TIME

# madvise_test will report statistics when it get SIGINT
pkill -INT oops
