Cool.  I fixed what Andreas listed below and tested this.  Just pushed.

  Thanks,
  Joel


On Sun, Sep 23, 2012 at 6:03 AM, Andreas Hansson <andreas.hans...@arm.com>wrote:

>    This is an automatically generated e-mail. To reply, visit:
> http://reviews.gem5.org/r/1386/
>
> Ship it!
>
> Overall this is fine with me. We have done some tinkering with the whole way 
> draining works, by removing the state and relying entirely on the counters in 
> a "tree" that reflects where there is still activity. This patch seems to 
> move in the same direction (but only for the RubyPort).
>
>
>    
> src/mem/ruby/system/RubyPort.cc<http://reviews.gem5.org/r/1386/diff/3/?file=29833#file29833line597>
>  (Diff
> revision 3)
>
> unsigned int
>
>    585
>
>     int child_drain_count = getChildDrainCount(de);
>
>   unsigned int?
>
>
>    
> src/mem/ruby/system/Sequencer.cc<http://reviews.gem5.org/r/1386/diff/3/?file=29834#file29834line212>
>  (Diff
> revision 3)
>
> RequestStatus
>
>   210
>
>     if (deadlockCheckEvent.scheduled() == false) {
>
> 212
>
>     if (deadlockCheckEvent.scheduled() == false &&
>
>   Why the == false instead of adding a ! at the start of the line?
>
>
> - Andreas
>
> On September 21st, 2012, 9:08 p.m., Joel Hestness wrote:
>   Review request for Default.
> By Joel Hestness.
>
> *Updated Sept. 21, 2012, 9:08 p.m.*
> Description
>
> Changeset 9228:0b63b7c87cde
> ---------------------------
> RubyPort and Sequencer: Fix draining
>
> Fix the drain functionality of the RubyPort to only call drain on child ports
> during a system-wide drain process, instead of calling each time that a
> ruby_hit_callback is executed.
>
> This fixes the issue of the RubyPort ports being reawakened during the drain
> simulation, possibly with work they didn't previously have to complete. If
> they have new work, they may call process on the drain event that they had
> not registered work for, causing an assertion failure when completing the
> drain event.
>
> Also, in RubyPort, set the drainEvent to NULL when there are no events
> to be drained. If not set to NULL, the drain loop can result in stale
> drainEvents used.
>
>   Testing
>
> Verified that all prior working Ruby checkpointing configurations still work 
> correctly. Verified that this fixes checkpoint restore into timing CPU and 
> then switch to detailed CPU with x86. Will need to verify that this works 
> when restoring in full-system simulation, functionality which is currently 
> obscured by another bug when restoring into detailed CPU in FS.
>
>   Diffs
>
>    - src/mem/ruby/system/RubyPort.hh (c208c904ab13)
>    - src/mem/ruby/system/RubyPort.cc (c208c904ab13)
>    - src/mem/ruby/system/Sequencer.cc (c208c904ab13)
>
> View Diff <http://reviews.gem5.org/r/1386/diff/>
>



-- 
  Joel Hestness
  PhD Student, Computer Architecture
  Dept. of Computer Science, University of Wisconsin - Madison
  http://www.cs.utexas.edu/~hestness
_______________________________________________
gem5-dev mailing list
gem5-dev@gem5.org
http://m5sim.org/mailman/listinfo/gem5-dev

Reply via email to