It appears as though the page table walker inserted a translation into the TLB and then when it came to use that translation it wasn't available (and would require another walk), which is causing the assert to happen. You should figure out what is being inserted and why it isn't matching in the tlb on the walker->tlb->translate() call. Ali
On Jan 7, 2013, at 8:51 PM, Mostafa Mahmoud Hassan <mostafa.m.has...@hotmail.com> wrote: > > I traced this error and suspectthe behavior of this peice in recvPacket > function (lines 604-609 in > "build/X86_MESI_CMP_directory/arch/x86/pagetable_walker.cc") > > bool delayedResponse; > Fault fault = walker->tlb->translate(req, tc, NULL, mode, > delayedResponse, true); > assert(!delayedResponse); > // Let the CPU continue. > translation->finish(fault, req, tc, mode); > > When I checked the "translate" function in 298-303 "": > Fault fault = walker->start(tc, translation, req, mode); > if (timing || fault != NoFault) { > // This gets ignored in atomic mode. > delayedResponse = true; > return fault; > } > > I can see that we have already passed true to "timing" which will cause > "delayedResponse" to change to true irrespective of the value of "fault", > which in turn cause the assertion in recvPacket function to fail constantly > > Could you help me with this pease > > Regards > _______________________________________________ > gem5-users mailing list > gem5-users@gem5.org > http://m5sim.org/cgi-bin/mailman/listinfo/gem5-users
_______________________________________________ gem5-users mailing list gem5-users@gem5.org http://m5sim.org/cgi-bin/mailman/listinfo/gem5-users