From b3db882deeaf5952dc1b63e7cc2d1cce1732c97d Mon Sep 17 00:00:00 2001 From: Nilay Vaish Date: Mon, 24 Jun 2013 08:59:08 -0500 Subject: [PATCH] ruby: remove the three files related to profiling This patch removes the following three files: RubySlicc_Profiler.sm, RubySlicc_Profiler_interface.cc and RubySlicc_Profiler_interface.hh. Only one function prototyped in the file RubySlicc_Profiler.sm. Rest of the code appearing in any of these files is not in use. Therefore, these files are being removed. That one single function, profileMsgDelay(), is being moved to the protocol files where it is in use. If we need any of these deleted functions, I think the right way to make them visible is to have the AbstractController class in a .sm and let the controller state machine inherit from this class. The AbstractController class can then have the prototypes of these profiling functions in its definition. --- .../protocol/MESI_CMP_directory-L1cache.sm | 1 + .../protocol/MESI_CMP_directory-L2cache.sm | 1 + src/mem/protocol/MI_example-cache.sm | 1 + src/mem/protocol/RubySlicc_Profiler.sm | 45 ------------- src/mem/protocol/RubySlicc_interfaces.slicc | 1 - .../RubySlicc_Profiler_interface.cc | 66 ------------------- .../RubySlicc_Profiler_interface.hh | 58 ---------------- .../slicc_interface/RubySlicc_includes.hh | 1 - src/mem/ruby/slicc_interface/SConscript | 1 - 9 files changed, 3 insertions(+), 172 deletions(-) delete mode 100644 src/mem/protocol/RubySlicc_Profiler.sm delete mode 100644 src/mem/ruby/slicc_interface/RubySlicc_Profiler_interface.cc delete mode 100644 src/mem/ruby/slicc_interface/RubySlicc_Profiler_interface.hh diff --git a/src/mem/protocol/MESI_CMP_directory-L1cache.sm b/src/mem/protocol/MESI_CMP_directory-L1cache.sm index e45a8df34..454e01050 100644 --- a/src/mem/protocol/MESI_CMP_directory-L1cache.sm +++ b/src/mem/protocol/MESI_CMP_directory-L1cache.sm @@ -151,6 +151,7 @@ machine(L1Cache, "MESI Directory L1 Cache CMP") void set_tbe(TBE a); void unset_tbe(); void wakeUpBuffers(Address a); + void profileMsgDelay(int virtualNetworkType, Cycles c); // inclusive cache returns L1 entries only Entry getCacheEntry(Address addr), return_by_pointer="yes" { diff --git a/src/mem/protocol/MESI_CMP_directory-L2cache.sm b/src/mem/protocol/MESI_CMP_directory-L2cache.sm index e28abe336..d4f3c4188 100644 --- a/src/mem/protocol/MESI_CMP_directory-L2cache.sm +++ b/src/mem/protocol/MESI_CMP_directory-L2cache.sm @@ -156,6 +156,7 @@ machine(L2Cache, "MESI Directory L2 Cache CMP") void set_tbe(TBE a); void unset_tbe(); void wakeUpBuffers(Address a); + void profileMsgDelay(int virtualNetworkType, Cycles c); // inclusive cache, returns L2 entries only Entry getCacheEntry(Address addr), return_by_pointer="yes" { diff --git a/src/mem/protocol/MI_example-cache.sm b/src/mem/protocol/MI_example-cache.sm index d22a0d3e9..2b505f047 100644 --- a/src/mem/protocol/MI_example-cache.sm +++ b/src/mem/protocol/MI_example-cache.sm @@ -105,6 +105,7 @@ machine(L1Cache, "MI Example L1 Cache") void unset_cache_entry(); void set_tbe(TBE b); void unset_tbe(); + void profileMsgDelay(int virtualNetworkType, Cycles b); Entry getCacheEntry(Address address), return_by_pointer="yes" { return static_cast(Entry, "pointer", cacheMemory.lookup(address)); diff --git a/src/mem/protocol/RubySlicc_Profiler.sm b/src/mem/protocol/RubySlicc_Profiler.sm deleted file mode 100644 index 591366ebe..000000000 --- a/src/mem/protocol/RubySlicc_Profiler.sm +++ /dev/null @@ -1,45 +0,0 @@ - -/* - * Copyright (c) 1999-2005 Mark D. Hill and David A. Wood - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are - * met: redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer; - * redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution; - * neither the name of the copyright holders nor the names of its - * contributors may be used to endorse or promote products derived from - * this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR - * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT - * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT - * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY - * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - -// Profiler function - -// used by 2level exclusive cache protocols -void profile_miss(RubyRequest msg); - -// used by CMP protocols -void profileMessageReordering(bool wasReordered); -void profileMessageReorderingByNetwork(int vnet, bool wasReordered); -void profile_token_retry(Address addr, AccessType type, int count); -void profile_persistent_prediction(Address addr, AccessType type); -void profile_filter_action(int act); -// void profile_overlapping_persistent_request(int overlapping); -void profile_average_latency_estimate(int latency); - -// profile the total message delay of a message across a virtual network -void profileMsgDelay(int virtualNetwork, Cycles delayCycles); diff --git a/src/mem/protocol/RubySlicc_interfaces.slicc b/src/mem/protocol/RubySlicc_interfaces.slicc index 4b6800847..f5a2b632d 100644 --- a/src/mem/protocol/RubySlicc_interfaces.slicc +++ b/src/mem/protocol/RubySlicc_interfaces.slicc @@ -2,6 +2,5 @@ include "RubySlicc_Exports.sm"; include "RubySlicc_Types.sm"; include "RubySlicc_Util.sm"; include "RubySlicc_ComponentMapping.sm"; -include "RubySlicc_Profiler.sm"; include "RubySlicc_Defines.sm"; include "RubySlicc_MemControl.sm"; diff --git a/src/mem/ruby/slicc_interface/RubySlicc_Profiler_interface.cc b/src/mem/ruby/slicc_interface/RubySlicc_Profiler_interface.cc deleted file mode 100644 index 5c8c8d113..000000000 --- a/src/mem/ruby/slicc_interface/RubySlicc_Profiler_interface.cc +++ /dev/null @@ -1,66 +0,0 @@ -/* - * Copyright (c) 1999-2008 Mark D. Hill and David A. Wood - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are - * met: redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer; - * redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution; - * neither the name of the copyright holders nor the names of its - * contributors may be used to endorse or promote products derived from - * this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR - * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT - * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT - * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY - * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - -#include "mem/ruby/common/Global.hh" -#include "mem/ruby/profiler/AddressProfiler.hh" -#include "mem/ruby/profiler/Profiler.hh" -#include "mem/ruby/slicc_interface/RubySlicc_ComponentMapping.hh" -#include "mem/ruby/slicc_interface/RubySlicc_Profiler_interface.hh" -#include "mem/ruby/system/System.hh" - -using namespace std; - -void -profile_average_latency_estimate(int latency) -{ - g_system_ptr->getProfiler()->profileAverageLatencyEstimate(latency); -} - -void -profile_sharing(const Address& addr, AccessType type, NodeID requestor, - const Set& sharers, const Set& owner) -{ - g_system_ptr->getProfiler()-> - profileSharing(addr, type, requestor, sharers, owner); -} - -void -profileGetX(const Address& datablock, const Address& PC, const Set& owner, - const Set& sharers, NodeID requestor) -{ - g_system_ptr->getProfiler()->getAddressProfiler()-> - profileGetX(datablock, PC, owner, sharers, requestor); -} - -void -profileGetS(const Address& datablock, const Address& PC, const Set& owner, - const Set& sharers, NodeID requestor) -{ - g_system_ptr->getProfiler()->getAddressProfiler()-> - profileGetS(datablock, PC, owner, sharers, requestor); -} diff --git a/src/mem/ruby/slicc_interface/RubySlicc_Profiler_interface.hh b/src/mem/ruby/slicc_interface/RubySlicc_Profiler_interface.hh deleted file mode 100644 index b84a01ee9..000000000 --- a/src/mem/ruby/slicc_interface/RubySlicc_Profiler_interface.hh +++ /dev/null @@ -1,58 +0,0 @@ -/* - * Copyright (c) 1999-2008 Mark D. Hill and David A. Wood - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are - * met: redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer; - * redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution; - * neither the name of the copyright holders nor the names of its - * contributors may be used to endorse or promote products derived from - * this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR - * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT - * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT - * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY - * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - -/* - * These are the functions that exported to slicc from ruby. - */ - -#ifndef __MEM_RUBY_SLICC_INTERFACE_RUBYSLICC_PROFILER_INTERFACE_HH__ -#define __MEM_RUBY_SLICC_INTERFACE_RUBYSLICC_PROFILER_INTERFACE_HH__ - -#include - -#include "mem/protocol/AccessType.hh" -#include "mem/ruby/common/Address.hh" -#include "mem/ruby/common/Global.hh" -#include "mem/ruby/profiler/Profiler.hh" - -class Set; - -void profile_sharing(const Address& addr, AccessType type, NodeID requestor, - const Set& sharers, const Set& owner); -void profile_miss(const RubyRequest& msg, NodeID id); -void profile_token_retry(const Address& addr, AccessType type, int count); -void profile_filter_action(int action); -void profile_persistent_prediction(const Address& addr, AccessType type); -void profile_average_latency_estimate(int latency); - -void profileGetX(const Address& datablock, const Address& PC, const Set& owner, - const Set& sharers, NodeID requestor); -void profileGetS(const Address& datablock, const Address& PC, const Set& owner, - const Set& sharers, NodeID requestor); - -#endif // __MEM_RUBY_SLICC_INTERFACE_RUBYSLICC_PROFILER_INTERFACE_HH__ diff --git a/src/mem/ruby/slicc_interface/RubySlicc_includes.hh b/src/mem/ruby/slicc_interface/RubySlicc_includes.hh index 6defbbaa8..3a8df919b 100644 --- a/src/mem/ruby/slicc_interface/RubySlicc_includes.hh +++ b/src/mem/ruby/slicc_interface/RubySlicc_includes.hh @@ -30,7 +30,6 @@ #define __MEM_RUBY_SLICC_INTERFACE_RUBYSLICC_INCLUDES_HH__ #include "mem/ruby/slicc_interface/RubySlicc_ComponentMapping.hh" -#include "mem/ruby/slicc_interface/RubySlicc_Profiler_interface.hh" #include "mem/ruby/slicc_interface/RubySlicc_Util.hh" #endif // __MEM_RUBY_SLICC_INTERFACE_RUBYSLICC_INCLUDES_HH__ diff --git a/src/mem/ruby/slicc_interface/SConscript b/src/mem/ruby/slicc_interface/SConscript index b51747b64..2d00fb7fe 100644 --- a/src/mem/ruby/slicc_interface/SConscript +++ b/src/mem/ruby/slicc_interface/SConscript @@ -39,4 +39,3 @@ Source('AbstractController.cc') Source('AbstractEntry.cc') Source('AbstractCacheEntry.cc') Source('RubyRequest.cc') -Source('RubySlicc_Profiler_interface.cc') -- 2.30.2