[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