From dcjy at mail.ustc.edu.cn Sat Mar 3 21:43:59 2012 From: dcjy at mail.ustc.edu.cn (=?GBK?B?tPqzyb+h?=) Date: Sun, 4 Mar 2012 10:43:59 +0800 (CST) Subject: [Disksim-users] some questions about using disksim4.0 Message-ID: <5641023.504591330829039210.JavaMail.coremail@mailweb> Dear Sir(Miss): I am using disksim(V4.0). My work is to use disksim to simulate one disk(SEAGATE_ST32171W) subsystem. The system topology is just like this: # system topology topology disksim_iodriver driver0 [ disksim_bus bus0 [ disksim_ctlr ctlr0 [ disksim_bus bus1 [ disksim_disk disk0 [] ] # end of bus1 ] # end of ctlr0 ] # end of bus0 ] # end of system topology My input is a a series of requests(Request arrival time,Device number,Block number,Request size,Request flags) in a ascii file. The output I want to get is the response time per request and the situation of per request hit cache, but the disksim only output the statistic information of all requests. so I want to consult some questions 1,What should I do to get the response time and hitting situation of per request? 2,The default input format is a simple ASCII stream (or file),which is the unit of "Request arrival time" and "Request size",Seconds milliseconds or microseconds? KB or block? 3,The ascii.trace in the valid folder has 100000 requests, but when I run disksim ascii.parv stdout ascii ascii.trace 0, there was only 99993 requests were handled(I have modified the system topology and iomap),Why lost seven request? Sorry for the my poor english,thank you. Best wishs. ChengJun Dai. 2012-3-4 From ykwok2 at miners.utep.edu Sun Mar 4 00:23:15 2012 From: ykwok2 at miners.utep.edu (Yipkei Kwok) Date: Sat, 3 Mar 2012 22:23:15 -0700 Subject: [Disksim-users] some questions about using disksim4.0 In-Reply-To: <5641023.504591330829039210.JavaMail.coremail@mailweb> References: <5641023.504591330829039210.JavaMail.coremail@mailweb> Message-ID: > 1,What should I do to get the response time and hitting situation of per request? I obtained the response time by modifying the source code. When a request is serviced, disk_acctimestats() is called. I got the response time by subtracting the current timestamp (i.e. disksim->simtime) by the arrival time of the request. You may need to modify Disksim to carry the arrival time from the I/O driver down to the disk "hitting situation"? Do you mean the cache hit/miss? > 2,The default input format is a simple ASCII stream (or file),which is the unit of "Request arrival time" and > "Request size",Seconds milliseconds or microseconds? KB or block? ms request size is in blocks of 512B/block > 3,The ascii.trace in the valid folder has 100000 requests, but when I run disksim ascii.parv stdout ascii ascii.trace 0, > there was only 99993 requests were handled(I have modified the system topology and iomap),Why lost seven request? as I remember from Disksim 3.0, when the trace runs out, disksim->stop_sim is set to TRUE to stop the simulation, which is before all requests are serviced. I believe that's the reason. Good luck On Sat, Mar 3, 2012 at 7:43 PM, ??? wrote: > > Dear Sir(Miss): > ? ? I am using disksim(V4.0). My work is to use disksim to simulate one disk(SEAGATE_ST32171W) subsystem. > The system topology is just like this: > > # system topology > topology disksim_iodriver driver0 [ > ? disksim_bus bus0 [ > ? ? ?disksim_ctlr ctlr0 [ > ? ? ? ? disksim_bus bus1 [ > ? ? ? ? ? ?disksim_disk disk0 [] > ? ? ? ? ] # end of bus1 > ? ? ?] # end of ctlr0 > ? ] # end of bus0 > ] # end of system topology > > My input is a a series of requests(Request arrival time,Device number,Block number,Request size,Request flags) > in a ascii file. The output I want to get is the response time per request and the situation of per request > hit cache, but the disksim only output the statistic information of all requests. so I want to consult some questions > > 1,What should I do to get the response time and hitting situation of per request? > > 2,The default input format is a simple ASCII stream (or file),which is the unit of "Request arrival time" and > "Request size",Seconds milliseconds or microseconds? KB or block? > > 3,The ascii.trace in the valid folder has 100000 requests, but when I run disksim ascii.parv stdout ascii ascii.trace 0, > there was only 99993 requests were handled(I have modified the system topology and iomap),Why lost seven request? > > Sorry for the my poor english,thank you. > > Best wishs. > > ChengJun Dai. > 2012-3-4 > _______________________________________________ > Disksim-users mailing list > Disksim-users at ece.cmu.edu > https://sos.ece.cmu.edu/mailman/listinfo/disksim-users > -- ******************************************** Yipkei Kwok Ph.D. Student Research Assistant HiPerSys Lab Department of Computer Science The University of Texas at El Paso Phone: 915 747 6433 (O) E-mail: ykwok2 at miners dot utep dot edu ******************************************** From dcjy at mail.ustc.edu.cn Sun Mar 4 08:31:23 2012 From: dcjy at mail.ustc.edu.cn (=?UTF-8?B?5Luj5oiQ5L+K?=) Date: Sun, 4 Mar 2012 21:31:23 +0800 (CST) Subject: [Disksim-users] some questions about using disksim4.0 Message-ID: <3355625.541271330867883901.JavaMail.coremail@mailweb> Thanks for your reply and wonderful explanation. > > 1,What should I do to get the response time and hitting situation of per request? > I obtained the response time by modifying the source code. When a > request is serviced, disk_acctimestats() is called. I got the response > time by subtracting the current timestamp (i.e. disksim->simtime) by > the arrival time of the request. You may need to modify Disksim to > carry the arrival time from the I/O driver down to the disk > > "hitting situation"? Do you mean the cache hit/miss? I have tried it as your said steps, but failed. disk_acctimestats() is only called 88733 times(100000 Requests total), and it only have access time, where could I get the current timestamp? what does the meaning of "You may need to modify Disksim to carry the arrival time from the I/O driver down to the disk"? The arrival time should be the time arrival disk? Overall I/O System Total Requests handled: 99997 Overall I/O System Requests per second: 65.231783 Overall I/O System Completely idle time: 534035.035583 0.348371 Overall I/O System Response time average: 33.897219 Overall I/O System Response time std.dev.: 34.852530 Overall I/O System Response time maximum: 335.193345 This is part of output result of my experiment,In my opinion, the "Response time" here shoud be a time range from request arriving subsystem to Service completion, is is right? How can I get this response time for per request? Could you sent me a copy of the disksim version(or source files) which had been modified exactly to output the respnse time for per request? Thank you very much. Yes, I mean cache hit/miss. > > 3,The ascii.trace in the valid folder has 100000 requests, but when I run disksim ascii.parv stdout ascii ascii.trace 0, > > there was only 99993 requests were handled(I have modified the system topology and iomap),Why lost seven request? > as I remember from Disksim 3.0, when the trace runs out, > disksim->stop_sim is set to TRUE to stop the simulation, which is > before all requests are serviced. I believe that's the reason. I see, but what was the reason for the trace runs out? How can I avoid this? Best wishs. ChengJun Dai. 2012-3-4 > > On Sat, Mar 3, 2012 at 7:43 PM, ??? wrote: > > > > Dear Sir(Miss): > > ? ? I am using disksim(V4.0). My work is to use disksim to simulate one disk(SEAGATE_ST32171W) subsystem. > > The system topology is just like this: > > > > # system topology > > topology disksim_iodriver driver0 [ > > ? disksim_bus bus0 [ > > ? ? ?disksim_ctlr ctlr0 [ > > ? ? ? ? disksim_bus bus1 [ > > ? ? ? ? ? ?disksim_disk disk0 [] > > ? ? ? ? ] # end of bus1 > > ? ? ?] # end of ctlr0 > > ? ] # end of bus0 > > ] # end of system topology > > > > My input is a a series of requests(Request arrival time,Device number,Block number,Request size,Request flags) > > in a ascii file. The output I want to get is the response time per request and the situation of per request > > hit cache, but the disksim only output the statistic information of all requests. so I want to consult some questions > > > > 1,What should I do to get the response time and hitting situation of per request? > > > > 2,The default input format is a simple ASCII stream (or file),which is the unit of "Request arrival time" and > > "Request size",Seconds milliseconds or microseconds? KB or block? > > > > 3,The ascii.trace in the valid folder has 100000 requests, but when I run disksim ascii.parv stdout ascii ascii.trace 0, > > there was only 99993 requests were handled(I have modified the system topology and iomap),Why lost seven request? > > > > Sorry for the my poor english,thank you. > > > > Best wishs. > > > > ChengJun Dai. > > 2012-3-4 > > _______________________________________________ > > Disksim-users mailing list > > Disksim-users at ece.cmu.edu > > https://sos.ece.cmu.edu/mailman/listinfo/disksim-users > > > > > > -- > ******************************************** > Yipkei Kwok > Ph.D. Student > Research Assistant > HiPerSys Lab > Department of Computer Science > The University of Texas at El Paso > Phone: 915 747 6433 (O) > E-mail: ykwok2 at miners dot utep dot edu > ******************************************** > From vahldiek at mpi-sws.org Sun Mar 4 08:43:57 2012 From: vahldiek at mpi-sws.org (Anjo Vahldiek) Date: Sun, 04 Mar 2012 14:43:57 +0100 Subject: [Disksim-users] some questions about using disksim4.0 In-Reply-To: <3355625.541271330867883901.JavaMail.coremail@mailweb> References: <3355625.541271330867883901.JavaMail.coremail@mailweb> Message-ID: <4F53719D.4060406@mpi-sws.org> Hi, I can only help you with the first issue. Please have a look at the .parv file you are using. disksim_global Global { Init Seed = 42, Real Seed = 42, Stat definition file = statdefs Detailed execution trace = exectrace } The last option generates the information you want to know about how long every request took on a per request basis. It writes it into the file you provide as an argument. It does not include whether or not an access was cached, but you can tell from the time it took to process the request. If a request has 0 response time it is very likely that it was cached. Anjo On 03/04/2012 02:31 PM, ??? wrote: > > > > Thanks for your reply and wonderful explanation. > >>> 1,What should I do to get the response time and hitting situation of per request? >> I obtained the response time by modifying the source code. When a >> request is serviced, disk_acctimestats() is called. I got the response >> time by subtracting the current timestamp (i.e. disksim->simtime) by >> the arrival time of the request. You may need to modify Disksim to >> carry the arrival time from the I/O driver down to the disk >> >> "hitting situation"? Do you mean the cache hit/miss? > I have tried it as your said steps, but failed. disk_acctimestats() is only > called 88733 times(100000 Requests total), and it only have access time, > where could I get the current timestamp? what does the meaning of "You > may need to modify Disksim to carry the arrival time from the I/O > driver down to the disk"? The arrival time should be the time arrival disk? > > Overall I/O System Total Requests handled: 99997 > Overall I/O System Requests per second: 65.231783 > Overall I/O System Completely idle time: 534035.035583 0.348371 > Overall I/O System Response time average: 33.897219 > Overall I/O System Response time std.dev.: 34.852530 > Overall I/O System Response time maximum: 335.193345 > > This is part of output result of my experiment,In my opinion, the > "Response time" here shoud be a time range from request arriving > subsystem to Service completion, is is right? How can I get this > response time for per request? > > Could you sent me a copy of the disksim version(or source files) > which had been modified exactly to output the respnse time > for per request? Thank you very much. > > Yes, I mean cache hit/miss. > > >>> 3,The ascii.trace in the valid folder has 100000 requests, but when I run disksim ascii.parv stdout ascii ascii.trace 0, >>> there was only 99993 requests were handled(I have modified the system topology and iomap),Why lost seven request? >> as I remember from Disksim 3.0, when the trace runs out, >> disksim->stop_sim is set to TRUE to stop the simulation, which is >> before all requests are serviced. I believe that's the reason. > I see, but what was the reason for the trace runs out? How can I avoid > this? > > Best wishs. > > ChengJun Dai. > 2012-3-4 > > >> On Sat, Mar 3, 2012 at 7:43 PM, ??? wrote: >>> Dear Sir(Miss): >>> I am using disksim(V4.0). My work is to use disksim to simulate one disk(SEAGATE_ST32171W) subsystem. >>> The system topology is just like this: >>> >>> # system topology >>> topology disksim_iodriver driver0 [ >>> disksim_bus bus0 [ >>> disksim_ctlr ctlr0 [ >>> disksim_bus bus1 [ >>> disksim_disk disk0 [] >>> ] # end of bus1 >>> ] # end of ctlr0 >>> ] # end of bus0 >>> ] # end of system topology >>> >>> My input is a a series of requests(Request arrival time,Device number,Block number,Request size,Request flags) >>> in a ascii file. The output I want to get is the response time per request and the situation of per request >>> hit cache, but the disksim only output the statistic information of all requests. so I want to consult some questions >>> >>> 1,What should I do to get the response time and hitting situation of per request? >>> >>> 2,The default input format is a simple ASCII stream (or file),which is the unit of "Request arrival time" and >>> "Request size",Seconds milliseconds or microseconds? KB or block? >>> >>> 3,The ascii.trace in the valid folder has 100000 requests, but when I run disksim ascii.parv stdout ascii ascii.trace 0, >>> there was only 99993 requests were handled(I have modified the system topology and iomap),Why lost seven request? >>> >>> Sorry for the my poor english,thank you. >>> >>> Best wishs. >>> >>> ChengJun Dai. >>> 2012-3-4 >>> _______________________________________________ >>> Disksim-users mailing list >>> Disksim-users at ece.cmu.edu >>> https://sos.ece.cmu.edu/mailman/listinfo/disksim-users >>> >> >> >> -- >> ******************************************** >> Yipkei Kwok >> Ph.D. Student >> Research Assistant >> HiPerSys Lab >> Department of Computer Science >> The University of Texas at El Paso >> Phone: 915 747 6433 (O) >> E-mail: ykwok2 at miners dot utep dot edu >> ******************************************** >> > _______________________________________________ > Disksim-users mailing list > Disksim-users at ece.cmu.edu > https://sos.ece.cmu.edu/mailman/listinfo/disksim-users From ykwok2 at miners.utep.edu Sun Mar 4 10:05:47 2012 From: ykwok2 at miners.utep.edu (Yipkei Kwok) Date: Sun, 4 Mar 2012 08:05:47 -0700 Subject: [Disksim-users] some questions about using disksim4.0 In-Reply-To: <4F53719D.4060406@mpi-sws.org> References: <3355625.541271330867883901.JavaMail.coremail@mailweb> <4F53719D.4060406@mpi-sws.org> Message-ID: dcjy, I would highly recommend you to try out Anjo's suggestion re: using the "Detailed execution trace" option to obtain per-request response time. My solution requires (pretty) extensive modifications of the source code. I do regret that I did not learn about that option. Thank you very much, Anjo. For Question 3, as I said, it is because Disksim terminates a simulation under some conditions. In my situation, Disksim terminates a simulation when the trace runs out of requests. I did the following to force Disksim to not to terminate till all requests are serviced. In getnextevent(), I commented out the line disksim->stop_sim = TRUE (line 641, as shown below). However, it works for my simulated configurations and I am not sure it will work for yours (I hope so). Good luck! 622 INLINE static event * getnextevent () 623 { 624 event *curr = getfromintq(); 625 event *temp; 626 627 if (curr) { 628 disksim->last_event_time = simtime; 629 630 #ifdef DISKSIM_DEBUG 631 printf("DISKSIM_DEBUG: getnextevent(), last_event_time= %lf\n", 632 disksim->last_event_time); 633 #endif 634 635 simtime = curr->time; 636 637 if (curr->type == NULL_EVENT) { 638 if ((disksim->iotrace) && io_using_external_event(curr)) { 639 if ((temp = io_get_next_external_event(disksim->iotracefile)) == NULL) { 640 #ifndef RUN_UNTIL_REQUESTS_EXHAUSTED 641 disksim->stop_sim = TRUE; 642 #endif 643 disksim->trace_exhausted = 1; 644 645 #ifdef DISKSIM_DEBUG 646 printf("DISKSIM_DEBUG: getnextevent(), trace out of request s, disksim->trace_exhausted= 1\n"); 647 #endif 648 649 printf(""); 650 } On Sun, Mar 4, 2012 at 6:43 AM, Anjo Vahldiek wrote: > Hi, > > I can only help you with the first issue. Please have a look at the .parv > file you are using. > > disksim_global Global { > ?Init Seed = 42, > ?Real Seed = 42, > ?Stat definition file = statdefs > ?Detailed execution trace = exectrace > } > > The last option generates the information you want to know about how long > every request took on a per request basis. It writes it into the file you > provide as an argument. > > It does not include whether or not an access was cached, but you can tell > from the time it took to process the request. If a request has 0 response > time it is very likely that it was cached. > > Anjo > > > On 03/04/2012 02:31 PM, ??? wrote: >> >> >> >> >> Thanks for your reply and wonderful explanation. >> >>>> 1,What should I do to get the response time and hitting situation of per >>>> request? >>> >>> I obtained the response time by modifying the source code. When a >>> request is serviced, disk_acctimestats() is called. I got the response >>> time by subtracting the current timestamp (i.e. disksim->simtime) by >>> the arrival time of the request. You may need to modify Disksim to >>> carry the arrival time from the I/O driver down to the disk >>> >>> "hitting situation"? Do you mean the cache hit/miss? >> >> I have tried it as your said steps, but failed. disk_acctimestats() is >> only >> called 88733 times(100000 Requests total), and it only have access time, >> where could I get the current timestamp? what does the meaning of "You >> may need to modify Disksim to carry the arrival time from the I/O >> driver down to the disk"? The arrival time should be the time arrival >> disk? >> >> Overall I/O System Total Requests handled: ? ?99997 >> Overall I/O System Requests per second: ? ? ? 65.231783 >> Overall I/O System Completely idle time: ? ? ?534035.035583 ? ? ? 0.348371 >> Overall I/O System Response time average: ? ? 33.897219 >> Overall I/O System Response time std.dev.: ? ?34.852530 >> Overall I/O System Response time maximum: ? ?335.193345 >> >> This is part of output result of my experiment,In my opinion, the >> "Response time" here shoud be a time range from request arriving >> subsystem to Service completion, is is right? How can I get this >> response time for per request? >> >> Could you sent me a copy of the disksim version(or source files) >> which had been modified exactly to output the respnse time >> for per request? Thank you very much. >> >> Yes, I mean cache hit/miss. >> >> >>>> 3,The ascii.trace in the valid folder has 100000 requests, but when I >>>> run disksim ascii.parv stdout ascii ascii.trace 0, >>>> there was only 99993 requests were handled(I have modified the system >>>> topology and iomap),Why lost seven request? >>> >>> as I remember from Disksim 3.0, when the trace runs out, >>> disksim->stop_sim is set to TRUE to stop the simulation, which is >>> before all requests are serviced. I believe that's the reason. >> >> I see, but what was the reason for the trace runs out? How can I avoid >> this? >> >> Best wishs. >> >> ChengJun Dai. >> 2012-3-4 >> >> >>> On Sat, Mar 3, 2012 at 7:43 PM, ??? ?wrote: >>>> >>>> Dear Sir(Miss): >>>> ? ? I am using disksim(V4.0). My work is to use disksim to simulate one >>>> disk(SEAGATE_ST32171W) subsystem. >>>> The system topology is just like this: >>>> >>>> # system topology >>>> topology disksim_iodriver driver0 [ >>>> ? disksim_bus bus0 [ >>>> ? ? ?disksim_ctlr ctlr0 [ >>>> ? ? ? ? disksim_bus bus1 [ >>>> ? ? ? ? ? ?disksim_disk disk0 [] >>>> ? ? ? ? ] # end of bus1 >>>> ? ? ?] # end of ctlr0 >>>> ? ] # end of bus0 >>>> ] # end of system topology >>>> >>>> My input is a a series of requests(Request arrival time,Device >>>> number,Block number,Request size,Request flags) >>>> in a ascii file. The output I want to get is the response time per >>>> request and the situation of per request >>>> hit cache, but the disksim only output the statistic information of all >>>> requests. so I want to consult some questions >>>> >>>> 1,What should I do to get the response time and hitting situation of per >>>> request? >>>> >>>> 2,The default input format is a simple ASCII stream (or file),which is >>>> the unit of "Request arrival time" and >>>> "Request size",Seconds milliseconds or microseconds? KB or block? >>>> >>>> 3,The ascii.trace in the valid folder has 100000 requests, but when I >>>> run disksim ascii.parv stdout ascii ascii.trace 0, >>>> there was only 99993 requests were handled(I have modified the system >>>> topology and iomap),Why lost seven request? >>>> >>>> Sorry for the my poor english,thank you. >>>> >>>> Best wishs. >>>> >>>> ChengJun Dai. >>>> 2012-3-4 >>>> _______________________________________________ >>>> Disksim-users mailing list >>>> Disksim-users at ece.cmu.edu >>>> https://sos.ece.cmu.edu/mailman/listinfo/disksim-users >>>> >>> >>> >>> -- >>> ******************************************** >>> Yipkei Kwok >>> Ph.D. Student >>> Research Assistant >>> HiPerSys Lab >>> Department of Computer Science >>> The University of Texas at El Paso >>> Phone: 915 747 6433 (O) >>> E-mail: ykwok2 at miners dot utep dot edu >>> ******************************************** >>> >> _______________________________________________ >> Disksim-users mailing list >> Disksim-users at ece.cmu.edu >> https://sos.ece.cmu.edu/mailman/listinfo/disksim-users > > _______________________________________________ > Disksim-users mailing list > Disksim-users at ece.cmu.edu > https://sos.ece.cmu.edu/mailman/listinfo/disksim-users -- ******************************************** Yipkei Kwok Ph.D. Student Research Assistant HiPerSys Lab Department of Computer Science The University of Texas at El Paso Phone: 915 747 6433 (O) E-mail: ykwok2 at miners dot utep dot edu ******************************************** From dcjy at mail.ustc.edu.cn Tue Mar 6 06:29:03 2012 From: dcjy at mail.ustc.edu.cn (=?GBK?B?tPqzyb+h?=) Date: Tue, 6 Mar 2012 19:29:03 +0800 (CST) Subject: [Disksim-users] some issues about disksim(V4.0) Message-ID: <22033298.736871331033343958.JavaMail.coremail@mailweb> Hello everyone, I am using disksim(v4.0) to get the response time of a request. With the help from Anjo and Yipkei, I have solved some issues. Thank you very much. But there are many issues confused me all the same. 1, Where the data in the file disksim4.0/valid/ascii.trace is from,a really trace set collected from one application or generated by disksim itself? 2, Is there anyone who is familiar with the data download from the site:http://traces.cs.umass.edu/index.php/Storage/Storage ? What's the meaning of "application specific unit(ASU)" mentioned in its specification file? Is it the same with the device number in trace file? 3, Followed Anjo's advice,I add a option in .parv file(identified by #) to get the finish time of every request. disksim_global Global { Init Seed = 42, Real Seed = 42, Stat definition file = statdefs # Detailed execution trace = exectrace.rlt } It really works. However, it only contains simtime and blkno(as shown below), if the scheduling policy is not FCFS, the request's served order is different from the intput order, so,how to identify the corresponding relationship between the request trace and the simtime in exectrace.rlt file? Could it record other information such as start_time,and so on,to identify them? void iodriver_access_complete (int iodriverno, intr_event *intrp) { ......... disksim_exectrace("Request completion: simtime %f, devno %d, blkno %d, time %f\n", simtime, req->devno, req->blkno); ......... } Best Wishs. dcj From kollapurushotham at gmail.com Wed Mar 21 12:47:44 2012 From: kollapurushotham at gmail.com (kolla purushotham) Date: Wed, 21 Mar 2012 12:47:44 -0400 Subject: [Disksim-users] SPC TRACE FILE FORMAT SPECIFICATION Message-ID: Hi, I have a basic question regarding the UMass traces available at http://traces.cs.umass.edu/index.php/Storage/Storage. I have observed that there are 7 disks in total in the Financial2.spc trace, now my question is there a single address space for all the disks and if so what is the stripe size of address distribution. -- Regards, Purushotham From niuqingpeng at gmail.com Tue Mar 27 17:17:22 2012 From: niuqingpeng at gmail.com (Qingpeng Niu) Date: Tue, 27 Mar 2012 17:17:22 -0400 Subject: [Disksim-users] building Disksim-4.0 issues Message-ID: Hi My gcc version is 4.6.1 and my bison version is 2.4.1. When do make in Disksim main folder. There will be two main problems need to fix. 1 Some math library can not be found due to library dependency on math library. Solution Search LDFLAGS in each Makefile and put -lm at the end of LDFLAGS or link sequence. Change src/Makefile LDFLAGS = *-lm -L*. -ldisksim $(DISKMODEL_LDFLAGS) $(MEMSMODEL_LDFLAGS) \ $(LIBPARAM_LDFLAGS) $(LIBDDBG_LDFLAGS) to LDFLAGS = -ldisksim $(DISKMODEL_LDFLAGS) $(MEMSMODEL_LDFLAGS) \ $(LIBPARAM_LDFLAGS) $(LIBDDBG_LDFLAGS) *-lm -L. * Change memsmodel/Maefile $(CC) -o $@ mems_seektest.o *$(LDFLAGS)* $(CFLAGS) -lmems_internals to $(CC) -o $@ mems_seektest.o $(CFLAGS) -lmems_internals *$(LDFLAGS)* * * 2 src/disksim_iosim.c:712:4: error: duplicate case value disksim_iosim.c:712:4: error: previously used here Due to StaticAssert (sizeof(ioreq_event) <= DISKSIM_EVENT_SIZE); Where* #define StaticAssert(c) switch (c) case 0: case (c): * What is the meaning of this StaticAssert. I do not understand the meaning of this assert. If c is 0, because there is no break, it will still go to case(c). If c is not 0, it directly go to case(c). It sounds to me this is totally no use. So just comment it. Then everything works fine and compile successful. Is this actually a code bug? Hopes developer can fix this in Makefile and disksim_iosim.c if this is a code bug. -- Qingpeng Niu Department of Computer Science and Engineering at OSU -------------- next part -------------- An HTML attachment was scrubbed... URL: From stroucki at ece.cmu.edu Tue Mar 27 17:38:31 2012 From: stroucki at ece.cmu.edu (Michael Stroucken) Date: Tue, 27 Mar 2012 17:38:31 -0400 Subject: [Disksim-users] building Disksim-4.0 issues In-Reply-To: References: Message-ID: <4F723357.1040403@ece.cmu.edu> (cc to group) Qingpeng Niu wrote: > Hi > My gcc version is 4.6.1 and my bison version is 2.4.1. Hi Qingpeng, The code was written several years ago, and is not currently maintained to follow updates to the C understood by gcc. Thanks for providing some assistance. > When do make in Disksim main folder. There will be two main problems > need to fix. 1 Some math library can not be found due to library > dependency on math library. > > Solution Search LDFLAGS in each Makefile and put -lm at the end of > LDFLAGS or link sequence. Can you provide more details on this? What function is it not finding? I don't have gcc-4.6 at hand right now to test. > ** > * > * > 2 src/disksim_iosim.c:712:4: error: duplicate case value > disksim_iosim.c:712:4: error: previously used here > Due to StaticAssert (sizeof(ioreq_event) <= DISKSIM_EVENT_SIZE); > Where* #define StaticAssert(c) switch (c) case 0: case (c): * > What is the meaning of this StaticAssert. I do not understand the > meaning of this assert. If c is 0, because there is no break, it will > still go to case(c). If c is not 0, it directly go to case(c). It > sounds to me this is totally no use. So just comment it. Then > everything works fine and compile successful. > Is this actually a code bug? > Hopes developer can fix this in Makefile and disksim_iosim.c if this > is a code bug. This provides a way of having compilation fail after preprocessing. If the condition is false (c == 0), the code will be "switch(0) case 0: case 0:", which is invalid because there are two case statements with the same label. If you are hitting this, it means your structures are larger than expected by the developers. Are you running on a 64 bit system? AFAIK, disksim will only work on a 32 bit system. Greetings, Michael. From ricardoreyyy at gmail.com Tue Mar 27 18:01:50 2012 From: ricardoreyyy at gmail.com (Ricardo Rey) Date: Tue, 27 Mar 2012 16:01:50 -0600 Subject: [Disksim-users] building Disksim-4.0 issues In-Reply-To: References: Message-ID: Hi About the first problem I'm not sure. About the second problem, that assert is designed so that you can't compile in a 64 bit architecture. Basically it compares the size of the ioreq_event struct with a certain value, but in 64 bits this comparison is 0. So, when the assert is called, it is called as "switch(0) case 0: case 0" (two case 0), which is a compile time error (duplicate case value). There is a guide for compiling in 64 bit, but I don't have it right now. I can send it to you tomorrow if you're not in a hurry =D Hope this helps! - Rick 2012/3/27 Qingpeng Niu > Hi > My gcc version is 4.6.1 and my bison version is 2.4.1. > When do make in Disksim main folder. There will be two main problems need > to fix. > 1 Some math library can not be found due to library dependency on math > library. > > Solution Search LDFLAGS in each Makefile and put -lm at the end of LDFLAGS > or link sequence. > Change src/Makefile > LDFLAGS = *-lm -L*. -ldisksim $(DISKMODEL_LDFLAGS) $(MEMSMODEL_LDFLAGS) \ > $(LIBPARAM_LDFLAGS) $(LIBDDBG_LDFLAGS) > to > LDFLAGS = -ldisksim $(DISKMODEL_LDFLAGS) $(MEMSMODEL_LDFLAGS) \ > $(LIBPARAM_LDFLAGS) $(LIBDDBG_LDFLAGS) *-lm > -L. * > > Change memsmodel/Maefile > $(CC) -o $@ mems_seektest.o *$(LDFLAGS)* $(CFLAGS) -lmems_internals > to > $(CC) -o $@ mems_seektest.o $(CFLAGS) -lmems_internals *$(LDFLAGS)* > * > * > 2 src/disksim_iosim.c:712:4: error: duplicate case value > disksim_iosim.c:712:4: error: previously used here > Due to StaticAssert (sizeof(ioreq_event) <= DISKSIM_EVENT_SIZE); > Where* #define StaticAssert(c) switch (c) case 0: case (c): * > What is the meaning of this StaticAssert. > I do not understand the meaning of this assert. If c is 0, because there > is no break, it will still go to case(c). If c is not 0, it directly go to > case(c). > It sounds to me this is totally no use. > So just comment it. Then everything works fine and compile successful. > > Is this actually a code bug? > Hopes developer can fix this in Makefile and disksim_iosim.c if this is a > code bug. > -- > Qingpeng Niu > Department of Computer Science and Engineering at OSU > > _______________________________________________ > Disksim-users mailing list > Disksim-users at ece.cmu.edu > https://sos.ece.cmu.edu/mailman/listinfo/disksim-users > > -------------- next part -------------- An HTML attachment was scrubbed... URL: