----------------------------------------------------------- This is an automatically generated e-mail. To reply, visit: http://reviews.gem5.org/r/3113/#review7192 -----------------------------------------------------------
src/cpu/testers/rubytest/Check.cc (line 204) <http://reviews.gem5.org/r/3113/#comment6083> This needs to be reverted to writeAddr. - Brandon Potter On Sept. 14, 2015, 11:58 p.m., Brandon Potter wrote: > > ----------------------------------------------------------- > This is an automatically generated e-mail. To reply, visit: > http://reviews.gem5.org/r/3113/ > ----------------------------------------------------------- > > (Updated Sept. 14, 2015, 11:58 p.m.) > > > Review request for Default. > > > Repository: gem5 > > > Description > ------- > > Changeset 11093:3c32e2cb1c87 > --------------------------- > ruby: allows multiple instances of ruby to be invoked > > This patch removes the restriction that there can only be a single ruby > system object in a given simulation. With the configuration supplied, it is > possible to run an instance of ruby with any of the supplied topologies. > > The problem centers around the use of globals and static class members in the > ruby source. Conceptually, this prohibits multi-instance simulations > since the ruby systems end up sharing values which should be distinct. (The > earliest manifestation of this problem occurs when important runtime > components use shared variables for MachineType sanity checks which will > trigger failures.) > > The idea behind the patch is to move as many as the statics/globals as > necessary into the ruby system object. The ruby system object acts as the > single point of reference for the child objects which needed the > globals/statics. With multi-instance runs, each ruby system object will > contain distinct values for the previous globals/statics. Unfortunately, this > requires passing the ruby system pointer throughout the object hierarchy and > may incur some minor performance overhead due to extra indirect references > through the ruby system object. > > > Diffs > ----- > > src/mem/protocol/MESI_Two_Level-L1cache.sm > 62e1504b9c6413aa03a2f7d7eee88c8ea45cfe00 > configs/common/Options.py 62e1504b9c6413aa03a2f7d7eee88c8ea45cfe00 > configs/example/multi-system-se.py PRE-CREATION > configs/ruby/Ruby.py 62e1504b9c6413aa03a2f7d7eee88c8ea45cfe00 > src/cpu/testers/rubytest/Check.cc 62e1504b9c6413aa03a2f7d7eee88c8ea45cfe00 > src/cpu/testers/rubytest/RubyTester.hh > 62e1504b9c6413aa03a2f7d7eee88c8ea45cfe00 > src/cpu/testers/rubytest/RubyTester.cc > 62e1504b9c6413aa03a2f7d7eee88c8ea45cfe00 > src/cpu/testers/rubytest/RubyTester.py > 62e1504b9c6413aa03a2f7d7eee88c8ea45cfe00 > src/mem/protocol/MESI_Three_Level-L0cache.sm > 62e1504b9c6413aa03a2f7d7eee88c8ea45cfe00 > src/mem/protocol/MESI_Three_Level-L1cache.sm > 62e1504b9c6413aa03a2f7d7eee88c8ea45cfe00 > src/mem/slicc/parser.py 62e1504b9c6413aa03a2f7d7eee88c8ea45cfe00 > src/mem/slicc/symbols/StateMachine.py > 62e1504b9c6413aa03a2f7d7eee88c8ea45cfe00 > src/mem/slicc/symbols/Type.py 62e1504b9c6413aa03a2f7d7eee88c8ea45cfe00 > src/python/swig/pyobject.cc 62e1504b9c6413aa03a2f7d7eee88c8ea45cfe00 > src/mem/ruby/system/RubySystem.cc 62e1504b9c6413aa03a2f7d7eee88c8ea45cfe00 > src/mem/ruby/system/Sequencer.hh 62e1504b9c6413aa03a2f7d7eee88c8ea45cfe00 > src/mem/ruby/structures/WireBuffer.py > 62e1504b9c6413aa03a2f7d7eee88c8ea45cfe00 > src/mem/ruby/system/CacheRecorder.hh > 62e1504b9c6413aa03a2f7d7eee88c8ea45cfe00 > src/mem/ruby/system/CacheRecorder.cc > 62e1504b9c6413aa03a2f7d7eee88c8ea45cfe00 > src/mem/ruby/system/DMASequencer.cc > 62e1504b9c6413aa03a2f7d7eee88c8ea45cfe00 > src/mem/ruby/system/RubyPort.hh 62e1504b9c6413aa03a2f7d7eee88c8ea45cfe00 > src/mem/ruby/system/RubyPort.cc 62e1504b9c6413aa03a2f7d7eee88c8ea45cfe00 > src/mem/ruby/system/RubySystem.hh PRE-CREATION > src/mem/ruby/structures/TBETable.hh > 62e1504b9c6413aa03a2f7d7eee88c8ea45cfe00 > src/mem/ruby/structures/TimerTable.hh > 62e1504b9c6413aa03a2f7d7eee88c8ea45cfe00 > src/mem/ruby/structures/TimerTable.cc > 62e1504b9c6413aa03a2f7d7eee88c8ea45cfe00 > src/mem/ruby/structures/WireBuffer.hh > 62e1504b9c6413aa03a2f7d7eee88c8ea45cfe00 > src/mem/protocol/MESI_Two_Level-L2cache.sm > 62e1504b9c6413aa03a2f7d7eee88c8ea45cfe00 > src/mem/protocol/MESI_Two_Level-dir.sm > 62e1504b9c6413aa03a2f7d7eee88c8ea45cfe00 > src/mem/protocol/MESI_Two_Level-dma.sm > 62e1504b9c6413aa03a2f7d7eee88c8ea45cfe00 > src/mem/protocol/MI_example-cache.sm > 62e1504b9c6413aa03a2f7d7eee88c8ea45cfe00 > src/mem/protocol/MI_example-dir.sm 62e1504b9c6413aa03a2f7d7eee88c8ea45cfe00 > src/mem/protocol/MI_example-dma.sm 62e1504b9c6413aa03a2f7d7eee88c8ea45cfe00 > src/mem/protocol/MOESI_CMP_directory-L1cache.sm > 62e1504b9c6413aa03a2f7d7eee88c8ea45cfe00 > src/mem/protocol/MOESI_CMP_directory-L2cache.sm > 62e1504b9c6413aa03a2f7d7eee88c8ea45cfe00 > src/mem/protocol/MOESI_CMP_directory-dir.sm > 62e1504b9c6413aa03a2f7d7eee88c8ea45cfe00 > src/mem/protocol/MOESI_CMP_directory-dma.sm > 62e1504b9c6413aa03a2f7d7eee88c8ea45cfe00 > src/mem/protocol/MOESI_CMP_token-L1cache.sm > 62e1504b9c6413aa03a2f7d7eee88c8ea45cfe00 > src/mem/protocol/MOESI_CMP_token-L2cache.sm > 62e1504b9c6413aa03a2f7d7eee88c8ea45cfe00 > src/mem/protocol/MOESI_CMP_token-dir.sm > 62e1504b9c6413aa03a2f7d7eee88c8ea45cfe00 > src/mem/protocol/MOESI_CMP_token-dma.sm > 62e1504b9c6413aa03a2f7d7eee88c8ea45cfe00 > src/mem/protocol/MOESI_hammer-cache.sm > 62e1504b9c6413aa03a2f7d7eee88c8ea45cfe00 > src/mem/protocol/MOESI_hammer-dir.sm > 62e1504b9c6413aa03a2f7d7eee88c8ea45cfe00 > src/mem/protocol/MOESI_hammer-dma.sm > 62e1504b9c6413aa03a2f7d7eee88c8ea45cfe00 > src/mem/protocol/Network_test-cache.sm > 62e1504b9c6413aa03a2f7d7eee88c8ea45cfe00 > src/mem/protocol/Network_test-dir.sm > 62e1504b9c6413aa03a2f7d7eee88c8ea45cfe00 > src/mem/protocol/RubySlicc_ComponentMapping.sm > 62e1504b9c6413aa03a2f7d7eee88c8ea45cfe00 > src/mem/protocol/RubySlicc_Defines.sm > 62e1504b9c6413aa03a2f7d7eee88c8ea45cfe00 > src/mem/protocol/RubySlicc_Exports.sm > 62e1504b9c6413aa03a2f7d7eee88c8ea45cfe00 > src/mem/protocol/RubySlicc_Types.sm > 62e1504b9c6413aa03a2f7d7eee88c8ea45cfe00 > src/mem/protocol/RubySlicc_Util.sm 62e1504b9c6413aa03a2f7d7eee88c8ea45cfe00 > src/mem/ruby/SConscript 62e1504b9c6413aa03a2f7d7eee88c8ea45cfe00 > src/mem/ruby/common/Address.hh 62e1504b9c6413aa03a2f7d7eee88c8ea45cfe00 > src/mem/ruby/common/Address.cc 62e1504b9c6413aa03a2f7d7eee88c8ea45cfe00 > src/mem/ruby/common/DataBlock.hh 62e1504b9c6413aa03a2f7d7eee88c8ea45cfe00 > src/mem/ruby/common/DataBlock.cc 62e1504b9c6413aa03a2f7d7eee88c8ea45cfe00 > src/mem/ruby/common/NetDest.hh 62e1504b9c6413aa03a2f7d7eee88c8ea45cfe00 > src/mem/ruby/common/NetDest.cc 62e1504b9c6413aa03a2f7d7eee88c8ea45cfe00 > src/mem/ruby/common/SubBlock.hh 62e1504b9c6413aa03a2f7d7eee88c8ea45cfe00 > src/mem/ruby/common/SubBlock.cc 62e1504b9c6413aa03a2f7d7eee88c8ea45cfe00 > src/mem/ruby/filters/AbstractBloomFilter.hh > 62e1504b9c6413aa03a2f7d7eee88c8ea45cfe00 > src/mem/ruby/filters/BlockBloomFilter.hh > 62e1504b9c6413aa03a2f7d7eee88c8ea45cfe00 > src/mem/ruby/filters/BlockBloomFilter.cc > 62e1504b9c6413aa03a2f7d7eee88c8ea45cfe00 > src/mem/ruby/filters/BulkBloomFilter.hh > 62e1504b9c6413aa03a2f7d7eee88c8ea45cfe00 > src/mem/ruby/filters/BulkBloomFilter.cc > 62e1504b9c6413aa03a2f7d7eee88c8ea45cfe00 > src/mem/ruby/filters/H3BloomFilter.cc > 62e1504b9c6413aa03a2f7d7eee88c8ea45cfe00 > src/mem/ruby/filters/LSB_CountingBloomFilter.cc > 62e1504b9c6413aa03a2f7d7eee88c8ea45cfe00 > src/mem/ruby/filters/MultiBitSelBloomFilter.cc > 62e1504b9c6413aa03a2f7d7eee88c8ea45cfe00 > src/mem/ruby/filters/MultiGrainBloomFilter.cc > 62e1504b9c6413aa03a2f7d7eee88c8ea45cfe00 > src/mem/ruby/filters/NonCountingBloomFilter.cc > 62e1504b9c6413aa03a2f7d7eee88c8ea45cfe00 > src/mem/ruby/network/BasicLink.hh 62e1504b9c6413aa03a2f7d7eee88c8ea45cfe00 > src/mem/ruby/network/BasicLink.cc 62e1504b9c6413aa03a2f7d7eee88c8ea45cfe00 > src/mem/ruby/network/BasicLink.py 62e1504b9c6413aa03a2f7d7eee88c8ea45cfe00 > src/mem/ruby/network/BasicRouter.hh > 62e1504b9c6413aa03a2f7d7eee88c8ea45cfe00 > src/mem/ruby/network/BasicRouter.cc > 62e1504b9c6413aa03a2f7d7eee88c8ea45cfe00 > src/mem/ruby/network/BasicRouter.py > 62e1504b9c6413aa03a2f7d7eee88c8ea45cfe00 > src/mem/ruby/network/MessageBuffer.hh > 62e1504b9c6413aa03a2f7d7eee88c8ea45cfe00 > src/mem/ruby/network/MessageBuffer.cc > 62e1504b9c6413aa03a2f7d7eee88c8ea45cfe00 > src/mem/ruby/network/MessageBuffer.py > 62e1504b9c6413aa03a2f7d7eee88c8ea45cfe00 > src/mem/ruby/network/Network.hh 62e1504b9c6413aa03a2f7d7eee88c8ea45cfe00 > src/mem/ruby/network/Network.cc 62e1504b9c6413aa03a2f7d7eee88c8ea45cfe00 > src/mem/ruby/network/Network.py 62e1504b9c6413aa03a2f7d7eee88c8ea45cfe00 > src/mem/ruby/network/Topology.hh 62e1504b9c6413aa03a2f7d7eee88c8ea45cfe00 > src/mem/ruby/network/Topology.cc 62e1504b9c6413aa03a2f7d7eee88c8ea45cfe00 > src/mem/ruby/network/fault_model/FaultModel.hh > 62e1504b9c6413aa03a2f7d7eee88c8ea45cfe00 > src/mem/ruby/network/fault_model/FaultModel.cc > 62e1504b9c6413aa03a2f7d7eee88c8ea45cfe00 > src/mem/ruby/network/fault_model/FaultModel.py > 62e1504b9c6413aa03a2f7d7eee88c8ea45cfe00 > src/mem/ruby/network/garnet/fixed-pipeline/NetworkInterface_d.cc > 62e1504b9c6413aa03a2f7d7eee88c8ea45cfe00 > src/mem/ruby/network/garnet/flexible-pipeline/NetworkInterface.cc > 62e1504b9c6413aa03a2f7d7eee88c8ea45cfe00 > src/mem/ruby/profiler/AddressProfiler.cc > 62e1504b9c6413aa03a2f7d7eee88c8ea45cfe00 > src/mem/ruby/profiler/Profiler.hh 62e1504b9c6413aa03a2f7d7eee88c8ea45cfe00 > src/mem/ruby/slicc_interface/AbstractController.hh > 62e1504b9c6413aa03a2f7d7eee88c8ea45cfe00 > src/mem/ruby/slicc_interface/AbstractController.cc > 62e1504b9c6413aa03a2f7d7eee88c8ea45cfe00 > src/mem/ruby/slicc_interface/Controller.py > 62e1504b9c6413aa03a2f7d7eee88c8ea45cfe00 > src/mem/ruby/slicc_interface/Message.hh > 62e1504b9c6413aa03a2f7d7eee88c8ea45cfe00 > src/mem/ruby/slicc_interface/RubyRequest.hh > 62e1504b9c6413aa03a2f7d7eee88c8ea45cfe00 > src/mem/ruby/slicc_interface/RubySlicc_ComponentMapping.hh > 62e1504b9c6413aa03a2f7d7eee88c8ea45cfe00 > src/mem/ruby/slicc_interface/RubySlicc_Util.hh > 62e1504b9c6413aa03a2f7d7eee88c8ea45cfe00 > src/mem/ruby/structures/CacheMemory.hh > 62e1504b9c6413aa03a2f7d7eee88c8ea45cfe00 > src/mem/ruby/structures/CacheMemory.cc > 62e1504b9c6413aa03a2f7d7eee88c8ea45cfe00 > src/mem/ruby/structures/DirectoryMemory.hh > 62e1504b9c6413aa03a2f7d7eee88c8ea45cfe00 > src/mem/ruby/structures/DirectoryMemory.cc > 62e1504b9c6413aa03a2f7d7eee88c8ea45cfe00 > src/mem/ruby/structures/DirectoryMemory.py > 62e1504b9c6413aa03a2f7d7eee88c8ea45cfe00 > src/mem/ruby/structures/PerfectCacheMemory.hh > 62e1504b9c6413aa03a2f7d7eee88c8ea45cfe00 > src/mem/ruby/structures/PersistentTable.hh > 62e1504b9c6413aa03a2f7d7eee88c8ea45cfe00 > src/mem/ruby/structures/PersistentTable.cc > 62e1504b9c6413aa03a2f7d7eee88c8ea45cfe00 > src/mem/ruby/structures/Prefetcher.hh > 62e1504b9c6413aa03a2f7d7eee88c8ea45cfe00 > src/mem/ruby/structures/Prefetcher.cc > 62e1504b9c6413aa03a2f7d7eee88c8ea45cfe00 > src/mem/ruby/structures/RubyCache.py > 62e1504b9c6413aa03a2f7d7eee88c8ea45cfe00 > src/mem/ruby/structures/RubyMemoryControl.hh > 62e1504b9c6413aa03a2f7d7eee88c8ea45cfe00 > src/mem/ruby/structures/RubyMemoryControl.cc > 62e1504b9c6413aa03a2f7d7eee88c8ea45cfe00 > src/mem/ruby/structures/RubyMemoryControl.py > 62e1504b9c6413aa03a2f7d7eee88c8ea45cfe00 > src/mem/ruby/structures/RubyPrefetcher.py > 62e1504b9c6413aa03a2f7d7eee88c8ea45cfe00 > src/mem/ruby/system/Sequencer.cc 62e1504b9c6413aa03a2f7d7eee88c8ea45cfe00 > src/mem/ruby/system/Sequencer.py 62e1504b9c6413aa03a2f7d7eee88c8ea45cfe00 > src/mem/slicc/ast/EnqueueStatementAST.py > 62e1504b9c6413aa03a2f7d7eee88c8ea45cfe00 > src/mem/slicc/ast/NewExprAST.py 62e1504b9c6413aa03a2f7d7eee88c8ea45cfe00 > src/mem/slicc/ast/ObjDeclAST.py 62e1504b9c6413aa03a2f7d7eee88c8ea45cfe00 > > Diff: http://reviews.gem5.org/r/3113/diff/ > > > Testing > ------- > > gem5/util/regress (to check builds) and custom tests (which use the new > configuration) > > > Thanks, > > Brandon Potter > > _______________________________________________ gem5-dev mailing list [email protected] http://m5sim.org/mailman/listinfo/gem5-dev
