#!/bin/bash

while :
do
	for ((i = 0; i < 128; i++))
	do
		cat debug/rcu/rcugp
		echo "offlining $i" `date`
		echo 0 > /sys/devices/system/cpu/cpu$i/online
		echo "done offlining $i" `date`
		cat debug/rcu/rcugp
		sleep 3
		cat debug/rcu/rcugp
		echo "onlining $i" `date`
		if echo 1 > /sys/devices/system/cpu/cpu$i/online
		then
			echo "done onlining $i" `date`
		else
			sleep 3
			echo "retrying onlining $i" `date`
			if echo 1 > /sys/devices/system/cpu/cpu$i/online
			then
				echo "done onlining $i after retry" `date`
			else
				echo "failed to online $i, giving up" `date`
			fi
		fi
		cat debug/rcu/rcugp
		sleep 3
	done
done
