Thanks Ji-Yong and Yinliang.<br>I too had the same problem as Ji-Yang and adding unique opid to solved the problem.<br><br>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.<br>
<br>Thanks again!<br><br><div class="gmail_quote">On Mon, Feb 23, 2009 at 1:35 AM, Ji-Yong Shin <span dir="ltr"><<a href="mailto:shin.jiyong@gmail.com">shin.jiyong@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
<div>Hi,</div>
<div>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.</div>


<div> </div>
<div>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. <br>

<br> </div>
<div><div class="Ih2E3d"><span class="gmail_quote">On 2/23/09, <b class="gmail_sendername">Bhushan</b> <<a href="mailto:mohan@cs.virginia.edu" target="_blank">mohan@cs.virginia.edu</a>> wrote:</span> 
</div><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0px 0px 0px 0.8ex; padding-left: 1ex;"><div><div></div><div class="Wj3C7c">Hi,<br>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. <br>

<br>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.<br>

<br>Thanks!<br clear="all"><br>-- <br>Regards,<br><span>Bhushan.<br></span><br></div></div><div class="Ih2E3d">_______________________________________________<br>Disksim-users mailing list<br><a href="mailto:Disksim-users@ece.cmu.edu" target="_blank">Disksim-users@ece.cmu.edu</a><br>

<a href="https://sos.ece.cmu.edu/mailman/listinfo/disksim-users" target="_blank">https://sos.ece.cmu.edu/mailman/listinfo/disksim-users</a><br><br></div></blockquote></div><font color="#888888">
<br><br clear="all"><br>-- <br>=======================<br>Ji-Yong Shin<br>Email: <a href="mailto:shin.jiyong@gmail.com" target="_blank">shin.jiyong@gmail.com</a><br>=======================<br>
</font></blockquote></div><br><br clear="all"><br>-- <br>Regards,<br>Bhushan.<br>