From michael.meeks at novell.com Wed Aug 1 12:36:47 2007 From: michael.meeks at novell.com (Michael Meeks) Date: Wed, 01 Aug 2007 17:36:47 +0100 Subject: [Disksim-users] code questions ... Message-ID: <1185986207.9144.128.camel@localhost> Hi guys, Reading through the disksim code, I have a few questions & comments to add to my previous questions. * src/syssym_driver.c (main) + int len = 8192000; + why do we allocate a structure that is 8Mb large instead of sizeof (disksim_t) ? * src/disksim.c (disksim_initialize_disksim_structure): + perhaps related, why do we initialize fields: disksim->startaddr = addr; disksim->curroffset = sizeof(disksim_t); + when (apparently) both are unused + (also why a 'rr' in curroffset ? ;-) * src/disksim.c: + disksim_t *disksim = NULL; + why use a global variable for state ? * src/disksim_global.h /* remapping #defines for some of the variables in disksim_t */ #define warmuptime (disksim->warmuptime) #define simtime (disksim->simtime) #define statdeffile (disksim->statdeffile) + I assume these were to help move from lots of global variables, to just one which is a good direction. + OTOH - can we change the field names, to be different to the macro names ? :-) that would make the more readable: disksim->_simtime; actually compile. + cf. disksim_initialize_disksim_structure + simtime = 0.0; /* gets remapped to disksim->warmuptime */ * What namespacing policy is in use ? + eg. gtk+ would always use a gtk_ prefix for all exported symbols, GTK_ for macros, and Gtk for types + does disksim have a policy ? * src/syssim_driver.c (syssim_deschedule_callback) + comment: "de-scehdule a callback." is jumbled. * src/disksim_interface.c (disksim_interface_request_arrive) + looks like the end of this is a cut/paste of + disksim_interface_internal_event + code shrink & cleanup possible :-) * src/disksim_global.h (ioreq_event) + the 'void *buf' pointer here appears to be some user closure; thus is 'buf' a good name ? * src/disksim.c (disksim_setup_disksim) + I'm intrigued by code such as: disksim->tracepipes[0] = 8; disksim->tracepipes[1] = 9; + why 8 & 9 ? :-) is socketpair what is required ? + also the great block of commented out code appears to betray a lack of revision-control based confidence in recovering old code ? :-) I suppose I've managed to create a wrapper API I can use now to drive my I/O simulation (and wrapped that with a pinvoke / C# API ;-) and life is good. Is there a process for getting changes / fixes into DiskSim ? Thanks, Michael. -- michael.meeks at novell.com <><, Pseudo Engineer, itinerant idiot From michael.meeks at novell.com Mon Aug 6 05:45:11 2007 From: michael.meeks at novell.com (Michael Meeks) Date: Mon, 06 Aug 2007 09:45:11 +0000 Subject: [Disksim-users] patch: DISKSIM_PATH ... Message-ID: <1186393511.5561.72.camel@localhost> Hi guys, Since I'm embedding disksim as a shared library for (hopefully) user-friendly application, there are several changes necessary. Perhaps the simplest & most useful is attached. Instead of just looking for files in the CWD, use a DISKSIM_PATH environment variable to try harder. I also managed to answer my question wrt: disksim->tracepipes[0] = 8; disksim->tracepipes[1] = 9; '8' is the first free file descriptor you get to after fopen-ing (and never closing) the configuration files ;-> I also, rather want to turn off all logging to files; would a patch be accepted to use 'NULL' to signify no file output etc. Regards, Michael. -- michael.meeks at novell.com <><, Pseudo Engineer, itinerant idiot -------------- next part -------------- A non-text attachment was scrubbed... Name: disksim-path.diff Type: text/x-patch Size: 3994 bytes Desc: not available URL: From michael.meeks at novell.com Mon Aug 6 06:01:22 2007 From: michael.meeks at novell.com (Michael Meeks) Date: Mon, 06 Aug 2007 11:01:22 +0100 Subject: [Disksim-users] patch: improved (?) interface ... Message-ID: <1186394482.5561.87.camel@localhost> Hi there, My requirements for disk-sim, are (perhaps) rather unlike other people's: treating it as a black-box, I plug a disk model in one end, and wish to get a set of timing information out of the other end. Anyhow, I looked at the disksim_interface.[ch] code, and decided to write a simple new API to cover my use-case at least: features: a) callback based => suitable for a shared library. b) fully opaque types: + extremely extensible without ABI issues + better self documenting behaviour c) no implicit state + API has no global-variable requirements, should be thread-safe in future etc. d) full closure information + critical for propagating d) to the caller, and allow alternate language bindings e) namespaced: I used 'IDiskSim', suggestions welcome. In particular I like properties c & d); which should support (I hope) what I presume is an ongoing movement of the code away from global state. [ Unfortunately the mailing list doesn't like my patch as an attachment, so I append it ;-] Thanks, Michael. diff --git a/disksim-3.0/src/interface.h b/disksim-3.0/src/interface.h new file mode 100644 index 0000000..717330d --- /dev/null +++ b/disksim-3.0/src/interface.h @@ -0,0 +1,68 @@ +#ifndef INTERFACE_H +#define INTERFACE_H + +/* + * A cleaner, more extensible and user-friendly interface for DiskSim + */ + +#if defined(__cplusplus) +extern "C" { +#endif + +// time is the time since simulation start in seconds. +typedef double IDiskSimTime; + +/* opaque handles */ +typedef struct _IDiskSim IDiskSim; +typedef struct _IDiskSimRequest IDiskSimRequest; + +/* necessary callbacks */ +typedef void (*IDiskSimCallback) (IDiskSim *ids, + void *closure, + IDiskSimTime time); +typedef void (*IDiskSimScheduleCallback) (IDiskSim *ids, + IDiskSimCallback callback, + void *callback_closure, + IDiskSimTime time_to_call, + void *closure); +typedef void (*IDiskSimDeScheduleCallback) (IDiskSim *ids, + IDiskSimCallback callback, + void *closure); +typedef void (*IDiskSimDoneIONotify) (IDiskSim *ids, + IDiskSimRequest *req, + IDiskSimTime time_completed, + void *closure); + +/* Disk Simulator */ +IDiskSim *idisksim_init (const char *profile_name, + IDiskSimScheduleCallback schedule_fn, + IDiskSimDeScheduleCallback de_schedule_fn, + IDiskSimDoneIONotify notify_fn, + void *closure); +void idisksim_free (IDiskSim *ids); + +/* submit a request */ +void idisksim_submit (IDiskSim *ids, + IDiskSimRequest *req, + IDiskSimTime time); +/* process I/O at scheduled time */ +void idisksim_iterate (IDiskSim *ids, + IDiskSimTime time); + +/* I/O Requests */ + +typedef enum { + IDISKSIM_READ = 'r', + IDISKSIM_WRITE = 'w' +} IDiskSimRequestType; + +IDiskSimRequest *idisksim_request_new (IDiskSimRequestType type, + unsigned int blkno, + int bytecount); +void idisksim_request_free (IDiskSimRequest *req); + +#if defined(__cplusplus) +} +#endif + +#endif /* INTERFACE_H */ diff --git a/disksim-3.0/src/interface.c b/disksim-3.0/src/interface.c new file mode 100644 index 0000000..94a75fd --- /dev/null +++ b/disksim-3.0/src/interface.c @@ -0,0 +1,219 @@ +#include +#include "disksim_global.h" +#include "disksim_ioface.h" +#include "disksim_iosim.h" +#include "disksim_disk.h" + +#include "interface.h" + +// DiskSim time is in milliseconds (MS) +#define SYSSIMTIME_TO_MS(syssimtime) (syssimtime*1e3) +#define MS_TO_SYSSIMTIME(curtime) (curtime/1e3) + +/* + * FIXME - this interface is an idealised API, unfortunately + * the disksim implementation is sufficiently lame that it + * cannot easily be realised fully. + * + * FIXME: peel back disksim_interface.c to work out where + * the evil truly comes from. + */ +static IDiskSim *urgh_global_state; +#define SET_GLOBAL_DISKSIM(s) disksim = &(s)->disksim; + +struct _IDiskSim { + IDiskSimScheduleCallback schedule_fn; + IDiskSimDeScheduleCallback de_schedule_fn; + IDiskSimDoneIONotify notify_fn; + void *closure; + + disksim_t disksim; +}; + +#define IDISKSIM_OFFSET (((unsigned char *)&((sim_impl_t *) 0)->disksim)) +#define IDISKSIM_FROM_DISKSIM(s) ((IDiskSim *)((unsigned char *)(s) - SIM_IMPL_DISKSIM_OFFSET)) + +struct _IDiskSimRequest { + IDiskSim *ids; + IDiskSimRequestType type; + unsigned long blkno; + int bytecount; + int devno; +}; + +/* DiskSim is just unbelievable ! */ +static double +idisksim_get_simtime (IDiskSim *sim) +{ + disksim_t *disksim = &sim->disksim; + return simtime; /* macro, and also element name */ +} + +static void idisksim_io_done_notify (ioreq_event *curr) +{ + IDiskSimRequest *req = curr->buf; + IDiskSim *ids = req->ids; + + ids->notify_fn (ids, req, + MS_TO_SYSSIMTIME (idisksim_get_simtime (ids)), + ids->closure); +} + +IDiskSim * +idisksim_init (const char *profile_name, + IDiskSimScheduleCallback schedule_fn, + IDiskSimDeScheduleCallback de_schedule_fn, + IDiskSimDoneIONotify notify_fn, + void *closure) +{ + IDiskSim *ids; + char *argv[6]; + + if (!schedule_fn || !de_schedule_fn || !notify_fn) { + fprintf (stderr, "Error - missing callback\n"); + return NULL; + } + + if (!(ids = calloc (1, sizeof (IDiskSim)))) + return NULL; + + ids->schedule_fn = schedule_fn; + ids->de_schedule_fn = de_schedule_fn; + ids->notify_fn = notify_fn; + ids->closure = closure; + + fprintf (stderr, "idisksim_init '%s'\n", profile_name); + disksim_initialize_disksim_structure (&ids->disksim, sizeof (disksim_t)); + + argv[0] = "disksim"; + argv[1] = profile_name; + argv[2] = "/dev/null"; + argv[3] = "external"; + argv[4] = "0"; // no io trace file + argv[5] = "0"; // synthio + + SET_GLOBAL_DISKSIM (ids); + disksim_setup_disksim (6, (char **)argv); + disksim_set_external_io_done_notify (idisksim_io_done_notify); + + urgh_global_state = ids; + + fprintf (stderr, "idisksim_init done\n"); + + return ids; +} + +void +idisksim_free (IDiskSim *ids) +{ + if (ids) + free (ids); +} + +IDiskSimRequest * +idisksim_request_new (IDiskSimRequestType type, + unsigned int blkno, + int bytecount) +{ + IDiskSimRequest *req; + + if (!(req = calloc (1, sizeof (IDiskSimRequest)))) + return NULL; + + req->type = type; + req->devno = 0; + req->blkno = blkno; + req->bytecount = bytecount; + + return req; +} + +void +idisksim_request_free (IDiskSimRequest *req) +{ + if (req) + free (req); +} + +static void +idisksim_callback (IDiskSim *ids, + void *closure, + IDiskSimTime time) +{ +// fprintf (stderr, "idisksim_callback %p %p %g\n", ids, closure, time); + idisksim_iterate (ids, time); +} + +void +idisksim_submit (IDiskSim *ids, + IDiskSimRequest *req, + IDiskSimTime time) +{ + double curtime = SYSSIMTIME_TO_MS (time); + ioreq_event *new; + + SET_GLOBAL_DISKSIM (ids); + + new = (ioreq_event *) getfromextraq(); + + assert (new != NULL); + new->type = IO_REQUEST_ARRIVE; + new->time = curtime; + new->busno = 0; + new->devno = req->devno; + new->blkno = req->blkno; + new->flags = req->type == IDISKSIM_READ ? READ : WRITE; + new->bcount = req->bytecount / 512; + new->flags |= TIME_CRITICAL; // non-background ... + new->cause = 0; + new->opid = 0; + + // closure + req->ids = ids; + new->buf = req; + + io_map_trace_request (new); + + /* issue it into simulator */ + if (ids->disksim.intq) + ids->de_schedule_fn (ids, idisksim_callback, ids->closure); + addtointq ((event *)new); + + idisksim_iterate (ids, time); +} + +void +idisksim_iterate (IDiskSim *ids, + IDiskSimTime time) +{ + double curtime = SYSSIMTIME_TO_MS (time); + + /* if we missed an event - error out ... */ + if (ids->disksim.intq != NULL && (ids->disksim.intq->time + 0.0001) < curtime) { + fprintf (stderr, "external time is ahead of disksim time: %f > %f\n", + curtime, ids->disksim.intq->time); + return; + } + + if (ids->disksim.intq != NULL) { + if (ids->disksim.intq->time + 0.0001 < idisksim_get_simtime (ids)) { + fprintf (stderr, "Error: time out of sync %g vs %g\n", + ids->disksim.intq->time + 0.0001, + idisksim_get_simtime (ids)); + ASSERT (ids->disksim.intq->time + 0.0001 >= idisksim_get_simtime (ids)); + } + } + + /* process events until the next event is either in the future, or nonexistent */ + while ((ids->disksim.intq != NULL) + && (ids->disksim.intq->time <= (curtime + 0.0001))) + { + SET_GLOBAL_DISKSIM (ids); + disksim_simulate_event (0 /* count for debugging */); + } + + if (disksim->intq) + ids->schedule_fn (ids, idisksim_callback, NULL, + MS_TO_SYSSIMTIME(disksim->intq->time), + ids->closure); +} diff --git a/disksim-3.0/src/checklib.c b/disksim-3.0/src/checklib.c new file mode 100644 index 0000000..802900b --- /dev/null +++ b/disksim-3.0/src/checklib.c @@ -0,0 +1,134 @@ +#include +#include +#include "interface.h" + +typedef struct { + IDiskSim *ids; + double cur_time; + unsigned int completed : 1; + + double next_callback_time; + IDiskSimCallback callback; + void *callback_closure; +} SimData; + +static void +schedule_callback (IDiskSim *ids, + IDiskSimCallback callback, + void *callback_closure, + IDiskSimTime time_to_call, + void *closure) +{ + SimData *sim = closure; + + sim->callback = callback; + sim->callback_closure = callback_closure; + sim->next_callback_time = time_to_call; +} + +static void +deschedule_callback (IDiskSim *ids, + IDiskSimCallback callback, + void *closure) +{ + SimData *sim = closure; + + sim->next_callback_time = -1.0; + sim->callback = NULL; + sim->callback_closure = NULL; +} + +static void +done_io_notify (IDiskSim *ids, + IDiskSimRequest *req, + IDiskSimTime time_completed, + void *closure) +{ + SimData *sim = closure; + + sim->completed = 1; + sim->cur_time = time_completed; +} + + +static SimData * +create_simulation (const char *param_fname) +{ + SimData *sim; + IDiskSim *ids; + + if (!(sim = calloc (1, sizeof (SimData)))) + return NULL; + + if (!(ids = idisksim_init (param_fname, + schedule_callback, + deschedule_callback, + done_io_notify, + sim))) { + free (sim); + return NULL; + } + + sim->ids = ids; + sim->cur_time = 0.0; + sim->completed = 0; + + sim->next_callback_time = -1.0; + sim->callback = NULL; + sim->callback_closure = NULL; + + return sim; +} + +static void +sim_free (SimData *sim) +{ + if (!sim) + return; + idisksim_free (sim->ids); + free (sim); +} + +static void +sim_callback (SimData *sim) +{ + IDiskSimCallback callback = sim->callback; + void *closure = sim->callback_closure; + + /* the callback may register another callback + so de-register it first */ + sim->next_callback_time = -1; + sim->callback = NULL; + sim->callback_closure = NULL; + + callback (sim->ids, closure, sim->cur_time); +} + +int main (int argc, char **argv) +{ + int i; + SimData *sim; + + /* single arg. is parameter filename */ + sim = create_simulation (argv[argc-1]); + + for (i = 0; i < 10000; i++) { + IDiskSimRequest *req = idisksim_request_new (IDISKSIM_READ, i, 4096); + + idisksim_submit (sim->ids, req, sim->cur_time); + + /* Wait for block to complete */ + while (sim->next_callback_time >= 0) { + /* advance the clock */ + sim->cur_time = sim->next_callback_time; + /* call our callback */ + sim_callback (sim); + } + + idisksim_request_free (req); + } + fprintf (stderr, "completed in %g seconds\n", sim->cur_time); + sim_free (sim); + + return 0; +} -- michael.meeks at novell.com <><, Pseudo Engineer, itinerant idiot From ll2 at rice.edu Wed Aug 8 13:38:46 2007 From: ll2 at rice.edu (ll2 at rice.edu) Date: Wed, 8 Aug 2007 12:38:46 -0500 Subject: [Disksim-users] A bug about "iosim Block" Message-ID: <1186594726.46b9ffa61416f@webmail.mail.rice.edu> 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 From gulati at rice.edu Wed Aug 8 16:24:42 2007 From: gulati at rice.edu (Ajay Gulati) Date: Wed, 8 Aug 2007 13:24:42 -0700 Subject: [Disksim-users] A bug about "iosim Block" In-Reply-To: <1186594726.46b9ffa61416f@webmail.mail.rice.edu> References: <1186594726.46b9ffa61416f@webmail.mail.rice.edu> Message-ID: <4c2098aa0708081324m380b338bmf5f76a7b620dda1f@mail.gmail.com> 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 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 > From ll2 at rice.edu Wed Aug 8 17:03:28 2007 From: ll2 at rice.edu (ll2 at rice.edu) Date: Wed, 8 Aug 2007 16:03:28 -0500 Subject: [Disksim-users] A bug about "iosim Block" In-Reply-To: <4c2098aa0708081324m380b338bmf5f76a7b620dda1f@mail.gmail.com> References: <1186594726.46b9ffa61416f@webmail.mail.rice.edu> <4c2098aa0708081324m380b338bmf5f76a7b620dda1f@mail.gmail.com> Message-ID: <1186607008.46ba2fa04fd24@webmail.mail.rice.edu> 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 : > 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 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 > > > > From youkim at cse.psu.edu Sat Aug 11 16:35:01 2007 From: youkim at cse.psu.edu (Youngjae Kim) Date: Sat, 11 Aug 2007 16:35:01 -0400 Subject: [Disksim-users] Throughput of disk Message-ID: <013501c7dc57$180ba3f0$4fb87680@genikims> Dear all, I'm trying to increase the density of the disk drive. I just changed the values of number of blocks per track on the disk spec file. Since I increase the density of the disk drive, I was expecting the disk throughput increasing. But it was not. How can I do this? Is there anybody who can increase the maximum throughput of the disk drive not by changing the rpm or seek time but by increasing the density? Best regards, Youngjae From ll2 at rice.edu Sun Aug 12 12:53:51 2007 From: ll2 at rice.edu (ll2 at rice.edu) Date: Sun, 12 Aug 2007 11:53:51 -0500 Subject: [Disksim-users] Re: Disksim-users Digest, Vol 23, Issue 4 In-Reply-To: <20070812160006.BB25C8A4F@sos.ece.cmu.edu> References: <20070812160006.BB25C8A4F@sos.ece.cmu.edu> Message-ID: <1186937631.46bf3b1f30a33@webmail.mail.rice.edu> Hello, Before I post a message about throughput. You can change three variables : "Read block transfer time, and Write block transfer time" in "Buses" configuration block. "Bulk sector transfer time" in "Controllers" configuration block. "Bulk sector transfer time" in "**.diskspecs" file. The minimum of them determines the throughput of the disk, you can have a try. Lanyue Lu Quoting disksim-users-request at ece.cmu.edu: > Send Disksim-users mailing list submissions to > disksim-users at ece.cmu.edu > > To subscribe or unsubscribe via the World Wide Web, visit > https://sos.ece.cmu.edu/mailman/listinfo/disksim-users > or, via email, send a message with subject or body 'help' to > disksim-users-request at ece.cmu.edu > > You can reach the person managing the list at > disksim-users-owner at ece.cmu.edu > > When replying, please edit your Subject line so it is more specific > than "Re: Contents of Disksim-users digest..." > > > Today's Topics: > > 1. Throughput of disk (Youngjae Kim) > > > ---------------------------------------------------------------------- > > Message: 1 > Date: Sat, 11 Aug 2007 16:35:01 -0400 > From: "Youngjae Kim" > Subject: [Disksim-users] Throughput of disk > To: > Message-ID: <013501c7dc57$180ba3f0$4fb87680 at genikims> > Content-Type: text/plain; format=flowed; charset="iso-8859-1"; > reply-type=original > > Dear all, > > I'm trying to increase the density of the disk drive. I just changed > the values of number of blocks per track on the disk spec file. > Since I increase the density of the disk drive, I was expecting the > disk throughput increasing. But it was not. How can I do this? > > Is there anybody who can increase the maximum throughput of the > disk drive not by changing the rpm or seek time but by increasing > the density? > > Best regards, > Youngjae > > > ------------------------------ > > _______________________________________________ > Disksim-users mailing list > Disksim-users at ece.cmu.edu > https://sos.ece.cmu.edu/mailman/listinfo/disksim-users > > > End of Disksim-users Digest, Vol 23, Issue 4 > ******************************************** > > From youkim at cse.psu.edu Mon Aug 13 22:37:39 2007 From: youkim at cse.psu.edu (Youngjae Kim) Date: Mon, 13 Aug 2007 22:37:39 -0400 Subject: [Disksim-users] Maximum throughput Message-ID: <00b501c7de1c$15dacd60$1cb87680@genikims> Dear all, How can we measure the maximum throughput of a disk dirve model with the synthetic workload generator? Just doing by increasing the request size enough and small enough inter-arrival time and measuring "total size of request processed / time"? Is there something easy else? Thanks. - YJ From bucy at ece.cmu.edu Wed Aug 15 17:44:38 2007 From: bucy at ece.cmu.edu (John Bucy) Date: Wed, 15 Aug 2007 14:44:38 -0700 Subject: [Disksim-users] Maximum throughput In-Reply-To: <00b501c7de1c$15dacd60$1cb87680@genikims> References: <00b501c7de1c$15dacd60$1cb87680@genikims> Message-ID: <4fc1e0430708151444x769348d8qdfd5b42b5f22ac1b@mail.gmail.com> Are you talking about streaming throughput? If you use the trace generator, you'll probably get a lot of random IOs... It seems like it would be easy to make up purely sequential trace (start reading from lbn 0) and see how long it takes... john On Aug 13, 2007 7:37 PM, Youngjae Kim wrote: > Dear all, > > How can we measure the maximum throughput of a disk dirve model with the > synthetic workload generator? Just doing by increasing the request size > enough and small enough inter-arrival time and measuring "total size of > request processed / time"? Is there something easy else? Thanks. > > - > YJ > > _______________________________________________ > Disksim-users mailing list > Disksim-users at ece.cmu.edu > https://sos.ece.cmu.edu/mailman/listinfo/disksim-users > From maobo1983 at 163.com Tue Aug 21 21:47:32 2007 From: maobo1983 at 163.com (hust_mb) Date: Wed, 22 Aug 2007 09:47:32 +0800 Subject: [Disksim-users] Problem when I using the disksim3.0 to execute Message-ID: <200708220947300311714@163.com> Hi,all I am a newer to disksim. I compiled the disksim3.0 in my redhat linux. The version is Linux 2.4.20-8. But when excute the command line as : # ./disksim ascii.parv stdout ascii ascii.trace 0 Then it aborted at the end of the execution with the following message: assertion failed: in disksim_global_loadparams() (modules/disksim_global_param.c;138): statdeffile !=0: failed to open statdefs file! Is there something wrong about what I do? The diskspec file I use is the default: hp_c2249a.diskspecs. Waiting for help. Thank you! -------------- hust_mb 2007-08-22 From maobo1983 at 163.com Tue Aug 21 22:52:01 2007 From: maobo1983 at 163.com (hust_mb) Date: Wed, 22 Aug 2007 10:52:01 +0800 Subject: [Disksim-users] RE: Problem when I using the disksim3.0 to execute Message-ID: <200708221051594538182@163.com> Sorry for that one file I don't use. The problem I has solved! Thank you all the same! -------------- hust_mb 2007-08-22 From yaborovsky at yahoo.com Thu Aug 23 11:24:23 2007 From: yaborovsky at yahoo.com (micael yaborovsky) Date: Thu, 23 Aug 2007 08:24:23 -0700 (PDT) Subject: [Disksim-users] Disksim as an external simulator - multiple "disksim initialize" Message-ID: <384863.76549.qm@web58509.mail.re3.yahoo.com> Hi Disksimers, I would like to ask a question regarding ?disksim interface.c?. when using Disksim as an external simulator, can I perform "disksim initialize" sevral times to perform sevral diffrent experiments, with no danger of previus experiment state to effect the next experiment? (I do pefrorm "disksim shutdown" at the end of each experiment) Best, Michael Yaborovsky --------------------------------- Take the Internet to Go: Yahoo!Go puts the Internet in your pocket: mail, news, photos & more. -------------- next part -------------- An HTML attachment was scrubbed... URL: From youkim at cse.psu.edu Fri Aug 24 08:04:10 2007 From: youkim at cse.psu.edu (Youngjae Kim) Date: Fri, 24 Aug 2007 08:04:10 -0400 Subject: [Disksim-users] Write throughput Message-ID: <002501c7e648$c96016e0$0202fea9@genikims> Dear all, I tested write/read throughput with Barracuda disk (barracuda.diskspecs, barracuda.parv) for synthetic workloads. The configuration for my test and results are as follows. 1. Config. I varied sequentiality (0-1). Inter-arrival time is set to be very small enough to fill up the queue all the time. The request size is 8 blocks (8*512=4KB). I tested every case till the program is aborted because of queue filled up. 2. Results Regardless of sequentiality, write throughputs are almost the same. I don't know why this happens. IOPS is around 100. However, the read throughput varies according to the sequentiality, from 100 to 200. Do you have any idea of why write throughput is smaller than read throughput and why write throughput does not change with the sequentiality of the workloads? And in the implementation, is there any additional overhead to the writes different from read ones? Thank you. YJ, From yipkeikwok at gmail.com Fri Aug 24 10:58:58 2007 From: yipkeikwok at gmail.com (Yipkei Kwok) Date: Fri, 24 Aug 2007 08:58:58 -0600 Subject: [Disksim-users] Write throughput In-Reply-To: <002501c7e648$c96016e0$0202fea9@genikims> References: <002501c7e648$c96016e0$0202fea9@genikims> Message-ID: Hi Youngjae, There are several write-related parameters in the diskspecs file. e.g. - Fast write level (i.e. write-back caching) - Combine seq writes - ... ... Do they give some hints? I hope it helps. -Yipkei On 8/24/07, Youngjae Kim wrote: > Dear all, > > I tested write/read throughput with Barracuda disk (barracuda.diskspecs, > barracuda.parv) for synthetic workloads. The configuration for my test and > results are as follows. > > 1. Config. > > I varied sequentiality (0-1). Inter-arrival time is set to be very small > enough to fill up the queue all the time. The request size is 8 blocks > (8*512=4KB). I tested every case till the program is aborted because of > queue filled up. > > 2. Results > > Regardless of sequentiality, write throughputs are almost the same. I don't > know why this happens. IOPS is around 100. However, the read throughput > varies according to the sequentiality, from 100 to 200. > > Do you have any idea of why write throughput is smaller than read throughput > and why write throughput does not change with the sequentiality of the > workloads? And in the implementation, is there any additional overhead to > the writes different from read ones? > > Thank you. > YJ, > > > _______________________________________________ > Disksim-users mailing list > Disksim-users at ece.cmu.edu > https://sos.ece.cmu.edu/mailman/listinfo/disksim-users > -- Web site: http://360.yahoo.com/yipkeikwok http://www.mcs.csueastbay.edu/~ykwok/ email addresses: yipkeikwok at gmail dot com ykwok2 at miners dot utep dot edu ICQ UIN: 2309842 Google Talk ID: yipkeikwok at gmail dot com Yahoo! Messenger ID: yipkeikwok MSN Messenger ID: yipkeikwok at hotmail dot com From michael.meeks at novell.com Sat Aug 25 05:16:04 2007 From: michael.meeks at novell.com (Michael Meeks) Date: Sat, 25 Aug 2007 10:16:04 +0100 Subject: [Disksim-users] simple disk approximation ... Message-ID: <1188033364.4285.4.camel@localhost> Hi guys, This is prolly a really lame question; but perhaps someone kind will help out :-) I have a need for a very approximate disk simulator; ie. something that behaves in a way that approximates some sort of disk, pretty much any disk would be fine - but it needs to be larger than 9Gb :-) [ preferably variable sized "today I want a 150Gb disk" or whatever ]. The reason is that I wish to overlay a file-system snapshot over the disk, and all my live file-systems are > 9Gb (apparently the largest .parv available in valid/). Would simply tweaking valid/synthsimpledisk.parv achieve this ? if so a few queries: * why this duplication: disksim_simpledisk SD0 { Block count = 100000, .. Generators = [ disksim_synthgen { # generator 0 Storage capacity per device = 100000, * and would setting both of these to a far larger number suffice ? * In my 'Generators' section, I have 4x cut/paste copies of: disksim_synthgen { # generator 0 each marked 'generator 0' - is this really necessary ? Thanks, Michael. -- michael.meeks at novell.com <><, Pseudo Engineer, itinerant idiot From youkim at cse.psu.edu Sat Aug 25 12:06:18 2007 From: youkim at cse.psu.edu (Youngjae Kim) Date: Sat, 25 Aug 2007 12:06:18 -0400 Subject: [Disksim-users] Re: Disksim-users Digest, Vol 23, Issue 10 In-Reply-To: <20070824160007.763D48A33@sos.ece.cmu.edu> References: <20070824160007.763D48A33@sos.ece.cmu.edu> Message-ID: <20070825160618.GA733@emperor01.cse.psu.edu> Dear Yipkei Thanks for your help. But I used fast writes and combined seq. writes and so on. But the throughputs of writes and reads wouldn't be the similar. The writes are slower than the reads in the throughput. They should be almost the same. Shouldn't they? Thanks. Youngjae On Fri, Aug 24, 2007 at 12:00:07PM -0400, disksim-users-request at ece.cmu.edu wrote: > Send Disksim-users mailing list submissions to > disksim-users at ece.cmu.edu > > To subscribe or unsubscribe via the World Wide Web, visit > https://sos.ece.cmu.edu/mailman/listinfo/disksim-users > or, via email, send a message with subject or body 'help' to > disksim-users-request at ece.cmu.edu > > You can reach the person managing the list at > disksim-users-owner at ece.cmu.edu > > When replying, please edit your Subject line so it is more specific > than "Re: Contents of Disksim-users digest..." > > > Today's Topics: > > 1. Write throughput (Youngjae Kim) > 2. Re: Write throughput (Yipkei Kwok) > > > ---------------------------------------------------------------------- > > Message: 1 > Date: Fri, 24 Aug 2007 08:04:10 -0400 > From: "Youngjae Kim" > Subject: [Disksim-users] Write throughput > To: > Message-ID: <002501c7e648$c96016e0$0202fea9 at genikims> > Content-Type: text/plain; format=flowed; charset="iso-8859-1"; > reply-type=original > > Dear all, > > I tested write/read throughput with Barracuda disk (barracuda.diskspecs, > barracuda.parv) for synthetic workloads. The configuration for my test and > results are as follows. > > 1. Config. > > I varied sequentiality (0-1). Inter-arrival time is set to be very small > enough to fill up the queue all the time. The request size is 8 blocks > (8*512=4KB). I tested every case till the program is aborted because of > queue filled up. > > 2. Results > > Regardless of sequentiality, write throughputs are almost the same. I don't > know why this happens. IOPS is around 100. However, the read throughput > varies according to the sequentiality, from 100 to 200. > > Do you have any idea of why write throughput is smaller than read throughput > and why write throughput does not change with the sequentiality of the > workloads? And in the implementation, is there any additional overhead to > the writes different from read ones? > > Thank you. > YJ, > > > > > ------------------------------ > > Message: 2 > Date: Fri, 24 Aug 2007 08:58:58 -0600 > From: "Yipkei Kwok" > Subject: Re: [Disksim-users] Write throughput > To: "Youngjae Kim" > Cc: disksim-users at ece.cmu.edu > Message-ID: > > Content-Type: text/plain; charset=ISO-8859-1 > > Hi Youngjae, > > There are several write-related parameters in the diskspecs file. > > e.g. > - Fast write level (i.e. write-back caching) > - Combine seq writes > - ... ... > > Do they give some hints? I hope it helps. > > -Yipkei > > On 8/24/07, Youngjae Kim wrote: > > Dear all, > > > > I tested write/read throughput with Barracuda disk (barracuda.diskspecs, > > barracuda.parv) for synthetic workloads. The configuration for my test and > > results are as follows. > > > > 1. Config. > > > > I varied sequentiality (0-1). Inter-arrival time is set to be very small > > enough to fill up the queue all the time. The request size is 8 blocks > > (8*512=4KB). I tested every case till the program is aborted because of > > queue filled up. > > > > 2. Results > > > > Regardless of sequentiality, write throughputs are almost the same. I don't > > know why this happens. IOPS is around 100. However, the read throughput > > varies according to the sequentiality, from 100 to 200. > > > > Do you have any idea of why write throughput is smaller than read throughput > > and why write throughput does not change with the sequentiality of the > > workloads? And in the implementation, is there any additional overhead to > > the writes different from read ones? > > > > Thank you. > > YJ, > > > > > > _______________________________________________ > > Disksim-users mailing list > > Disksim-users at ece.cmu.edu > > https://sos.ece.cmu.edu/mailman/listinfo/disksim-users > > > > -- > Web site: > http://360.yahoo.com/yipkeikwok > http://www.mcs.csueastbay.edu/~ykwok/ > email addresses: > yipkeikwok at gmail dot com > ykwok2 at miners dot utep dot edu > ICQ UIN: 2309842 > Google Talk ID: yipkeikwok at gmail dot com > Yahoo! Messenger ID: yipkeikwok > MSN Messenger ID: yipkeikwok at hotmail dot com > > > ------------------------------ > > _______________________________________________ > Disksim-users mailing list > Disksim-users at ece.cmu.edu > https://sos.ece.cmu.edu/mailman/listinfo/disksim-users > > > End of Disksim-users Digest, Vol 23, Issue 10 > ********************************************* From ganger at ece.cmu.edu Sat Aug 25 14:09:57 2007 From: ganger at ece.cmu.edu (Greg Ganger) Date: Sat, 25 Aug 2007 14:09:57 -0400 (EDT) Subject: [Disksim-users] simple disk approximation ... In-Reply-To: <1188033364.4285.4.camel@localhost> References: <1188033364.4285.4.camel@localhost> Message-ID: Disk specs can be created by manipulating the parameters, as described in the manual. The "duplication" you mention relates to two independent regions of parameters: one relates to the disk model and the other to the synthetic workload generator. Good luck, Greg On Sat, 25 Aug 2007, Michael Meeks wrote: > Hi guys, > > This is prolly a really lame question; but perhaps someone kind will > help out :-) > > I have a need for a very approximate disk simulator; ie. something that > behaves in a way that approximates some sort of disk, pretty much any > disk would be fine - but it needs to be larger than 9Gb :-) [ preferably > variable sized "today I want a 150Gb disk" or whatever ]. > > The reason is that I wish to overlay a file-system snapshot over the > disk, and all my live file-systems are > 9Gb (apparently the > largest .parv available in valid/). > > Would simply tweaking valid/synthsimpledisk.parv achieve this ? if so a > few queries: > > * why this duplication: > > disksim_simpledisk SD0 { > Block count = 100000, > .. > Generators = [ > disksim_synthgen { # generator 0 > Storage capacity per device = 100000, > > * and would setting both of these to a far larger > number suffice ? > > * In my 'Generators' section, I have 4x cut/paste copies > of: > > disksim_synthgen { # generator 0 > > each marked 'generator 0' - is this really necessary ? > > Thanks, > > Michael. > > -- > michael.meeks at novell.com <><, Pseudo Engineer, itinerant idiot > > > _______________________________________________ > Disksim-users mailing list > Disksim-users at ece.cmu.edu > https://sos.ece.cmu.edu/mailman/listinfo/disksim-users > From ll2 at rice.edu Sun Aug 26 13:19:58 2007 From: ll2 at rice.edu (ll2 at rice.edu) Date: Sun, 26 Aug 2007 12:19:58 -0500 Subject: [Disksim-users] Re: Write throughput In-Reply-To: <20070826160014.C96398A3D@sos.ece.cmu.edu> References: <20070826160014.C96398A3D@sos.ece.cmu.edu> Message-ID: <1188148798.46d1b63e66a8c@webmail.mail.rice.edu> Hi, Youngjae : Write usually is slower than read, if you use write through, not write back. Even you use write back, if the request rate is too high, the cache is always filled up and the write is still slower than read. You can set up a simple experiment to have a try in DiskSim. Thus the throughput of read is higher than write. You can see that the company usually use the read throughput of the disk as the maximum throughput, not write throughput. So, I think that it makes sense that the write throughput is smaller than read. Lanyue Lu From maobo1983 at 163.com Sun Aug 26 21:26:44 2007 From: maobo1983 at 163.com (hust_mb) Date: Mon, 27 Aug 2007 09:26:44 +0800 Subject: [Disksim-users] Problem About the on-board Cache Message-ID: <200708270926412036072@163.com> Hi, I am confused about the on-board cache in disk. What I mean is not the cache in the controller but the on-board cache in disk. For example the SEAGATE ST39102LW disk has 1MB on-board buffer while 840KB (also 4MB opertional will 3700KB used) is used for data caching as well as for speedmatching between the bus and the disk media. But the on board cache config parameters is only as a part of disk config. The flush policy and others parameters are not included. While in the reference manual the "3.4.9 Memory Caches" is only for the Controller type, isn't it? How can I config my on-board cache except the parameters that in the disk config (in the "3.4.5 Disks" Number of buffer segments, Enable caching in buffer and so on..). Such as flush policy as in the "Memory Caches". Thank you very much! ---------- maobo 2007-08-27 From maobo1983 at 163.com Sun Aug 26 21:55:13 2007 From: maobo1983 at 163.com (hust_mb) Date: Mon, 27 Aug 2007 09:55:13 +0800 Subject: [Disksim-users] More about the source code Message-ID: <200708270955110314043@163.com> Hi, More I want to know is the source code. There is disksim_cache.c, disksim_cachedev.c, disksim_cachemem.c, disksim_diskcache.c. What's the relationship between them. For example the disksim_cachedev.c is used to cache a device with another device. But the others? In the valid directory there is no disksim_cachemem setting example. Can you give me such a example? As said in the reference manual the disk block cache is only used in the intelligent controller. But in the PhD thesis "System-oriented evaluation of I/O subsystem performance" included one sentence "The disk drive module includes a separate cache/buffer submodule because of the specialized nature of common on-board disk cache management policies."(at the bottom line of the page 105). Does that to say there is a separate on-board cache implemente in the source code? Thank you very much. -------------- hust_mb 2007-08-27 From ganger at ece.cmu.edu Sun Aug 26 21:59:29 2007 From: ganger at ece.cmu.edu (Greg Ganger) Date: Sun, 26 Aug 2007 21:59:29 -0400 (EDT) Subject: [Disksim-users] More about the source code In-Reply-To: <200708270955110314043@163.com> References: <200708270955110314043@163.com> Message-ID: disksim_cacheXXX.[ch] for any XXX (including none) relates to the memory cache at an "intelligent controller" (not the on-board disk cache). disksim_diskXXX.[ch] for any XXX (including none) relates to the disk model. So, disksim_diskcache.[ch] is the code for the on-board disk cache. Good luck. Greg On Mon, 27 Aug 2007, hust_mb wrote: > Hi, > More I want to know is the source code. > There is disksim_cache.c, disksim_cachedev.c, disksim_cachemem.c, disksim_diskcache.c. What's the relationship between them. > For example the disksim_cachedev.c is used to cache a device with another device. But the others? > > In the valid directory there is no disksim_cachemem setting example. Can you give me such a example? > > As said in the reference manual the disk block cache is only used in the intelligent controller. But in the PhD thesis "System-oriented evaluation of I/O subsystem performance" included one sentence "The disk drive module includes a separate cache/buffer submodule because of the specialized nature of common on-board disk cache management policies."(at the bottom line of the page 105). Does that to say there is a separate on-board cache implemente in the source code? > > Thank you very much. > > -------------- > hust_mb > 2007-08-27 > > > _______________________________________________ > Disksim-users mailing list > Disksim-users at ece.cmu.edu > https://sos.ece.cmu.edu/mailman/listinfo/disksim-users > From maobo1983 at 163.com Sun Aug 26 22:40:33 2007 From: maobo1983 at 163.com (hust_mb) Date: Mon, 27 Aug 2007 10:40:33 +0800 Subject: [Disksim-users] More about the source code References: <200708270955110314043@163.com> Message-ID: <200708271040313122117@163.com> Hi, Sorry for that I forget to post it in the mailing list. But how can I config the parameters of the on-board disk cache. Are they in the config of disk as showed in the "3.4.5 Disks" of the reference manual. Or some are not included in the "3.4.5 Disks" configed in the source code of disksim_diskcache.c? More ever there is no data indeed keeped in the disksim. So if I want to keep the data content I should to keep a buffer to contain them? Also the trace used are only request size, arrive time and so on.. Disksim is mainly used for performance test. Can I run an application upon it? Thank you ! ------------------ hust_mb 2007-08-27 ------------------------------------------------------------- ????Greg Ganger ?????2007-08-27 09:59:26 ????hust_mb ???Disksim-users; Greg Ganger ???Re: [Disksim-users] More about the source code disksim_cacheXXX.[ch] for any XXX (including none) relates to the memory cache at an "intelligent controller" (not the on-board disk cache). disksim_diskXXX.[ch] for any XXX (including none) relates to the disk model. So, disksim_diskcache.[ch] is the code for the on-board disk cache. Good luck. Greg On Mon, 27 Aug 2007, hust_mb wrote: > Hi, > More I want to know is the source code. > There is disksim_cache.c, disksim_cachedev.c, disksim_cachemem.c, disksim_diskcache.c. What's the relationship between them. > For example the disksim_cachedev.c is used to cache a device with another device. But the others? > > In the valid directory there is no disksim_cachemem setting example. Can you give me such a example? > > As said in the reference manual the disk block cache is only used in the intelligent controller. But in the PhD thesis "System-oriented evaluation of I/O subsystem performance" included one sentence "The disk drive module includes a separate cache/buffer submodule because of the specialized nature of common on-board disk cache management policies."(at the bottom line of the page 105). Does that to say there is a separate on-board cache implemente in the source code? > > Thank you very much. > > -------------- > hust_mb > 2007-08-27 > > > _______________________________________________ > Disksim-users mailing list > Disksim-users at ece.cmu.edu > https://sos.ece.cmu.edu/mailman/listinfo/disksim-users > From ganger at ece.cmu.edu Sun Aug 26 23:28:00 2007 From: ganger at ece.cmu.edu (Greg Ganger) Date: Sun, 26 Aug 2007 23:28:00 -0400 (EDT) Subject: [Disksim-users] More about the source code In-Reply-To: <200708271040313122117@163.com> References: <200708270955110314043@163.com> <200708271040313122117@163.com> Message-ID: It sounds like you need to cozy up to the manual. If memory serves, it describes the parameters of the on-board disk cache module. It also explains that disksim is only a performance simulator. Greg On Mon, 27 Aug 2007, hust_mb wrote: > Hi, > Sorry for that I forget to post it in the mailing list. > > But how can I config the parameters of the on-board disk cache. Are they in the config of disk as showed in the "3.4.5 Disks" of the reference manual. Or some are not included in the "3.4.5 Disks" configed in the source code of disksim_diskcache.c? > > More ever there is no data indeed keeped in the disksim. So if I want to keep the data content I should to keep a buffer to contain them? Also the trace used are only request size, arrive time and so on.. Disksim is mainly used for performance test. Can I run an application upon it? > > Thank you ! > > ------------------ > hust_mb > 2007-08-27 > > ------------------------------------------------------------- > ????????Greg Ganger > ??????????2007-08-27 09:59:26 > ????????hust_mb > ??????Disksim-users; Greg Ganger > ??????Re: [Disksim-users] More about the source code > > > disksim_cacheXXX.[ch] for any XXX (including none) relates to the memory > cache at an "intelligent controller" (not the on-board disk cache). > > disksim_diskXXX.[ch] for any XXX (including none) relates to the disk > model. So, disksim_diskcache.[ch] is the code for the on-board disk > cache. > > Good luck. > > Greg > > > On Mon, 27 Aug 2007, hust_mb wrote: > >> Hi, >> More I want to know is the source code. >> There is disksim_cache.c, disksim_cachedev.c, disksim_cachemem.c, disksim_diskcache.c. What's the relationship between them. >> For example the disksim_cachedev.c is used to cache a device with another device. But the others? >> >> In the valid directory there is no disksim_cachemem setting example. Can you give me such a example? >> >> As said in the reference manual the disk block cache is only used in the intelligent controller. But in the PhD thesis "System-oriented evaluation of I/O subsystem performance" included one sentence "The disk drive module includes a separate cache/buffer submodule because of the specialized nature of common on-board disk cache management policies."(at the bottom line of the page 105). Does that to say there is a separate on-board cache implemente in the source code? >> >> Thank you very much. >> >> -------------- >> hust_mb >> 2007-08-27 >> >> >> _______________________________________________ >> Disksim-users mailing list >> Disksim-users at ece.cmu.edu >> https://sos.ece.cmu.edu/mailman/listinfo/disksim-users >> > From maobo1983 at 163.com Mon Aug 27 03:05:37 2007 From: maobo1983 at 163.com (hust_mb) Date: Mon, 27 Aug 2007 15:05:37 +0800 Subject: [Disksim-users] More about the source code References: <200708270955110314043@163.com> <200708271040313122117@163.com> Message-ID: <200708271505357966813@163.com> Hi, Sorry I don't catch your meaning. What I want to do is changing the on-board cache structure. So I will extend the disksim_diskcache.c. But some parameters I don't know how to config it such as the flush policy etc. Does the on-board cache parameters are all configered in the disk parameters? Please forgive my uninterrupted bother and untalented. Thank you very much. ------------------ maobo 2007-08-27 ------------------------------------------------------------- ????Greg Ganger ?????2007-08-27 11:28:01 ????hust_mb ???Disksim-users; Greg Ganger ???Re: [Disksim-users] More about the source code It sounds like you need to cozy up to the manual. If memory serves, it describes the parameters of the on-board disk cache module. It also explains that disksim is only a performance simulator. Greg On Mon, 27 Aug 2007, hust_mb wrote: > Hi, > Sorry for that I forget to post it in the mailing list. > > But how can I config the parameters of the on-board disk cache. Are they in the config of disk as showed in the "3.4.5 Disks" of the reference manual. Or some are not included in the "3.4.5 Disks" configed in the source code of disksim_diskcache.c? > > More ever there is no data indeed keeped in the disksim. So if I want to keep the data content I should to keep a buffer to contain them? Also the trace used are only request size, arrive time and so on.. Disksim is mainly used for performance test. Can I run an application upon it? > > Thank you ! > > ------------------ > hust_mb > 2007-08-27 > > ------------------------------------------------------------- > ????Greg Ganger > ?????2007-08-27 09:59:26 > ????hust_mb > ???Disksim-users; Greg Ganger > ???Re: [Disksim-users] More about the source code > > > disksim_cacheXXX.[ch] for any XXX (including none) relates to the memory > cache at an "intelligent controller" (not the on-board disk cache). > > disksim_diskXXX.[ch] for any XXX (including none) relates to the disk > model. So, disksim_diskcache.[ch] is the code for the on-board disk > cache. > > Good luck. > > Greg > > > On Mon, 27 Aug 2007, hust_mb wrote: > >> Hi, >> More I want to know is the source code. >> There is disksim_cache.c, disksim_cachedev.c, disksim_cachemem.c, disksim_diskcache.c. What's the relationship between them. >> For example the disksim_cachedev.c is used to cache a device with another device. But the others? >> >> In the valid directory there is no disksim_cachemem setting example. Can you give me such a example? >> >> As said in the reference manual the disk block cache is only used in the intelligent controller. But in the PhD thesis "System-oriented evaluation of I/O subsystem performance" included one sentence "The disk drive module includes a separate cache/buffer submodule because of the specialized nature of common on-board disk cache management policies."(at the bottom line of the page 105). Does that to say there is a separate on-board cache implemente in the source code? >> >> Thank you very much. >> >> -------------- >> hust_mb >> 2007-08-27 >> >> >> _______________________________________________ >> Disksim-users mailing list >> Disksim-users at ece.cmu.edu >> https://sos.ece.cmu.edu/mailman/listinfo/disksim-users >> > From diwaker.lists at gmail.com Tue Aug 28 02:22:52 2007 From: diwaker.lists at gmail.com (Diwaker Gupta) Date: Mon, 27 Aug 2007 23:22:52 -0700 Subject: [Disksim-users] Problem compiling 3.0 In-Reply-To: <200707021603349345609@126.com> References: <891be9410707020006i56e0c0f2icd5b21888b588b56@mail.gmail.com> <200707021603349345609@126.com> Message-ID: <891be9410708272322t4379dde8ub1cedffd9440c24a@mail.gmail.com> I couldn't compile even with GCC 2.95.3. I had to make some changes in the code. With the attached patch, I can compile disksim with gcc 2.95.3, 3.4.5, and 4.1.2 Diwaker -- http://floatingsun.net/ On 7/2/07, Steve wrote: > Hello,Diwaker Gupta, > > please try GCC 2.95.3 first. > > All the best. > > Steve > zgy04 at 126.com > 2007-07-02 > > > ======= 2007-07-02 15:07:16 Diwaker Gupta Written: ======= > > >I'm having trouble compiling disksim 3.0: > > > >First, I tried compiling on an updated Linux box running Ubuntu > >Feisty, with gcc 4.1.2. Following is part of the errors I get: > > > >modules/disksim_stats_param.h:8: warning: 'struct lp_block' declared > >inside parameter list > >modules/disksim_stats_param.h:21: error: array type has incomplete element type > >modules/disksim_stats_param.h:30: error: variable 'disksim_stats_mod' > >has initializer but incomplete type > >modules/disksim_stats_param.h:30: warning: excess elements in struct initializer > >modules/disksim_stats_param.h:30: warning: (near initialization for > >'disksim_stats_mod') > >modules/disksim_stats_param.h:30: warning: excess elements in struct initializer > >modules/disksim_stats_param.h:30: warning: (near initialization for > >'disksim_stats_mod') > >modules/disksim_stats_param.h:30: warning: excess elements in struct initializer > >modules/disksim_stats_param.h:30: warning: (near initialization for > >'disksim_stats_mod') > >modules/disksim_stats_param.h:30: warning: excess elements in struct initializer > >modules/disksim_stats_param.h:30: warning: (near initialization for > >'disksim_stats_mod') > >modules/disksim_stats_param.h:30: error: expected '}' before > >'disksim_stats_loadparams' > >In file included from modules/modules.h:26, > > from config.h:37, > > from disksim.c:105: > >modules/disksim_syncset_param.h:8: warning: 'struct lp_block' declared > >inside parameter list > >modules/disksim_syncset_param.h:18: error: array type has incomplete > >element type > >modules/disksim_syncset_param.h:24: error: variable > >'disksim_syncset_mod' has initializer but incomplete type > >modules/disksim_syncset_param.h:24: warning: excess elements in struct > >initializer > >modules/disksim_syncset_param.h:24: warning: (near initialization for > >'disksim_syncset_mod') > >modules/disksim_syncset_param.h:24: warning: excess elements in struct > >initializer > >modules/disksim_syncset_param.h:24: warning: (near initialization for > >'disksim_syncset_mod') > >modules/disksim_syncset_param.h:24: warning: excess elements in struct > >initializer > >modules/disksim_syncset_param.h:24: warning: (near initialization for > >'disksim_syncset_mod') > >modules/disksim_syncset_param.h:24: warning: excess elements in struct > >initializer > >modules/disksim_syncset_param.h:24: warning: (near initialization for > >'disksim_syncset_mod') > >modules/disksim_syncset_param.h:24: error: expected '}' before > >'disksim_syncset_loadparams' > >In file included from modules/modules.h:27, > > from config.h:37, > > from disksim.c:105: > >modules/disksim_synthgen_param.h:8: warning: 'struct lp_block' > >declared inside parameter list > >modules/disksim_synthgen_param.h:30: error: array type has incomplete > >element type > >modules/disksim_synthgen_param.h:48: error: variable > >'disksim_synthgen_mod' has initializer but incomplete type > >modules/disksim_synthgen_param.h:48: warning: excess elements in > >struct initializer > >modules/disksim_synthgen_param.h:48: warning: (near initialization for > >'disksim_synthgen_mod') > >modules/disksim_synthgen_param.h:48: warning: excess elements in > >struct initializer > >modules/disksim_synthgen_param.h:48: warning: (near initialization for > >'disksim_synthgen_mod') > >modules/disksim_synthgen_param.h:48: warning: excess elements in > >struct initializer > >modules/disksim_synthgen_param.h:48: warning: (near initialization for > >'disksim_synthgen_mod') > >modules/disksim_synthgen_param.h:48: warning: excess elements in > >struct initializer > >modules/disksim_synthgen_param.h:48: warning: (near initialization for > >'disksim_synthgen_mod') > >modules/disksim_synthgen_param.h:48: error: expected '}' before > >'disksim_synthgen_loadparams' > >In file included from modules/modules.h:28, > > from config.h:37, > > from disksim.c:105: > >modules/disksim_synthio_param.h:8: warning: 'struct lp_block' declared > >inside parameter list > >modules/disksim_synthio_param.h:22: error: array type has incomplete > >element type > >modules/disksim_synthio_param.h:32: error: variable > >'disksim_synthio_mod' has initializer but incomplete type > >modules/disksim_synthio_param.h:32: warning: excess elements in struct > >initializer > >modules/disksim_synthio_param.h:32: warning: (near initialization for > >'disksim_synthio_mod') > >modules/disksim_synthio_param.h:32: warning: excess elements in struct > >initializer > >modules/disksim_synthio_param.h:32: warning: (near initialization for > >'disksim_synthio_mod') > >modules/disksim_synthio_param.h:32: warning: excess elements in struct > >initializer > >modules/disksim_synthio_param.h:32: warning: (near initialization for > >'disksim_synthio_mod') > >modules/disksim_synthio_param.h:32: warning: excess elements in struct > >initializer > >modules/disksim_synthio_param.h:32: warning: (near initialization for > >'disksim_synthio_mod') > >modules/disksim_synthio_param.h:32: error: expected '}' before > >'disksim_synthio_loadparams' > >disksim.c: In function 'addtointq': > >disksim.c:286: warning: passing argument 4 of 'ddbg_assert_msg' > >discards qualifiers from pointer target type > >disksim.c:286: warning: passing argument 4 of 'ddbg_assert_fail' > >discards qualifiers from pointer target type > >disksim.c:296: warning: passing argument 4 of 'ddbg_assert_msg' > >discards qualifiers from pointer target type > >disksim.c:296: warning: passing argument 4 of 'ddbg_assert_fail' > >discards qualifiers from pointer target type > >disksim.c: At top level: > >disksim.c:489: warning: 'struct lp_block' declared inside parameter list > >disksim.c:490: error: conflicting types for 'disksim_global_loadparams' > >modules/disksim_global_param.h:8: error: previous declaration of > >'disksim_global_loadparams' was here > >In file included from disksim.c:492: > >modules/disksim_global_param.c: In function 'disksim_global_loadparams': > >modules/disksim_global_param.c:8: warning: implicit declaration of > >function 'BITVECTOR' > >modules/disksim_global_param.c:8: error: 'paramvec' undeclared (first > >use in this function) > >modules/disksim_global_param.c:8: error: (Each undeclared identifier > >is reported only once > >modules/disksim_global_param.c:8: error: for each function it appears in.) > >modules/disksim_global_param.c:9: warning: implicit declaration of > >function 'bit_zero' > >modules/disksim_global_param.c:11: error: dereferencing pointer to > >incomplete type > >modules/disksim_global_param.c:19: error: dereferencing pointer to > >incomplete type > >modules/disksim_global_param.c:22: warning: implicit declaration of > >function 'lp_param_name' > >modules/disksim_global_param.c:22: warning: implicit declaration of > >function 'lp_mod_name' > >modules/disksim_global_param.c:22: error: dereferencing pointer to > >incomplete type > >modules/disksim_global_param.c:25: warning: implicit declaration of > >function 'BIT_TEST' > >modules/disksim_global_param.c:29: error: dereferencing pointer to > >incomplete type > >modules/disksim_global_param.c:30: error: dereferencing pointer to > >incomplete type > >modules/disksim_global_param.c:37: warning: implicit declaration of > >function 'PTYPE' > >modules/disksim_global_param.c:37: error: dereferencing pointer to > >incomplete type > >modules/disksim_global_param.c:38: warning: implicit declaration of > >function 'IVAL' > >modules/disksim_global_param.c:38: error: dereferencing pointer to > >incomplete type > >modules/disksim_global_param.c:39: warning: implicit declaration of > >function 'DVAL' > >modules/disksim_global_param.c:39: error: dereferencing pointer to > >incomplete type > >modules/disksim_global_param.c:40: warning: implicit declaration of > >function 'SVAL' > >modules/disksim_global_param.c:40: error: dereferencing pointer to > >incomplete type > >modules/disksim_global_param.c:40: warning: assignment makes pointer > >from integer without a cast > >modules/disksim_global_param.c:41: warning: implicit declaration of > >function 'LVAL' > >modules/disksim_global_param.c:41: error: dereferencing pointer to > >incomplete type > >modules/disksim_global_param.c:41: warning: assignment makes pointer > >from integer without a cast > >modules/disksim_global_param.c:42: warning: implicit declaration of > >function 'BVAL' > >modules/disksim_global_param.c:42: error: dereferencing pointer to > >incomplete type > >modules/disksim_global_param.c:42: warning: assignment makes pointer > >from integer without a cast > >modules/disksim_global_param.c:54: warning: implicit declaration of > >function 'RANGE' > >modules/disksim_global_param.c:54: warning: implicit declaration of > >function 'BADVALMSG' > >modules/disksim_global_param.c:54: error: dereferencing pointer to > >incomplete type > >modules/disksim_global_param.c:65: error: dereferencing pointer to > >incomplete type > >modules/disksim_global_param.c:72: error: dereferencing pointer to > >incomplete type > >modules/disksim_global_param.c:82: error: dereferencing pointer to > >incomplete type > >modules/disksim_global_param.c:90: warning: passing argument 4 of > >'ddbg_assert_msg' discards qualifiers from pointer target type > >modules/disksim_global_param.c:90: warning: passing argument 4 of > >'ddbg_assert_fail' discards qualifiers from pointer target type > >modules/disksim_global_param.c:94: error: dereferencing pointer to > >incomplete type > >modules/disksim_global_param.c:101: warning: implicit declaration of > >function 'BIT_SET' > >modules/disksim_global_param.c:106: error: missing terminating " character > >modules/disksim_global_param.c:107: error: missing terminating " character > >modules/disksim_global_param.c:108: error: expected expression before 'return' > >modules/disksim_global_param.c:109: error: expected ';' before '}' token > >In file included from disksim.c:492: > >modules/disksim_global_param.c:113:2: warning: no newline at end of file > >disksim.c: In function 'disksim_setup_disksim': > >disksim.c:941: warning: implicit declaration of function > >'iosim_initialize_iosim_info' > >make[1]: *** [disksim.o] Error 1 > >make[1]: Leaving directory `/tmp/disksim-3.0/src' > > > >I then tried compiling on a machine running CentOS 4.4 with gcc 3.4.6. > >This time I get errors like these: > > > >modules/disksim_synthio_param.h:8: warning: "struct lp_block" declared > >inside parameter list > >modules/disksim_synthio_param.h:22: error: elements of array > >`disksim_synthio_params' have incomplete type > >modules/disksim_synthio_param.h:23: warning: excess elements in struct > >initializer > >modules/disksim_synthio_param.h:23: warning: (near initialization for > >`disksim_synthio_params[0]') > >modules/disksim_synthio_param.h:23: warning: excess elements in struct > >initializer > >modules/disksim_synthio_param.h:23: warning: (near initialization for > >`disksim_synthio_params[0]') > >modules/disksim_synthio_param.h:23: warning: excess elements in struct > >initializer > >modules/disksim_synthio_param.h:23: warning: (near initialization for > >`disksim_synthio_params[0]') > >modules/disksim_synthio_param.h:24: warning: excess elements in struct > >initializer > >modules/disksim_synthio_param.h:24: warning: (near initialization for > >`disksim_synthio_params[1]') > >modules/disksim_synthio_param.h:24: warning: excess elements in struct > >initializer > >modules/disksim_synthio_param.h:24: warning: (near initialization for > >`disksim_synthio_params[1]') > >modules/disksim_synthio_param.h:24: warning: excess elements in struct > >initializer > >modules/disksim_synthio_param.h:24: warning: (near initialization for > >`disksim_synthio_params[1]') > >modules/disksim_synthio_param.h:25: warning: excess elements in struct > >initializer > >modules/disksim_synthio_param.h:25: warning: (near initialization for > >`disksim_synthio_params[2]') > >modules/disksim_synthio_param.h:25: warning: excess elements in struct > >initializer > >modules/disksim_synthio_param.h:25: warning: (near initialization for > >`disksim_synthio_params[2]') > >modules/disksim_synthio_param.h:25: warning: excess elements in struct > >initializer > >modules/disksim_synthio_param.h:25: warning: (near initialization for > >`disksim_synthio_params[2]') > >modules/disksim_synthio_param.h:26: warning: excess elements in struct > >initializer > >modules/disksim_synthio_param.h:26: warning: (near initialization for > >`disksim_synthio_params[3]') > >modules/disksim_synthio_param.h:26: warning: excess elements in struct > >initializer > >modules/disksim_synthio_param.h:26: warning: (near initialization for > >`disksim_synthio_params[3]') > >modules/disksim_synthio_param.h:26: warning: excess elements in struct > >initializer > >modules/disksim_synthio_param.h:26: warning: (near initialization for > >`disksim_synthio_params[3]') > >modules/disksim_synthio_param.h:27: warning: excess elements in struct > >initializer > >modules/disksim_synthio_param.h:27: warning: (near initialization for > >`disksim_synthio_params[4]') > >modules/disksim_synthio_param.h:27: warning: excess elements in struct > >initializer > >modules/disksim_synthio_param.h:27: warning: (near initialization for > >`disksim_synthio_params[4]') > >modules/disksim_synthio_param.h:27: warning: excess elements in struct > >initializer > >modules/disksim_synthio_param.h:27: warning: (near initialization for > >`disksim_synthio_params[4]') > >modules/disksim_synthio_param.h:28: warning: excess elements in struct > >initializer > >modules/disksim_synthio_param.h:28: warning: (near initialization for > >`disksim_synthio_params[5]') > >modules/disksim_synthio_param.h:28: warning: excess elements in struct > >initializer > >modules/disksim_synthio_param.h:28: warning: (near initialization for > >`disksim_synthio_params[5]') > >modules/disksim_synthio_param.h:28: warning: excess elements in struct > >initializer > >modules/disksim_synthio_param.h:28: warning: (near initialization for > >`disksim_synthio_params[5]') > >modules/disksim_synthio_param.h:29: warning: excess elements in struct > >initializer > >modules/disksim_synthio_param.h:29: warning: (near initialization for > >`disksim_synthio_params[6]') > >modules/disksim_synthio_param.h:29: warning: excess elements in struct > >initializer > >modules/disksim_synthio_param.h:29: warning: (near initialization for > >`disksim_synthio_params[6]') > >modules/disksim_synthio_param.h:29: warning: excess elements in struct > >initializer > >modules/disksim_synthio_param.h:29: warning: (near initialization for > >`disksim_synthio_params[6]') > >modules/disksim_synthio_param.h:32: error: variable > >`disksim_synthio_mod' has initializer but incomplete type > >modules/disksim_synthio_param.h:32: warning: excess elements in struct > >initializer > >modules/disksim_synthio_param.h:32: warning: (near initialization for > >`disksim_synthio_mod') > >modules/disksim_synthio_param.h:32: warning: excess elements in struct > >initializer > >modules/disksim_synthio_param.h:32: warning: (near initialization for > >`disksim_synthio_mod') > >modules/disksim_synthio_param.h:32: warning: excess elements in struct > >initializer > >modules/disksim_synthio_param.h:32: warning: (near initialization for > >`disksim_synthio_mod') > >modules/disksim_synthio_param.h:32: warning: excess elements in struct > >initializer > >modules/disksim_synthio_param.h:32: warning: (near initialization for > >`disksim_synthio_mod') > >modules/disksim_synthio_param.h:32: error: syntax error before > >"disksim_synthio_loadparams" > >modules/disksim_synthio_param.h:32: warning: excess elements in struct > >initializer > >modules/disksim_synthio_param.h:32: warning: (near initialization for > >`disksim_synthio_mod') > >modules/disksim_synthio_param.h:32: warning: excess elements in struct > >initializer > >modules/disksim_synthio_param.h:32: warning: (near initialization for > >`disksim_synthio_mod') > >disksim.c: In function `addtointq': > >disksim.c:286: warning: passing arg 4 of `ddbg_assert_msg' discards > >qualifiers from pointer target type > >disksim.c:286: warning: passing arg 4 of `ddbg_assert_fail' discards > >qualifiers from pointer target type > >disksim.c:296: warning: passing arg 4 of `ddbg_assert_msg' discards > >qualifiers from pointer target type > >disksim.c:296: warning: passing arg 4 of `ddbg_assert_fail' discards > >qualifiers from pointer target type > >disksim.c: At top level: > >disksim.c:489: warning: "struct lp_block" declared inside parameter list > >disksim.c:490: error: conflicting types for 'disksim_global_loadparams' > >modules/disksim_global_param.h:8: error: previous declaration of > >'disksim_global_loadparams' was here > >disksim.c:490: error: conflicting types for 'disksim_global_loadparams' > >modules/disksim_global_param.h:8: error: previous declaration of > >'disksim_global_loadparams' was here > >In file included from disksim.c:492: > >modules/disksim_global_param.c: In function `disksim_global_loadparams': > >modules/disksim_global_param.c:8: warning: implicit declaration of > >function `BITVECTOR' > >modules/disksim_global_param.c:8: error: `paramvec' undeclared (first > >use in this function) > >modules/disksim_global_param.c:8: error: (Each undeclared identifier > >is reported only once > >modules/disksim_global_param.c:8: error: for each function it appears in.) > >modules/disksim_global_param.c:9: warning: implicit declaration of > >function `bit_zero' > >modules/disksim_global_param.c:11: error: dereferencing pointer to > >incomplete type > >modules/disksim_global_param.c:20: error: dereferencing pointer to > >incomplete type > >modules/disksim_global_param.c:25: warning: implicit declaration of > >function `lp_param_name' > >modules/disksim_global_param.c:25: warning: implicit declaration of > >function `lp_mod_name' > >modules/disksim_global_param.c:25: error: dereferencing pointer to > >incomplete type > >modules/disksim_global_param.c:28: warning: implicit declaration of > >function `BIT_TEST' > >modules/disksim_global_param.c:34: error: dereferencing pointer to > >incomplete type > >modules/disksim_global_param.c:38: error: dereferencing pointer to > >incomplete type > >modules/disksim_global_param.c:45: warning: implicit declaration of > >function `PTYPE' > >modules/disksim_global_param.c:45: error: dereferencing pointer to > >incomplete type > >modules/disksim_global_param.c:48: warning: implicit declaration of > >function `IVAL' > >modules/disksim_global_param.c:48: error: dereferencing pointer to > >incomplete type > >modules/disksim_global_param.c:51: warning: implicit declaration of > >function `DVAL' > >modules/disksim_global_param.c:51: error: dereferencing pointer to > >incomplete type > >modules/disksim_global_param.c:54: warning: implicit declaration of > >function `SVAL' > >modules/disksim_global_param.c:54: error: dereferencing pointer to > >incomplete type > >modules/disksim_global_param.c:54: warning: assignment makes pointer > >from integer without a cast > >modules/disksim_global_param.c:57: warning: implicit declaration of > >function `LVAL' > >modules/disksim_global_param.c:57: error: dereferencing pointer to > >incomplete type > >modules/disksim_global_param.c:57: warning: assignment makes pointer > >from integer without a cast > >modules/disksim_global_param.c:60: warning: implicit declaration of > >function `BVAL' > >modules/disksim_global_param.c:60: error: dereferencing pointer to > >incomplete type > >modules/disksim_global_param.c:60: warning: assignment makes pointer > >from integer without a cast > >modules/disksim_global_param.c:75: warning: implicit declaration of > >function `RANGE' > >modules/disksim_global_param.c:77: warning: implicit declaration of > >function `BADVALMSG' > >modules/disksim_global_param.c:77: error: dereferencing pointer to > >incomplete type > >modules/disksim_global_param.c:98: error: dereferencing pointer to > >incomplete type > >modules/disksim_global_param.c:111: error: dereferencing pointer to > >incomplete type > >modules/disksim_global_param.c:126: error: dereferencing pointer to > >incomplete type > >modules/disksim_global_param.c:138: warning: passing arg 4 of > >`ddbg_assert_msg' discards qualifiers from pointer target type > >modules/disksim_global_param.c:138: warning: passing arg 4 of > >`ddbg_assert_fail' discards qualifiers from pointer target type > >modules/disksim_global_param.c:145: error: dereferencing pointer to > >incomplete type > >modules/disksim_global_param.c:158: warning: implicit declaration of > >function `BIT_SET' > >modules/disksim_global_param.c:168: error: invalid use of undefined > >type `struct lp_varspec' > >modules/disksim_global_param.c:170: error: missing terminating " character > >modules/disksim_global_param.c:171: error: missing terminating " character > >modules/disksim_global_param.c:172: error: `name' undeclared (first > >use in this function) > >disksim.c: In function `disksim_setup_disksim': > >disksim.c:941: warning: implicit declaration of function > >`iosim_initialize_iosim_info' > >disksim.c: At top level: > >modules/disksim_bus_param.h:32: error: storage size of > >`disksim_bus_mod' isn't known > >modules/disksim_bus_stats_param.h:24: error: storage size of > >`disksim_bus_stats_mod' isn't known > >modules/disksim_cachedev_param.h:36: error: storage size of > >`disksim_cachedev_mod' isn't known > >modules/disksim_cachemem_param.h:56: error: storage size of > >`disksim_cachemem_mod' isn't known > >modules/disksim_ctlr_param.h:36: error: storage size of > >`disksim_ctlr_mod' isn't known > >modules/disksim_ctlr_stats_param.h:44: error: storage size of > >`disksim_ctlr_stats_mod' isn't known > >modules/disksim_device_param.h:17: error: storage size of > >`disksim_device_mod' isn't known > >modules/disksim_device_stats_param.h:42: error: storage size of > >`disksim_device_stats_mod' isn't known > >modules/disksim_disk_param.h:150: error: storage size of > >`disksim_disk_mod' isn't known > >modules/disksim_global_param.h:36: error: storage size of > >`disksim_global_mod' isn't known > >modules/disksim_iodriver_param.h:28: error: storage size of > >`disksim_iodriver_mod' isn't known > >modules/disksim_iodriver_stats_param.h:42: error: storage size of > >`disksim_iodriver_stats_mod' isn't known > >modules/disksim_iomap_param.h:30: error: storage size of > >`disksim_iomap_mod' isn't known > >modules/disksim_ioqueue_param.h:46: error: storage size of > >`disksim_ioqueue_mod' isn't known > >modules/disksim_iosim_param.h:24: error: storage size of > >`disksim_iosim_mod' isn't known > >modules/disksim_logorg_param.h:52: error: storage size of > >`disksim_logorg_mod' isn't known > >modules/disksim_pf_param.h:24: error: storage size of `disksim_pf_mod' > >isn't known > >modules/disksim_pf_stats_param.h:28: error: storage size of > >`disksim_pf_stats_mod' isn't known > >modules/disksim_simpledisk_param.h:40: error: storage size of > >`disksim_simpledisk_mod' isn't known > >modules/disksim_stats_param.h:30: error: storage size of > >`disksim_stats_mod' isn't known > >modules/disksim_syncset_param.h:24: error: storage size of > >`disksim_syncset_mod' isn't known > >modules/disksim_synthgen_param.h:48: error: storage size of > >`disksim_synthgen_mod' isn't known > >modules/disksim_synthio_param.h:32: error: storage size of > >`disksim_synthio_mod' isn't known > >make[1]: *** [disksim.o] Error 1 > >make[1]: Leaving directory `/home/dgupta/projects/diecast/disksim-3.0/src' > >make: *** [all] Error 2 > > > >I _do_ have flex and bison installed. Am I missing something obvious here? > > > >Thanks, > >Diwaker > >-- > >http://floatingsun.net/ > >_______________________________________________ > >Disksim-users mailing list > >Disksim-users at ece.cmu.edu > >https://sos.ece.cmu.edu/mailman/listinfo/disksim-users > > = = = = = = = = = = = = = = = = = = = = > > > > -------------- next part -------------- A non-text attachment was scrubbed... Name: fix.patch Type: text/x-patch Size: 2363 bytes Desc: not available URL: From maobo1983 at 163.com Tue Aug 28 09:12:40 2007 From: maobo1983 at 163.com (hust_mb) Date: Tue, 28 Aug 2007 21:12:40 +0800 Subject: [Disksim-users] Problem when I use the Synthetic Workloads Message-ID: <200708282112324531465@163.com> Hi, I am trying to use the disksim as following: #./disksim cheetah9LP.parm File_out validate cheetah9LP.trace 1 The last parameter "1" indicate that I using the synthetic workload which has been configured in the cheetah9LP.parm. But after I run then it aborted as following: #./disksim cheetah9LP.parm File_out validate cheetah9LP.trace 1 Assertion failed: simtime = 55.871283 totalreqs =12 disksim: disksim_pfsim.c:290: pf_io_done_notify: Assertion 'tmp->next != ((void *)0)' failed Aborted I also checked the line 290 in the disksim_pfsim.c. But I don't know why. Can someone tell me. And tell me how to use the synthetic workload. An example should appreciate. Thank you! BTW: Following Code, if (disk_printhack && (simtime >= disk_printhacktime)) { fprintf (outputfile, "%12.6f Entering disk_buffer_reusable_segment_check\n",simtime); fflush(outputfile); } Where can I see the output file? It's not in the "File_out" file as what I do above. -------------- hust_mb 2007-08-28 From maobo1983 at 163.com Wed Aug 29 08:40:41 2007 From: maobo1983 at 163.com (hust_mb) Date: Wed, 29 Aug 2007 20:40:41 +0800 Subject: [Disksim-users] Re: Disksim-users Digest, Vol 23, Issue 15 References: <20070828160007.02D728A89@sos.ece.cmu.edu> Message-ID: <200708292040355465042@163.com> Hi, All I am really confused with the synthetic workload generator. Can some one tell me how to use it? Following is my command but failed. #./disksim cheetah9LP.parm File_out validate cheetah9LP.trace 1 Thank you very much! ------------------ hust_mb 2007-08-29 ------------------------------------------------------------- ????disksim-users-request ?????2007-08-28 23:59:57 ????disksim-users at ece.cmu.edu ??? ???Disksim-users Digest, Vol 23, Issue 15 Send Disksim-users mailing list submissions to disksim-users at ece.cmu.edu To subscribe or unsubscribe via the World Wide Web, visit https://sos.ece.cmu.edu/mailman/listinfo/disksim-users or, via email, send a message with subject or body 'help' to disksim-users-request at ece.cmu.edu You can reach the person managing the list at disksim-users-owner at ece.cmu.edu When replying, please edit your Subject line so it is more specific than "Re: Contents of Disksim-users digest..." Today's Topics: 1. Problem when I use the Synthetic Workloads (hust_mb) ---------------------------------------------------------------------- Message: 1 Date: Tue, 28 Aug 2007 21:12:40 +0800 From: "hust_mb" Subject: [Disksim-users] Problem when I use the Synthetic Workloads To: "disksim-users" Message-ID: <200708282112324531465 at 163.com> Content-Type: text/plain; charset="gb2312" Hi, I am trying to use the disksim as following: #./disksim cheetah9LP.parm File_out validate cheetah9LP.trace 1 The last parameter "1" indicate that I using the synthetic workload which has been configured in the cheetah9LP.parm. But after I run then it aborted as following: #./disksim cheetah9LP.parm File_out validate cheetah9LP.trace 1 Assertion failed: simtime = 55.871283 totalreqs =12 disksim: disksim_pfsim.c:290: pf_io_done_notify: Assertion 'tmp->next != ((void *)0)' failed Aborted I also checked the line 290 in the disksim_pfsim.c. But I don't know why. Can someone tell me. And tell me how to use the synthetic workload. An example should appreciate. Thank you! BTW: Following Code, if (disk_printhack && (simtime >= disk_printhacktime)) { fprintf (outputfile, "%12.6f Entering disk_buffer_reusable_segment_check\n",simtime); fflush(outputfile); } Where can I see the output file? It's not in the "File_out" file as what I do above. -------------- hust_mb 2007-08-28 ------------------------------ _______________________________________________ Disksim-users mailing list Disksim-users at ece.cmu.edu https://sos.ece.cmu.edu/mailman/listinfo/disksim-users End of Disksim-users Digest, Vol 23, Issue 15 ********************************************* . From maobo1983 at 163.com Wed Aug 29 09:28:01 2007 From: maobo1983 at 163.com (hust_mb) Date: Wed, 29 Aug 2007 21:28:01 +0800 Subject: [Disksim-users] Re: Disksim-users Digest, Vol 23, Issue 15 References: <20070828160007.02D728A89@sos.ece.cmu.edu> Message-ID: <200708292127567501912@163.com> Hi, Well I have choose to command as: ./disksim cheetah9LP.parv file raw hp_c2247a.trace 2 Problem didn't appear. Really I don't know why although there is no problem anymore? But one thing I am surprised is that when I set the "Number of buffer segments" larger, there is no increasing in the "disk Buffer hit ratio". I think is the cache manage problem in the diskcache. Does the real diskcache do as that in disksim? Thank you! ------------------ hust_mb 2007-08-29 ------------------------------------------------------------- ????disksim-users-request ?????2007-08-28 23:59:57 ????disksim-users at ece.cmu.edu ??? ???Disksim-users Digest, Vol 23, Issue 15 Send Disksim-users mailing list submissions to disksim-users at ece.cmu.edu To subscribe or unsubscribe via the World Wide Web, visit https://sos.ece.cmu.edu/mailman/listinfo/disksim-users or, via email, send a message with subject or body 'help' to disksim-users-request at ece.cmu.edu You can reach the person managing the list at disksim-users-owner at ece.cmu.edu When replying, please edit your Subject line so it is more specific than "Re: Contents of Disksim-users digest..." Today's Topics: 1. Problem when I use the Synthetic Workloads (hust_mb) ---------------------------------------------------------------------- Message: 1 Date: Tue, 28 Aug 2007 21:12:40 +0800 From: "hust_mb" Subject: [Disksim-users] Problem when I use the Synthetic Workloads To: "disksim-users" Message-ID: <200708282112324531465 at 163.com> Content-Type: text/plain; charset="gb2312" Hi, I am trying to use the disksim as following: #./disksim cheetah9LP.parm File_out validate cheetah9LP.trace 1 The last parameter "1" indicate that I using the synthetic workload which has been configured in the cheetah9LP.parm. But after I run then it aborted as following: #./disksim cheetah9LP.parm File_out validate cheetah9LP.trace 1 Assertion failed: simtime = 55.871283 totalreqs =12 disksim: disksim_pfsim.c:290: pf_io_done_notify: Assertion 'tmp->next != ((void *)0)' failed Aborted I also checked the line 290 in the disksim_pfsim.c. But I don't know why. Can someone tell me. And tell me how to use the synthetic workload. An example should appreciate. Thank you! BTW: Following Code, if (disk_printhack && (simtime >= disk_printhacktime)) { fprintf (outputfile, "%12.6f Entering disk_buffer_reusable_segment_check\n",simtime); fflush(outputfile); } Where can I see the output file? It's not in the "File_out" file as what I do above. -------------- hust_mb 2007-08-28 ------------------------------ _______________________________________________ Disksim-users mailing list Disksim-users at ece.cmu.edu https://sos.ece.cmu.edu/mailman/listinfo/disksim-users End of Disksim-users Digest, Vol 23, Issue 15 ********************************************* . From ll2 at rice.edu Wed Aug 29 12:19:09 2007 From: ll2 at rice.edu (ll2 at rice.edu) Date: Wed, 29 Aug 2007 11:19:09 -0500 Subject: [Disksim-users] Re: Disksim-users Digest, Vol 23, Issue 16(Lanyue Lu) In-Reply-To: <20070829160009.F35908A8F@sos.ece.cmu.edu> References: <20070829160009.F35908A8F@sos.ece.cmu.edu> Message-ID: <1188404349.46d59c7dab393@webmail.mail.rice.edu> Hi, Just need to change the trace format from validate to ascii. #./disksim cheetah9LP.parm cheetah9LP.outv ascii cheetah9LP.trace 1 File_out is just the name of your output file, can be any file you want. The example above is : cheetah9LP.outv. This can work. Lanyue Lu Rice University Quoting disksim-users-request at ece.cmu.edu: > Send Disksim-users mailing list submissions to > disksim-users at ece.cmu.edu > > To subscribe or unsubscribe via the World Wide Web, visit > https://sos.ece.cmu.edu/mailman/listinfo/disksim-users > or, via email, send a message with subject or body 'help' to > disksim-users-request at ece.cmu.edu > > You can reach the person managing the list at > disksim-users-owner at ece.cmu.edu > > When replying, please edit your Subject line so it is more specific > than "Re: Contents of Disksim-users digest..." > > > Today's Topics: > > 1. Re: Disksim-users Digest, Vol 23, Issue 15 (hust_mb) > 2. Re: Disksim-users Digest, Vol 23, Issue 15 (hust_mb) > > > ---------------------------------------------------------------------- > > Message: 1 > Date: Wed, 29 Aug 2007 20:40:41 +0800 > From: "hust_mb" > Subject: [Disksim-users] Re: Disksim-users Digest, Vol 23, Issue 15 > To: "disksim-users at ece.cmu.edu" > Message-ID: <200708292040355465042 at 163.com> > Content-Type: text/plain; charset="gb2312" > > Hi, All > > I am really confused with the synthetic workload generator. > Can some one tell me how to use it? > > Following is my command but failed. > #./disksim cheetah9LP.parm File_out validate cheetah9LP.trace 1 > > Thank you very much! > ------------------ > hust_mb > 2007-08-29 > > ------------------------------------------------------------- > ????????disksim-users-request > ??????????2007-08-28 23:59:57 > ????????disksim-users at ece.cmu.edu > ?????? > ??????Disksim-users Digest, Vol 23, Issue 15 > > Send Disksim-users mailing list submissions to > disksim-users at ece.cmu.edu > > To subscribe or unsubscribe via the World Wide Web, visit > https://sos.ece.cmu.edu/mailman/listinfo/disksim-users > or, via email, send a message with subject or body 'help' to > disksim-users-request at ece.cmu.edu > > You can reach the person managing the list at > disksim-users-owner at ece.cmu.edu > > When replying, please edit your Subject line so it is more specific > than "Re: Contents of Disksim-users digest..." > > > Today's Topics: > > 1. Problem when I use the Synthetic Workloads (hust_mb) > > > ---------------------------------------------------------------------- > > Message: 1 > Date: Tue, 28 Aug 2007 21:12:40 +0800 > From: "hust_mb" > Subject: [Disksim-users] Problem when I use the Synthetic Workloads > To: "disksim-users" > Message-ID: <200708282112324531465 at 163.com> > Content-Type: text/plain; charset="gb2312" > > Hi, > > I am trying to use the disksim as following: > > #./disksim cheetah9LP.parm File_out validate cheetah9LP.trace 1 > > The last parameter "1" indicate that I using the synthetic workload which has > been configured in the cheetah9LP.parm. > But after I run then it aborted as following: > > #./disksim cheetah9LP.parm File_out validate cheetah9LP.trace 1 > > Assertion failed: > simtime = 55.871283 > totalreqs =12 > disksim: disksim_pfsim.c:290: pf_io_done_notify: Assertion 'tmp->next != > ((void *)0)' failed > Aborted > > I also checked the line 290 in the disksim_pfsim.c. But I don't know why. > Can someone tell me. And tell me how to use the synthetic workload. An > example should appreciate. Thank you! > > BTW: Following Code, > > if (disk_printhack && (simtime >= disk_printhacktime)) { > fprintf (outputfile, "%12.6f Entering > disk_buffer_reusable_segment_check\n",simtime); > fflush(outputfile); > } > > Where can I see the output file? It's not in the "File_out" file as what I > do above. > > -------------- > hust_mb > 2007-08-28 > > > > > ------------------------------ > > _______________________________________________ > Disksim-users mailing list > Disksim-users at ece.cmu.edu > https://sos.ece.cmu.edu/mailman/listinfo/disksim-users > > > End of Disksim-users Digest, Vol 23, Issue 15 > ********************************************* > . > > ------------------------------ > > Message: 2 > Date: Wed, 29 Aug 2007 21:28:01 +0800 > From: "hust_mb" > Subject: [Disksim-users] Re: Disksim-users Digest, Vol 23, Issue 15 > To: "disksim-users at ece.cmu.edu" > Cc: bucy > Message-ID: <200708292127567501912 at 163.com> > Content-Type: text/plain; charset="gb2312" > > Hi, > Well I have choose to command as: > ./disksim cheetah9LP.parv file raw hp_c2247a.trace 2 > Problem didn't appear. > Really I don't know why although there is no problem anymore? > > But one thing I am surprised is that when I set the "Number of buffer > segments" larger, there is no increasing in the "disk Buffer hit ratio". I > think is the cache manage problem in the diskcache. > > Does the real diskcache do as that in disksim? > > Thank you! > ------------------ > hust_mb > 2007-08-29 > > ------------------------------------------------------------- > ????????disksim-users-request > ??????????2007-08-28 23:59:57 > ????????disksim-users at ece.cmu.edu > ?????? > ??????Disksim-users Digest, Vol 23, Issue 15 > > Send Disksim-users mailing list submissions to > disksim-users at ece.cmu.edu > > To subscribe or unsubscribe via the World Wide Web, visit > https://sos.ece.cmu.edu/mailman/listinfo/disksim-users > or, via email, send a message with subject or body 'help' to > disksim-users-request at ece.cmu.edu > > You can reach the person managing the list at > disksim-users-owner at ece.cmu.edu > > When replying, please edit your Subject line so it is more specific > than "Re: Contents of Disksim-users digest..." > > > Today's Topics: > > 1. Problem when I use the Synthetic Workloads (hust_mb) > > > ---------------------------------------------------------------------- > > Message: 1 > Date: Tue, 28 Aug 2007 21:12:40 +0800 > From: "hust_mb" > Subject: [Disksim-users] Problem when I use the Synthetic Workloads > To: "disksim-users" > Message-ID: <200708282112324531465 at 163.com> > Content-Type: text/plain; charset="gb2312" > > Hi, > > I am trying to use the disksim as following: > > #./disksim cheetah9LP.parm File_out validate cheetah9LP.trace 1 > > The last parameter "1" indicate that I using the synthetic workload which has > been configured in the cheetah9LP.parm. > But after I run then it aborted as following: > > #./disksim cheetah9LP.parm File_out validate cheetah9LP.trace 1 > > Assertion failed: > simtime = 55.871283 > totalreqs =12 > disksim: disksim_pfsim.c:290: pf_io_done_notify: Assertion 'tmp->next != > ((void *)0)' failed > Aborted > > I also checked the line 290 in the disksim_pfsim.c. But I don't know why. > Can someone tell me. And tell me how to use the synthetic workload. An > example should appreciate. Thank you! > > BTW: Following Code, > > if (disk_printhack && (simtime >= disk_printhacktime)) { > fprintf (outputfile, "%12.6f Entering > disk_buffer_reusable_segment_check\n",simtime); > fflush(outputfile); > } > > Where can I see the output file? It's not in the "File_out" file as what I > do above. > > -------------- > hust_mb > 2007-08-28 > > > > > ------------------------------ > > _______________________________________________ > Disksim-users mailing list > Disksim-users at ece.cmu.edu > https://sos.ece.cmu.edu/mailman/listinfo/disksim-users > > > End of Disksim-users Digest, Vol 23, Issue 15 > ********************************************* > . > > ------------------------------ > > _______________________________________________ > Disksim-users mailing list > Disksim-users at ece.cmu.edu > https://sos.ece.cmu.edu/mailman/listinfo/disksim-users > > > End of Disksim-users Digest, Vol 23, Issue 16 > ********************************************* > > From maobo1983 at 163.com Thu Aug 30 12:12:04 2007 From: maobo1983 at 163.com (hust_mb_163mail) Date: Fri, 31 Aug 2007 00:12:04 +0800 Subject: [Disksim-users] Re: Disksim-users Digest, Vol 23, Issue 17 References: <20070830160008.C01C38A47@sos.ece.cmu.edu> Message-ID: <200708310012026593481@163.com> Hi, Thank you very much. Yes, it does work. I try that with raw format and success. But the outputfile is not including the message what I want. > if (disk_printhack && (simtime >= disk_printhacktime)) { > fprintf (outputfile, "%12.6f Entering > disk_buffer_reusable_segment_check\n",simtime); > fflush(outputfile); For example the message of "*** Entering disk_buffer_reusable_segment_check " is not included in the outputfile. But it is the trace message in the source code which I want to track these message. Thank you all the same! hust_mb 2007-08-31 Hi, Just need to change the trace format from validate to ascii. #./disksim cheetah9LP.parm cheetah9LP.outv ascii cheetah9LP.trace 1 File_out is just the name of your output file, can be any file you want. The example above is : cheetah9LP.outv. This can work. Lanyue Lu Rice University -------------- next part -------------- An HTML attachment was scrubbed... URL: From hayashemtov at yahoo.com Thu Aug 30 16:04:35 2007 From: hayashemtov at yahoo.com (haya shem tov) Date: Thu, 30 Aug 2007 13:04:35 -0700 (PDT) Subject: [Disksim-users] DiskSim on a 64bit PC Message-ID: <250655.52029.qm@web90515.mail.mud.yahoo.com> Hi All, are there any known issues compiling DiskSim on a 64bit PC? should there be any problem at all? I will be glad to hear if anybody compiled DiskSim on his 64bit PC, and in detail, ubuntu 64bit. Thanks, Haya Shemtov --------------------------------- Be a better Globetrotter. Get better travel answers from someone who knows. Yahoo! Answers - Check it out. -------------- next part -------------- An HTML attachment was scrubbed... URL: