#!/bin/bash

parted_disk()
{
	DISK=$1
	CNT=$2

	DEV_SIZE=`blockdev --getsz $DISK`
	DEV_SIZE=`expr ${DEV_SIZE} / 2048`MB

	DEV_NAME=`basename $DISK`
	Q_PATH=/sys/block/$DEV_NAME/queue

	if [ -f $Q_PATH/../device/queue_depth ]; then
		MY_SCSI_QD=`cat $Q_PATH/../device/queue_depth`
	else
		MY_SCSI_QD="N/A"
	fi
	MQ_IOSCHEDS=`sed 's/[][]//g' $Q_PATH/scheduler`

	for SCHED in $MQ_IOSCHEDS; do
		echo $SCHED > $Q_PATH/scheduler
		MY_SCHED=`cat $Q_PATH/scheduler | sed -n 's/.*\[\(.*\)\].*/\1/p'`
		echo "Dev. $DEV_NAME, SCHED: $MY_SCHED, SCSI QD: $MY_SCSI_QD"
		count=0
		wipefs -a $DISK && blockdev --rereadpt $DISK
		while [ $count -lt $CNT ]; do
			parted -m -s $DISK mklabel msdos &&
					parted -m -s -a none $DISK mkpart primary 0MB 32MB &&
					parted -m -s -a none $DISK mkpart primary 32MB $DEV_SIZE &&
					parted -s $DISK p
			let count++
			if ! (( count % 10 )); then
				echo $count
			fi
		done
	done
}

DISK=$1
CNT=$2
parted_disk $DISK $CNT
