From c38f5098b152ea1e1dde96220d3f9e50d3411780 Mon Sep 17 00:00:00 2001 From: Brandon Potter Date: Fri, 10 Jul 2015 16:05:23 -0500 Subject: ruby: replace g_ruby_start with per-RubySystem m_start_cycle This patch begins the process of removing global variables from the Ruby source with the goal of eventually allowing users to create multiple Ruby instances in a single simulation. Currently, users cannot do so because several global variables and static members are referenced by the RubySystem object in a way that assumes that there will only ever be a single RubySystem. These need to be replaced with per-RubySystem equivalents. This specific patch replaces the global var g_ruby_start, which is used to calculate throughput statistics for Throttles in simple networks and links in Garnet networks, with a RubySystem instance var m_start_cycle. --- src/mem/ruby/network/simple/Switch.cc | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'src/mem/ruby/network/simple/Switch.cc') diff --git a/src/mem/ruby/network/simple/Switch.cc b/src/mem/ruby/network/simple/Switch.cc index 416a222bb..431a7b28f 100644 --- a/src/mem/ruby/network/simple/Switch.cc +++ b/src/mem/ruby/network/simple/Switch.cc @@ -81,7 +81,8 @@ Switch::addOutPort(const vector& out, Cycles link_latency, int bw_multiplier) { // Create a throttle - Throttle* throttle_ptr = new Throttle(m_id, m_throttles.size(), + RubySystem *rs = m_network_ptr->params()->ruby_system; + Throttle* throttle_ptr = new Throttle(m_id, rs, m_throttles.size(), link_latency, bw_multiplier, m_network_ptr->getEndpointBandwidth(), this); -- cgit v1.2.3