From ricardoreyyy at gmail.com Thu Jan 5 15:48:24 2012 From: ricardoreyyy at gmail.com (Ricardo Rey) Date: Thu, 5 Jan 2012 14:48:24 -0600 Subject: [Disksim-users] Disksim as Slave - Some Questions Message-ID: Hi, all! Thanks to Peter Macko's answer from my previous question I know where to start to use Disksim as a slave from another code, and I have already gone through syssim_driver.c many times, so I think I already have somewhat of a picture of how it works. However, I still have some questions about some situations which are not considered in syssim_driver.c, or which I at least have not yet understood: 1) I don't fully understand the disksim_request structure, so some of its fields raise some questions: a) Device number (devno). Is this used as a reference of which disk receives the request, in case there is more than one disk? If so... which device number makes reference to which disk? In the .parv files in ./valid, the only one that I've found that has more than one disk instantiated is ascii.parv (18 disks), and the mapping is done using disksim_iomap {}... but I cannot match the tracedev and simdev parameters to the device number. b) Block number: I have no idea what this is. In the example they use the third input parameter (argv[3]) and a random number to generate "r.blkno"... but I don't know what it is used for c) Request size (bytecount): this is pretty self expanatory. My issue is this: what is the "unit" of this parameter? Is it in bytes? In sectors? According to what I've read it must be in bytes, because there is a line where this value is divided by 512 (which is the sector size), thus resulting in a one-sector size... if this value is less than 512, there is an assert that fails (bcount > 0 turns out to be false). Can someone tell me, then, what is the unit of this field? 2) Part of this project requires the simulation of errors (say, a disk failure, a bus failure, etc)... does Disksim provide this kind of simulation? (The probability of failure of a disk given some information about it, like how old it is, the type and brand, etc). 3) My question about the device number brings me to another issue: if it is possible to send requests to different disks, is it possible to process each request at the same time? -------------- next part -------------- An HTML attachment was scrubbed... URL: From pmacko at eecs.harvard.edu Fri Jan 6 13:43:40 2012 From: pmacko at eecs.harvard.edu (Peter Macko) Date: Fri, 06 Jan 2012 13:43:40 -0500 Subject: [Disksim-users] Disksim as Slave - Some Questions In-Reply-To: References: Message-ID: <4F0740DC.9000608@eecs.harvard.edu> Hi, Just a few quick answers to help you get started: 1) a) You can specify multiple disks in a .parv file without using disksim_iomap, and devno would be then used to distinguish between the different disks. b) blkno is the sector number. The default size of a sector is 512 bytes. c) bytecount is the number of bytes. It needs to be divisible by the sector size (usually 512 bytes). I am not sure about 2) or 3), but here is what I think: 2) To the best of my knowledge, there is not much support for this. The SSD module simulates the wearing out of flash. I didn't yet find anything else that would simulate a failure. 3) I think you should be able to do this... I hope this helps. Best, -Peter On 01/05/2012 03:48 PM, Ricardo Rey wrote: > Hi, all! > > Thanks to Peter Macko's answer from my previous question I know where > to start to use Disksim as a slave from another code, and I have already > gone through syssim_driver.c many times, so I think I already have > somewhat of a picture of how it works. > > However, I still have some questions about some situations which are > not considered in syssim_driver.c, or which I at least have not yet > understood: > > 1) I don't fully understand the disksim_request structure, so some of > its fields raise some questions: > > a) Device number (devno). Is this used as a reference of which > disk receives the request, in case there is more than one disk? If > so... which device number > makes reference to which disk? In the .parv files in ./valid, > the only one that I've found that has more than one disk instantiated > is ascii.parv (18 disks), and the > mapping is done using disksim_iomap {}... but I cannot match > the tracedev and simdev parameters to the device number. > b) Block number: I have no idea what this is. In the example they > use the third input parameter (argv[3]) and a random number to > generate "r.blkno"... but I don't know what > it is used for > c) Request size (bytecount): this is pretty self expanatory. My > issue is this: what is the "unit" of this parameter? Is it in bytes? > In sectors? According to what I've read it must be > in bytes, because there is a line where this value is divided > by 512 (which is the sector size), thus resulting in a one-sector > size... if this value is less than 512, there is an assert > that fails (bcount > 0 turns out to be false). Can someone > tell me, then, what is the unit of this field? > > 2) Part of this project requires the simulation of errors (say, a disk > failure, a bus failure, etc)... does Disksim provide this kind of > simulation? (The probability of failure of a disk given > some information about it, like how old it is, the type and brand, > etc). > > 3) My question about the device number brings me to another issue: if > it is possible to send requests to different disks, is it possible to > process each request at the same time? > > > _______________________________________________ > Disksim-users mailing list > Disksim-users at ece.cmu.edu > https://sos.ece.cmu.edu/mailman/listinfo/disksim-users -------------- next part -------------- An HTML attachment was scrubbed... URL: