[Disksim-users] some questions regarding Disksim

Shahrukh Rohinton Tarapore shahrukh at cs.virginia.edu
Tue Aug 15 11:13:00 EDT 2006


the short answer is no, you shouldn't change the ioreq_event struct if 
you can help it.  the ioreq_event struct does have a member called buf 
which you can use you maintain a pointer to the "system level" request 
(which contains the ID field).  If you look at the 
disksim_request_arrive function you'll see the system level request 
parameter is a pointer and that pointer is assigned to the buf member of 
the ioreq_event.  you should do the samething in your implmentation.

the reason for not adding the ID field to ioreq_event is that the core 
disksim structs have been sized to optimize memory allocation during 
simulation so increasing the size of this struct could unnecessarily 
slow down your simulation.

-- shahrukh

haya shem tov wrote:

> shahrukh,
> your reply was very helpful.
> I changed the Request struct in syssim_driver.h to include ID field, 
> only this did not seem to be enough, since in disksim_interface.c the 
> Request struct is copied to a ioreq_event struct, so I also added to 
> this struct the ID field
> (does it seem ok?)
> this however solved the problem.
> thanks,
> haya 
>
> */Shahrukh Rohinton Tarapore <srt3g at cs.virginia.edu>/* wrote:
>
>     Haya,
>     The syssim_drive may not be the best example for interfacing a system
>     level simulator with disksim because syssim_drive only allows one
>     pending
>     request at a time, so it is not necessary to identify multiple
>     requests.
>
>     There is a quick fix to this however. The request structure that
>     syssim_drive defines can be altered to include a unique id
>     (probably of
>     type long int). Then each time you call
>     disksim_interface_request_arrive
>     with a new request structure just ensure an unused id is in the
>     structure.
>
>     When disksim reports completion of a specified request you can
>     check the
>     unique id and know exactly which pending request has completed.
>
>     Also realize that if you're going to be putting multiple pending
>     requests
>     into disksim the syssim_drive example can not be used. You will
>     need to
>     implement your own mechanism for handling multiple requests (via
>     disksim_interface.c). Hope that helps.
>
>     -- shahrukh
>
>
>     On Wed, 9 Aug 2006, haya shem tov wrote:
>
>     > Dear Disksim users,
>     > I am new in disksim and I am trying to integrate disksim in a
>     larger simulator
>     > Using disksim_interface.c.
>     > I am having some difficulties since I do not fully understand
>     the API.
>     > Does anyone has more documentation on disksim interface
>     functions, or more example programs? In detail, in the file
>     syssim_driver.c when the function syssim_report_completion is
>     called , how can I know which request was completed? Is there no
>     ID filed in the Request structure?
>     > Best,
>     > Haya Shemtov
>     >
>     > ---------------------------------
>     > Want to be your own boss? Learn how on Yahoo! Small Business.
>
>
> ------------------------------------------------------------------------
> Stay in the know. Pulse on the new Yahoo.com. Check it out. 
> <http://us.rd.yahoo.com/evt=42974/*http://www.yahoo.com/preview> 




More information about the Disksim-users mailing list