iotc uses libaio to submit IOs, so libaio-dev need be installed before compiling. To compile iotc, get to the top directory of this repository and excute: ~# make
Dispatch three sequence write IOs to sdb to check the back merging of plug list: ~# ./iotc -d /dev/sdb -s
Dispatch three reverse write IOs to sdb to check the front merging of plug list: ~# ./iotc -d /dev/sdb -r
Dispatch three interleave write IOs to sdb to check the back merging of elevator queue: ~# ./iotc -d /dev/sdb -r
To do this, we need apply pmerge_bio.patch into kernel source firstly. Then use bellow command line to start two processes to dispatch 5 IOs respectively: ~# ./pmerge_A & ./pmerge_B
To do this, we need apply pmerge_request.patch into kernel source firstly. Then use bellow command line to start two processes to dispatch 5 IOs respectively: ~# ./pmerge_A & ./pmerge_B
All test cases could use command line "blktrace -d /dev/sdb -o - | blkparse -i -" to check the result.