[Disksim-users] some questions regarding Disksim

John Bucy bucy at ece.cmu.edu
Tue Aug 15 13:40:41 EDT 2006


Not to mention the fact that (IIRC) there is some code that casts some
of those structs around in weird ways that may mysteriously break if
you change it.



john

On 8/15/06, Shahrukh Rohinton Tarapore <shahrukh at cs.virginia.edu> wrote:
> 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>
>
> _______________________________________________
> Disksim-users mailing list
> Disksim-users at ece.cmu.edu
> https://sos.ece.cmu.edu/mailman/listinfo/disksim-users
>
>



More information about the Disksim-users mailing list