#!/bin/sh

remap()
{
	_zn=$1
	_n=300
	_r=1
	if fgrep -q "[${_zn}]" /proc/memhotplug; then
		:
	else
		return
	fi

	echo -n ${_zn}:
	while [ $_r -ne 0 -a $_n -ge 0 ]; do
		echo "remap ${_zn}" > /proc/memhotplug
		sleep 3
		_r=`awk "/\[${_zn}\]:/ "'{print $7-$3}'  /proc/memhotplug`
		echo -n " $_r"
		_n=$(($_n-1))
	done
	echo
}

nl=`awk '/^Node.* hotremovable/ {print $2}' /proc/memhotplug`

nh=`echo $nl|awk '{print $1}'`
nt=`echo $nl|awk '{print $NF}'`
if [ "$nh" = "$nt" ]; then
	echo "You need more than 1 hotremovable node.\n"
	exit 1
fi

while true; do
	for n in $nl; do
		echo "enable $n" > /proc/memhotplug
	done

	for n in $nl; do
		echo "disable $n" > /proc/memhotplug
		if [ "$n" = "$nt" ]; then
			echo "enable $nh" > /proc/memhotplug
		fi
		for z in 0 1 2; do
			remap $(($n*4+$z))
		done
	done
done

