On Jan. 5, 2015, 10:48 p.m., Andreas Hansson wrote:
> > Can you explain the sequence of events that result in bad behavior? If 
> > possible (which is not necessarily the case), it would be best to fix this 
> > without adding arbitrary delays.
> 
> Andreas Hansson wrote:
>     The crossbar is processing a response, and as part of that forward it to 
> the next object, in this case the pagetable walker, and before the call to 
> sendTimingResp is finished, the pagetable walker sends a new request back to 
> the crossbar.
>     
>     This change ensures that the sendTimingResp is finished and done with 
> before the request is sent.
>     
>     If you do not like the idea of sending it on the next clock edge we can 
> also make it curTick().

curTick would be better I think. I feel like I've run into this sort of thing 
before, where I've wanted to do something inline but there were 
assumptions/expectations that it be done in a different call stack. I *think* 
we even had issues where we'd run out of stack when that looped back on itself 
too much under certain circumstances, but it may just be that that 
theoretically could happen but hadn't. In any case, it feels like there's a 
generic problem to be solved here, although not necessarily as part of what 
you're doing.


- Gabe


-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
http://reviews.gem5.org/r/2595/#review5724
-----------------------------------------------------------


On Jan. 5, 2015, 4:35 p.m., Andreas Hansson wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> http://reviews.gem5.org/r/2595/
> -----------------------------------------------------------
> 
> (Updated Jan. 5, 2015, 4:35 p.m.)
> 
> 
> Review request for Default.
> 
> 
> Repository: gem5
> 
> 
> Description
> -------
> 
> Changeset 10643:30307bfe1e8c
> ---------------------------
> x86: Delay X86 table walk on receiving walker response
> 
> This patch fixes a minor issue in the X86 page table walker where it
> ended up sending new request packets to the crossbar before the
> response processing was finished (recvTimingResp is directly calling
> sendTimingReq). Under certain conditions this caused the crossbar to
> see illegal combinations of request/response overlap, in turn causing
> problems with a slightly modified crossbar implementation.
> 
> 
> Diffs
> -----
> 
>   src/arch/x86/pagetable_walker.hh 9ac724889705 
>   src/arch/x86/pagetable_walker.cc 9ac724889705 
> 
> Diff: http://reviews.gem5.org/r/2595/diff/
> 
> 
> Testing
> -------
> 
> 
> Thanks,
> 
> Andreas Hansson
> 
>

_______________________________________________
gem5-dev mailing list
gem5-dev@gem5.org
http://m5sim.org/mailman/listinfo/gem5-dev

Reply via email to