On Sun, Jun 21, 2009 at 08:51:16PM +0530, Balbir Singh wrote: > * Vivek Goyal <vgoyal@xxxxxxxxxx> [2009-06-19 16:37:18]: > > > > > Hi All, > > > > Here is the V5 of the IO controller patches generated on top of 2.6.30. > [snip] > > > Testing > > ======= > > > > [snip] > > I've not been reading through the discussions in complete detail, but > I see no reference to async reads or aio. In the case of aio, aio > presumes the context of the user space process. Could you elaborate on > any testing you've done with these cases? > Hi Balbir, So far I had not done any testing with AIO. I have done some just now. Here are the results. Test1 (AIO reads) ================ Set up two fio, AIO read jobs in two cgroup with weight 1000 and 500 respectively. I am using cfq scheduler. Following are some lines from my test script. =================================================================== fio_args="--ioengine=libaio --rw=read --size=512M" echo 1 > /sys/block/$BLOCKDEV/queue/iosched/fairness fio $fio_args --name=test1 --directory=/mnt/$BLOCKDEV/fio1/ --output=/mnt/$BLOCKDEV/fio1/test1.log --exec_postrun="../read-and-display-group-stats.sh $maj_dev $minor_dev" & fio $fio_args --name=test2 --directory=/mnt/$BLOCKDEV/fio2/ --output=/mnt/$BLOCKDEV/fio2/test2.log & =================================================================== test1 and test2 are two groups with weight 1000 and 500 respectively. "read-and-display-group-stats.sh" is one small script which reads the test1 and test2 cgroup files to determine how much disk time each group got till first fio job finished. Following are the results. test1 statistics: time=8 16 5598 sectors=8 16 1049648 test2 statistics: time=8 16 2908 sectors=8 16 508560 Above shows that by the time first fio (higher weight), finished, group test1 got 5598 ms of disk time and group test2 got 2908 ms of disk time. similarly the statistics for number of sectors transferred are also shown. Note that disk time given to group test1 is almost double of group2 disk time. Test2 (AIO Wries (direct)) ========================== Set up two fio, AIO direct write jobs in two cgroup with weight 1000 and 500 respectively. I am using cfq scheduler. Following are some lines from my test script. =================================================================== fio_args="--ioengine=libaio --rw=write --size=512M --direct=1" echo 1 > /sys/block/$BLOCKDEV/queue/iosched/fairness fio $fio_args --name=test1 --directory=/mnt/$BLOCKDEV/fio1/ --output=/mnt/$BLOCKDEV/fio1/test1.log --exec_postrun="../read-and-display-group-stats.sh $maj_dev $minor_dev" & fio $fio_args --name=test2 --directory=/mnt/$BLOCKDEV/fio2/ --output=/mnt/$BLOCKDEV/fio2/test2.log & =================================================================== test1 and test2 are two groups with weight 1000 and 500 respectively. "read-and-display-group-stats.sh" is one small script which reads the test1 and test2 cgroup files to determine how much disk time each group got till first fio job finished. Following are the results. test1 statistics: time=8 16 28029 sectors=8 16 1049656 test2 statistics: time=8 16 14093 sectors=8 16 512600 Above shows that by the time first fio (higher weight), finished, group test1 got 28029 ms of disk time and group test2 got 14093 ms of disk time. similarly the statistics for number of sectors transferred are also shown. Note that disk time given to group test1 is almost double of group2 disk time. Thanks Vivek -- dm-devel mailing list dm-devel@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/dm-devel