ruby: Fix RubySystem warm-up and cool-down scope
authorJoel Hestness <jthestness@gmail.com>
Tue, 19 May 2015 15:56:51 +0000 (10:56 -0500)
committerJoel Hestness <jthestness@gmail.com>
Tue, 19 May 2015 15:56:51 +0000 (10:56 -0500)
commit0479569f6748202f1704d70aad3b03b3d17f6092
tree12ed286bef31c4eb74d9ff7ae8e2f4613fafda10
parent99d3fa594565660d8d51fbda005e3c2213723fef
ruby: Fix RubySystem warm-up and cool-down scope

The processes of warming up and cooling down Ruby caches are simulation-wide
processes, not just RubySystem instance-specific processes. Thus, the warm-up
and cool-down variables should be globally visible to any Ruby components
participating in either process. Make these variables static members and track
the warm-up and cool-down processes as appropriate.

This patch also has two side benefits:
1) It removes references to the RubySystem g_system_ptr, which are problematic
for allowing multiple RubySystem instances in a single simulation. Warmup and
cooldown variables being static (global) reduces the need for instance-specific
dereferences through the RubySystem.
2) From the AbstractController, it removes local RubySystem pointers, which are
used inconsistently with other uses of the RubySystem: 11 other uses reference
the RubySystem with the g_system_ptr. Only sequencers have local pointers.
src/mem/ruby/network/MessageBuffer.cc
src/mem/ruby/slicc_interface/AbstractController.cc
src/mem/ruby/slicc_interface/AbstractController.hh
src/mem/ruby/system/Sequencer.cc
src/mem/ruby/system/System.cc
src/mem/ruby/system/System.hh