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

(Updated Sept. 21, 2012, 9:08 p.m.)


Review request for Default.


Description (updated)
-------

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.


Diffs (updated)
-----

  src/mem/ruby/system/RubyPort.hh c208c904ab13 
  src/mem/ruby/system/RubyPort.cc c208c904ab13 
  src/mem/ruby/system/Sequencer.cc c208c904ab13 

Diff: http://reviews.gem5.org/r/1386/diff/


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.


Thanks,

Joel Hestness

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

Reply via email to