From maheshba at microsoft.com Sat Feb 7 04:14:22 2009 From: maheshba at microsoft.com (Mahesh Balakrishnan) Date: Sat, 7 Feb 2009 01:14:22 -0800 Subject: [Disksim-users] segmentation fault while simulating ssd In-Reply-To: <080C4E6E2AED2749ABAAEAA4254DC62B872E375200@NA-EXMSG-C125.redmond.corp.microsoft.com> References: <080C4E6E2AED2749ABAAEAA4254DC62B872E375200@NA-EXMSG-C125.redmond.corp.microsoft.com> Message-ID: <080C4E6E2AED2749ABAAEAA4254DC62B872E375201@NA-EXMSG-C125.redmond.corp.microsoft.com> A 'make clean' followed by a 'make' in the main disksim directory fixed this problem for me. - mahesh --- Mahesh Balakrishnan MSR SVC > Hi > > I am having segmentation faults while using disksim for simulating > ssd. Disksim works fine if it is compiled without the ssd feature, but > with the ssd add-on it gives segmentation fault for each of the > simulations in 'runvalid'. > > please let me know If anyone has the solution. > > thanks, > maliha From roaslin at gmail.com Thu Feb 19 14:04:05 2009 From: roaslin at gmail.com (Raul) Date: Thu, 19 Feb 2009 20:04:05 +0100 Subject: [Disksim-users] Traces Message-ID: <2DA185B1-3232-414E-86C0-D2203E71C449@gmail.com> Hi everyone! I?m using ascii traces but I don?t know exactly if they are correct. Here it is an example of them: 1 0 1 512 1 30 0 2 512 1 45 0 3 512 1 and so on I want to do a read of 100mb. It is correct? On the other hand I put this information on de *.parv file is it correct? I think I could be misunderstood with the reading trace. Thank you disksim_iosim IS { I/O Trace Time Scale = 1.0, I/O Mappings = [ disksim_iomap { tracedev = 0x0, simdev = disk0, locScale = 512, sizeScale = 1 } ] # end of iomap list } # end of iosim spec instantiate [iosimfoo] as IS # 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 # no syncsets disksim_logorg org0 { Addressing mode = Parts, Distribution scheme = Asis, Redundancy scheme = Noredun, devices = [ disk0 ], Stripe unit = 64, Synch writes for safety = 0, Number of copies = 2, Copy choice on read = 6, RMW vs. reconstruct = 0.5, Parity stripe unit = 64, Parity rotation type = 1, Time stamp interval = 0.000000, Time stamp start time = 60000.000000, Time stamp stop time = 10000000000.000000, Time stamp file name = stamps } # end of logorg org0 spec disksim_pf Proc { Number of processors = 1, Process-Flow Time Scale = 1.0 } # end of process flow spec From mohan at cs.virginia.edu Sun Feb 22 14:36:27 2009 From: mohan at cs.virginia.edu (Bhushan) Date: Sun, 22 Feb 2009 14:36:27 -0500 Subject: [Disksim-users] Crash at ioqueue_remove_from_subqueue Message-ID: <3330de3a0902221136t42e63801x787c0df39561c024@mail.gmail.com> Hi, Disksim crashes at ioqueue_remove_from_subqueue() when used along with ssd add-on. This function removes tmp from the queue and resets the pointer in the double linked list. But tmp->prev is NULL because of which disksim crashes at tmp->prev->next. while accessing tmp->prev. Also, tmp->prev is NULL for the entire tmp list. Can someone provide the guidelines as to when we should be calling ioqueue_insert_new_request() and when we should be calling ioqueue_remove_from_subqueue() assuming that the requests are serviced in FCFS. In this way, I can find out if I am incorrectly calling any of the two functions mentioned above. Thanks! -- Regards, Bhushan. -------------- next part -------------- An HTML attachment was scrubbed... URL: From yueyinliang at gmail.com Sun Feb 22 20:06:43 2009 From: yueyinliang at gmail.com (Yinliang Yue) Date: Mon, 23 Feb 2009 09:06:43 +0800 Subject: [Disksim-users] Crash at ioqueue_remove_from_subqueue In-Reply-To: <3330de3a0902221136t42e63801x787c0df39561c024@mail.gmail.com> References: <3330de3a0902221136t42e63801x787c0df39561c024@mail.gmail.com> Message-ID: Hi Bhushan, I don't know the specific runtime environment of your testing, so I can't give you the accurate suggestion. I think you'd better add a new request via addintq() function. Also, you'd better check the complete of every subrequest in iodriver_access_complete(), and the complete of every logical request in logorg_mapcomplete(). Furthermore, you'd better check the .parv file you used and adjust the queue parameters. I hope you find these suggestions useful. Yinliang Yue HUST, China On 2/23/09, Bhushan wrote: > > Hi, > Disksim crashes at ioqueue_remove_from_subqueue() when used along with ssd > add-on. This function removes tmp from the queue and resets the pointer in > the double linked list. But tmp->prev is NULL because of which disksim > crashes at tmp->prev->next. while accessing tmp->prev. Also, tmp->prev is > NULL for the entire tmp list. > > Can someone provide the guidelines as to when we should be calling > ioqueue_insert_new_request() and when we should be calling > ioqueue_remove_from_subqueue() assuming that the requests are serviced in > FCFS. In this way, I can find out if I am incorrectly calling any of the two > functions mentioned above. > > Thanks! > > -- > Regards, > Bhushan. > > _______________________________________________ > Disksim-users mailing list > Disksim-users at ece.cmu.edu > https://sos.ece.cmu.edu/mailman/listinfo/disksim-users > > -- Best regards! Yinliang Yue HUST, Wuhan, China -------------- next part -------------- An HTML attachment was scrubbed... URL: From yueyinliang at gmail.com Wed Feb 25 08:06:30 2009 From: yueyinliang at gmail.com (Yinliang Yue) Date: Wed, 25 Feb 2009 21:06:30 +0800 Subject: [Disksim-users] "Sequential stream scheme" can't run correctly Message-ID: <003301c99749$e7121ae0$b53650a0$@com> Hi all, I want to issue many write requests onto one single disk sequentially, so I modify the "Sequential stream scheme" in .parv from 0 to 3 /* IOQUEUE_CONCAT_BOTH */. However, I encounter the following error information, *** assertion failed: in disk_buffer_sector_done() (disksim_diskctlr.c: *****): currdisk->fpcheck : Aborted. Any help would be greatly appreciated! Especially, I expect the answers from the developers of DiskSim. I want to know if the functionality of "Sequential stream scheme" has been implemented in disksim correctly, and if not, what I should do to figure out this problem. Thanks! /* Sequential Stream Schemes */ #define IOQUEUE_CONCAT_READS 1 #define IOQUEUE_CONCAT_WRITES 2 #define IOQUEUE_CONCAT_BOTH 3 #define IOQUEUE_SEQSTREAM_READS 4 #define IOQUEUE_SEQSTREAM_WRITES 8 #define IOQUEUE_SEQSTREAM_EITHER 16 Regard! Yinliang Yue -------------- next part -------------- An HTML attachment was scrubbed... URL: From ganger at ece.cmu.edu Wed Feb 25 12:24:49 2009 From: ganger at ece.cmu.edu (Greg Ganger) Date: Wed, 25 Feb 2009 12:24:49 -0500 (EST) Subject: [Disksim-users] "Sequential stream scheme" can't run correctly In-Reply-To: <003301c99749$e7121ae0$b53650a0$@com> References: <003301c99749$e7121ae0$b53650a0$@com> Message-ID: Yinliang, I know that stuff worked 14 years ago... but, it would not be shocking if noone had tried using it since I was a graduate student ;). Good luck! Greg On Wed, 25 Feb 2009, Yinliang Yue wrote: > Hi all, > > > > I want to issue many write requests onto one single disk sequentially, so I > modify the "Sequential stream scheme" in .parv from 0 to 3 /* > IOQUEUE_CONCAT_BOTH */. > > > > However, I encounter the following error information, > > > > *** assertion failed: in disk_buffer_sector_done() (disksim_diskctlr.c: > *****): currdisk->fpcheck : > > Aborted. > > > > > > > > Any help would be greatly appreciated! > > > > Especially, I expect the answers from the developers of DiskSim. I want to > know if the functionality of "Sequential stream scheme" has been implemented > in disksim correctly, and if not, what I should do to figure out this > problem. > > > > Thanks! > > > > > > /* Sequential Stream Schemes */ > > #define IOQUEUE_CONCAT_READS 1 > > #define IOQUEUE_CONCAT_WRITES 2 > > #define IOQUEUE_CONCAT_BOTH 3 > > #define IOQUEUE_SEQSTREAM_READS 4 > > #define IOQUEUE_SEQSTREAM_WRITES 8 > > #define IOQUEUE_SEQSTREAM_EITHER 16 > > > > Regard! > > Yinliang Yue > > From mohan at cs.virginia.edu Thu Feb 26 14:54:56 2009 From: mohan at cs.virginia.edu (Bhushan) Date: Thu, 26 Feb 2009 14:54:56 -0500 Subject: [Disksim-users] Crash at ioqueue_remove_from_subqueue In-Reply-To: <7024beb30902222235v7f9e51e6j9e2cd711b6d8461a@mail.gmail.com> References: <3330de3a0902221136t42e63801x787c0df39561c024@mail.gmail.com> <7024beb30902222235v7f9e51e6j9e2cd711b6d8461a@mail.gmail.com> Message-ID: <3330de3a0902261154x7542ecf9we2d4efd51388a066@mail.gmail.com> Thanks Ji-Yong and Yinliang. I too had the same problem as Ji-Yang and adding unique opid to solved the problem. But I was wondering if this is the right fix or if it is some kind of hack.My guess is the function ioqueue_request_match() should be changed to find the correct match. I am trying to fix this function. Incase anyone has done this exercise before or if adding unique opid is the correct solution to this problem, please let me know. Thanks again! On Mon, Feb 23, 2009 at 1:35 AM, Ji-Yong Shin wrote: > Hi, > I had the same problem. The reason for this is addtoextraq function doesn't > reinitialize the iobuf or ioreq_event that are added to the extraq. Thus, > when ioqueue is trying to remove a iobuf or ioreq_event with the same opid > and blkno with the iobuf or ioreq_event that has been recently added to the > extraq and is still pointed by a pointer in the ioqueue, it will make the > error you described. > > One of the solutions I used was to make all the opid of ioreq_events unique > so that even if the extraq doesn't reinitialize the iobuf or > ioreq_event added to the extraq, the ioqueue functions will not mistakenly > follow the path that leads to the error. > > > On 2/23/09, Bhushan wrote: > >> Hi, >> Disksim crashes at ioqueue_remove_from_subqueue() when used along with ssd >> add-on. This function removes tmp from the queue and resets the pointer in >> the double linked list. But tmp->prev is NULL because of which disksim >> crashes at tmp->prev->next. while accessing tmp->prev. Also, tmp->prev is >> NULL for the entire tmp list. >> >> Can someone provide the guidelines as to when we should be calling >> ioqueue_insert_new_request() and when we should be calling >> ioqueue_remove_from_subqueue() assuming that the requests are serviced in >> FCFS. In this way, I can find out if I am incorrectly calling any of the two >> functions mentioned above. >> >> Thanks! >> >> -- >> Regards, >> Bhushan. >> >> _______________________________________________ >> Disksim-users mailing list >> Disksim-users at ece.cmu.edu >> https://sos.ece.cmu.edu/mailman/listinfo/disksim-users >> >> > > > -- > ======================= > Ji-Yong Shin > Email: shin.jiyong at gmail.com > ======================= > -- Regards, Bhushan. -------------- next part -------------- An HTML attachment was scrubbed... URL: