From dmaung at earthlink.net Thu Jul 2 15:36:13 2009 From: dmaung at earthlink.net (David Maung) Date: Thu, 2 Jul 2009 12:36:13 -0700 Subject: [Disksim-users] Smart Controller needs Scheduler Section Message-ID: <00e001c9fb4c$5bcbf7f0$1363e7d0$@net> All, I am attempting to implement the smart controller with a memory cache (Controller type = 3). In my initial parameter file, I neglected to add a Scheduler section, which resulted in a Segmentation Fault. It seems that a smart controller needs a scheduler section defined. If this is the case, it should probably be mentioned in section 3.4.7 of the Disksim users manual. To help myself avoid this error in the future, I inserted a line at line 444 in disksim_ctlrsmart.c ASSERT( currctlr->queue != NULL); // Current controller must have a queue defined. Although a more user friendly error message would probably be better somewhere earlier in the code, at least an ASSERT is better than a segmentation fault. Sincerely, David Maung -------------- next part -------------- An HTML attachment was scrubbed... URL: From dmaung at earthlink.net Mon Jul 6 19:56:13 2009 From: dmaung at earthlink.net (David Maung) Date: Mon, 6 Jul 2009 16:56:13 -0700 Subject: [Disksim-users] Need help understanding cache_mem_event struct usage in disksim_cachemem.c Message-ID: <000501c9fe95$5958bde0$0c0a39a0$@net> If anyone is familiar with disksim_cachemem.c, I have a question regarding the usage of the cache_mem_event structure member lockstop. In the function cachemem_getblock, it is used as: rwdesc->lockstop = - (req->blkno % cache->atomsperbit); Which would incline me to give it a definition of "Negative offset from the requested logical block to the lock location for this block". In another function allocate_cache_space, it is used as: allocdesc->lockstop = lbn - (lbn % linesize); This would incline me to give it a definition of "Beginning of the allocation unit for the specified logical block number." In yet more places, it is assigned to lbn and vice versa. These multiple uses for the same structure member are confusing me as to the actual use in particular places. Any help would be appreciated. Sincerely, David Maung -------------- next part -------------- An HTML attachment was scrubbed... URL: From savulescucostin at yahoo.com Wed Jul 8 09:54:24 2009 From: savulescucostin at yahoo.com (Costin Savulescu) Date: Wed, 8 Jul 2009 06:54:24 -0700 (PDT) Subject: [Disksim-users] Add pesonalized algorithm to DiskSim Message-ID: <214190.60205.qm@web30103.mail.mud.yahoo.com> Hi, I am working on a DiskSim project in which I have to optimize a kind of algorithm in order to obtain the best average response time in the case of multiple? requests arriving at the same time. DiskSim has a lot of embedded algorithms (FCFC, SCAN, SSTF, etc.) and I need just one of them to modify/optimize and, if possible, embed in DiskSim (I suppose I must modify the source files and recompile DiskSim). This sounds pretty complicated.? Can anyone please provide some information about my issue? Actually, the two issues, first which algorithm should I modify (which one should be the easiest and quickest to modify, and second, if it ispossible to embed the optimized algorithm in DiskSim, and maybe how to do that :). Thank you in advance, All the best! -------------- next part -------------- An HTML attachment was scrubbed... URL: From dmaung at earthlink.net Wed Jul 8 14:37:38 2009 From: dmaung at earthlink.net (David Maung) Date: Wed, 8 Jul 2009 11:37:38 -0700 Subject: [Disksim-users] Add pesonalized algorithm to DiskSim (Costin Savulescu) Message-ID: <002a01c9fffb$2fc2cea0$8f486be0$@net> Hello, I believe you are referring to the Scheduling Policy described in section 3.4.7 of the Disksim 4.0 users manual and the table of options listed on page 29. This scheduling policy is handled in the file disksim_ioqueue.c. When you set a value for "Scheduling Policy", it ends up in the member variable .sched_alg of the ioqueue struct. (Look at the function DISKSIM_IOQUEUE_SCHEDULING_POLICY_loader in disksim_ioqueue_param.c.) Perhaps you could add your own scheduling algorithm to disksim_ioqueue.c. Once you have made your edits, rebuilding the source is as simple as running "make". Note: I have found it necessary to run "make clean" before rebuilding when I make updates to an included module such as the ssd module. Hope that helps, David Maung -------------- next part -------------- An HTML attachment was scrubbed... URL: From savulescucostin at yahoo.com Sun Jul 12 20:42:52 2009 From: savulescucostin at yahoo.com (Costin Savulescu) Date: Sun, 12 Jul 2009 17:42:52 -0700 (PDT) Subject: [Disksim-users] Extracting parameters with dixtrac Message-ID: <491258.52609.qm@web30107.mail.mud.yahoo.com> Hi! I am trying to use dixtrac to extract parameters for a disk. I am running into some problems when I try to execute the new_disk.pl script. I ran it with perl and I get an error that says something like: Could not set FORCE_PACK_ID on device /dev/sda. Does anyone know what this means? Actually, has anyone used dixtrac tool successfully and can give me a walkthrough? Thanks, all the best! -------------- next part -------------- An HTML attachment was scrubbed... URL: From n080di at yahoo.com Wed Jul 15 03:47:37 2009 From: n080di at yahoo.com (Nobody Nobody Nobody) Date: Wed, 15 Jul 2009 00:47:37 -0700 (PDT) Subject: [Disksim-users] slave mode and request completion Message-ID: <880811.83649.qm@web55106.mail.re4.yahoo.com> In slave mode, can the master simulator give disksim a second request before disksim has finished processing a previous one? If so, then how does the master know which request completed, when disksim calls its completion function? In my code, the completion function completion(t, *req, *ctx) returns garbage values in req and ctx is null. Or should I be using iface->ctx to point to the request currently being processed by disksim? If so, then disksim cannot handle more than one request at a time. Any enlightening comments welcome. Thanks. -------------- next part -------------- An HTML attachment was scrubbed... URL: From n080di at yahoo.com Sat Jul 18 23:03:52 2009 From: n080di at yahoo.com (Nobody Nobody Nobody) Date: Sat, 18 Jul 2009 20:03:52 -0700 (PDT) Subject: [Disksim-users] Figured it out Message-ID: <117583.6071.qm@web55103.mail.re4.yahoo.com> Just wanted to say for the record that I figured out the questions I asked to this list. Thank you Steve for at least responding to my emails :) If others have similar questions, please email me. I'd be glad to point you in the right direction. -------------- next part -------------- An HTML attachment was scrubbed... URL: From yyzhang at cs.wisc.edu Mon Jul 27 20:41:17 2009 From: yyzhang at cs.wisc.edu (Yiying Zhang) Date: Mon, 27 Jul 2009 19:41:17 -0500 Subject: [Disksim-users] adding dummy writes at RAID level Message-ID: <7bd5a2625559fc23280cc779cc15111e.squirrel@webmail.cs.wisc.edu> Hi, I need to add dummy writes (writing to the same block twice with the same value) to some device (e.g. the shadowed device) of RAID. I copied the write request and added it in logorg_shadowed. When the dummy write has the same block number as the original one, the program failed at some point. With different block number, it is working fine. I've been debugging with it for some time but no luck so far. Any ideas what can go wrong when adding dummy writes with same block number? I've removed the check for request already present in queue. Thanks