[Disksim-users] I/O driver q-time differences between splitted requests in RAID0

Yipkei Kwok ykwok2 at miners.utep.edu
Fri Feb 1 17:28:58 EST 2008


Hi,

In DiskSim, under RAID 0, each request is divided in to 2 when it 
reaches the I/O driver. I believe that they should have to same I/O 
driver queue time. However, I found that they are actually different in 
my experiment. Can anyone explain the reason?

I am collecting per-request I/O driver queue time with the following 
simplified configuration.

I/O driver
- FCFS
- only the base subqueue is used
- allow queueing in subsystem

CTLR
- FCFS
- queue length = 8
- cache disabled

topology
- RAID 0
- 2 disks

DISK
- IBM18es
- queue length = 16
- FCFS
- prefetching disabled
- cache disabled

The simple trace w./ 50 requests that I used (in ascii format).
1 0 4 4 1
2 0 8 4 1
3 0 12 4 1
4 0 16 4 1
5 0 20 4 1
6 0 24 4 1
7 0 28 4 1
8 0 32 4 1
9 0 36 4 1
10 0 40 4 1
11 0 44 4 1
12 0 48 4 1
13 0 52 4 1
14 0 56 4 1
15 0 60 4 1
16 0 64 4 1
17 0 68 4 1
18 0 72 4 1
19 0 76 4 1
20 0 80 4 1
21 0 84 4 1
22 0 88 4 1
23 0 92 4 1
24 0 96 4 1
25 0 100 4 1
26 0 104 4 1
27 0 108 4 1
28 0 112 4 1
29 0 116 4 1
30 0 120 4 1
31 0 124 4 1
32 0 128 4 1
33 0 132 4 1
34 0 136 4 1
35 0 140 4 1
36 0 144 4 1
37 0 148 4 1
38 0 152 4 1
39 0 156 4 1
40 0 160 4 1
41 0 164 4 1
42 0 168 4 1
43 0 172 4 1
44 0 176 4 1
45 0 180 4 1
46 0 184 4 1
47 0 188 4 1
48 0 192 4 1
49 0 196 4 1
50 0 200 4 1


This is how I captured the per-request I/O driver queue time
In ioqueue_get_next_request_from_subqueue(), I added a parameter to 
identify is this function is serving an I/O driver, controller or a 
simple disk. If it is serving an I/O driver, I record the queue time 
which is passed as a parameter to stat_update() on line 2632 of 
disksim_ioqueue.c

Here is how it looks like.
    while (ret) {
       stat_update(&queue->qtimestats, (temp->starttime - ret->time));

         if(dev_type == IODRIVER) {
                 printf("ioqueue_get_next_request_from_subqueue, iodrv 
qtime= %lf\n", (te
mp->starttime - ret->time));
         }

       ret = ret->next;
    }

Here are parts of the result.
ioqueue_get_next_request_from_subqueue, iodrv qtime= 0.000000
ioqueue_get_next_request_from_subqueue, iodrv qtime= 0.000000
ioqueue_get_next_request_from_subqueue, iodrv qtime= 0.000000
ioqueue_get_next_request_from_subqueue, iodrv qtime= 0.000000
ioqueue_get_next_request_from_subqueue, iodrv qtime= 0.000000
ioqueue_get_next_request_from_subqueue, iodrv qtime= 0.000000
ioqueue_get_next_request_from_subqueue, iodrv qtime= 0.000000
ioqueue_get_next_request_from_subqueue, iodrv qtime= 0.000000
ioqueue_get_next_request_from_subqueue, iodrv qtime= 0.000000
ioqueue_get_next_request_from_subqueue, iodrv qtime= 9.635181
ioqueue_get_next_request_from_subqueue, iodrv qtime= 10.736181
ioqueue_get_next_request_from_subqueue, iodrv qtime= 26.344682
ioqueue_get_next_request_from_subqueue, iodrv qtime= 25.445682
ioqueue_get_next_request_from_subqueue, iodrv qtime= 41.054183
ioqueue_get_next_request_from_subqueue, iodrv qtime= 42.155183
Overall I/O System Total Requests handled:      3
System logorg #0 disk Total Requests handled:   6
IOdriver Total Requests handled:        6
IOdriver #0 device #0 Total Requests handled:   3
IOdriver #0 device #1 Total Requests handled:   3
Disk Total Requests handled:    6
Disk #0 Total Requests handled: 3
Disk #1 Total Requests handled: 3
Controller #0 devices Total Requests handled:   6
Controller #0 device #0 Total Requests handled: 3
Controller #0 device #1 Total Requests handled: 3

Since 3 requests are handled by the overall I/O system and FCFS is used, 
the queue time of these 3 requests appear to be

request 1 (9.635181 & 10.736181)
request 2 (26.344682 & 25.445682)
request 3 (41.054183 & 42.155183)

Why is there an ~1ms difference between the divided requests of each 
request?

Thank you very much!

Regards,
Yipkei

-- 
********************************************
Yipkei Kwok
Ph.D. Student
Research Assistant
HiPerSys Lab
Department of Computer Science
The University of Texas at El Paso
Phone: 915 747 6433 (O)
E-mail: ykwok2 at miners dot utep dot edu
********************************************



More information about the Disksim-users mailing list