[Disksim-users] A bug about "iosim Block"
ll2 at rice.edu
ll2 at rice.edu
Wed Aug 8 17:03:28 EDT 2007
Hi, Ajay :
Thanks a lot for your reply and suggestion !
There are two files in "modules" directory to handle the "iosim Block",
modules/disksim_iosim_param.c, and modules/disksim_iomap_param.c.
Both of them do not initialize the "ioscale", they only initialize the
io mappings variables, such as tracedev, simdev, locScale, et..
I print "ioscale" in functions "iosim_load_map" and "disksim_iomap_loadparams"
in file "disksim_iosim.c", the value is still "1.0", not the value I input in
.parv file.
Maybe I miss something, but during runtime, the value is always "1.0". I assume
that DiskSim miss to load this value.
Thanks,
Lanyue Lu
Quoting Ajay Gulati <gulati at rice.edu>:
> Hi Lanyue,
> Not sure if you already looked at this. The following function in
> disksim_iosim.c should read the parameter.
>
> try printing in this function after the "#include ...." line to see if
> correct value is loaded.
>
>
> 424 static int iosim_load_map(struct lp_block *b, int n) {
> 425 int c;
> 426 int i = 0;
> 427 char *s = 0;
> 428
> 429
> 430 #include "modules/disksim_iomap_param.c"
> 431
> 432
> Most of the setting of parameters is done via code in modules
> sub-directory and may not be visible in src/ by using "grep". So I
> would suggest giving it a try.
> You can look at modules/disksim_iomap_param.c to see if the parameter
> is loaded correctly.
>
> -Ajay
>
> On 8/8/07, ll2 at rice.edu <ll2 at rice.edu> wrote:
> >
> > Hello everyone :
> >
> > DiskSim has a "iosim Block" in .parv file to support I/O trace time scale
> and
> > I/O mappings, et.
> >
> > Users can set "I/O trace time scale" value in "iosim block" to replay the
> trace
> > in different speed, resulting different request rate. However, I found that
> the
> > value I set is not used by DiskSim. Then I dig into the source code.
> >
> > I found in disksim_iosim.c :
> >
> > void iosim_initialize_iosim_info ()
> > {
> > disksim->iosim_info = DISKSIM_malloc (sizeof(iosim_info_t));
> > bzero ((char *)disksim->iosim_info, sizeof(iosim_info_t));
> >
> > /* initializations that get remapped into iosim_info */
> > ioscale = 1.0; /**************LOOK HERE************/
> > last_request_arrive = 0.0;
> > constintarrtime = 0.0;
> > }
> >
> >
> > It means that "ioscale" is set to 1.0 by DiskSim, resulting the same speed
> as
> > the original trace, ignoring the value set by user in .parv file. And this
> value
> > is not changed in other places. I tried to change the value of "ioscale" in
> the
> > source code, then it works. For example, ioscale = 2, will make the arrival
> > time two times.
> >
> > I found DiskSim did not read the parameter file to fill this "ioscale". So,
> no
> > matter what you set for I/O trace time scale, it just use the "1.0" in the
> > runtime.
> >
> > Does anyone else find this problem? I appreciate your suggestion and
> comments .
> >
> > Regards,
> >
> > Lanyue Lu
> >
> >
> >
> >
> > _______________________________________________
> > 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