> On April 11, 2016, 9:02 p.m., Jason Lowe-Power wrote:
> > src/mem/ruby/common/Address.cc, line 107
> > <http://reviews.gem5.org/r/3424/diff/1/?file=54449#file54449line107>
> >
> >     I think the solution to cleaning up these patches is to make these 
> > functions members of RubySystem (instance functions). There's no reason 
> > these functions should be static like this.
> >     
> >     Then, you only have to modify the places where these functions are 
> > called to use the ruby_system pointer that's already in most functions. 
> >     
> >     Maybe I'm wrong, and maybe it's actually worse this way. What do you 
> > think?

If you make these functions members of the RubySystem object, you run into the 
issue where you need to pass the RubySystem handle to issue the invocation. 
__RubySystem isn't available in alot of the generated code that deals with 
dynamically created objects (Table\<ENTRY>, DataBlk, WriteMask).__ These 
objects use the Addr functions: getOffset, makeLineAddress, etc..

It ends up being the same problem where the RubySystem gets passed to all of 
these dynamically created object so that the Addr functions can be called. I 
agree that it's not the most beautiful solution, but IMO it's better to pass 
the block size instead of passing a RubySystem pointer everywhere to make the 
block size available.

Let me know if you disagree; I'm open to further suggestions.


- Brandon


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


On April 4, 2016, 11:40 p.m., Brandon Potter wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> http://reviews.gem5.org/r/3424/
> -----------------------------------------------------------
> 
> (Updated April 4, 2016, 11:40 p.m.)
> 
> 
> Review request for Default.
> 
> 
> Repository: gem5
> 
> 
> Description
> -------
> 
> Changeset 11426:065361f6fd53
> ---------------------------
> ruby: add parameters to functions related to addresses
> 
> The four functions related to addresses that require knowing the block
> size are printAddress, getOffset, makeNextStrideAddress, and
> makeLineAddress.
> 
> The block size is added to the function signature and is passed into the
> constructors in this patch.
> 
> 
> Diffs
> -----
> 
>   src/mem/ruby/structures/TBETable.hh 
> cfad34a15729e1d5e096245f5a80ded6e2c379ca 
>   src/mem/ruby/structures/TimerTable.cc 
> cfad34a15729e1d5e096245f5a80ded6e2c379ca 
>   src/mem/ruby/system/DMASequencer.cc 
> cfad34a15729e1d5e096245f5a80ded6e2c379ca 
>   src/mem/ruby/system/GPUCoalescer.cc 
> cfad34a15729e1d5e096245f5a80ded6e2c379ca 
>   src/mem/ruby/system/RubyPort.cc cfad34a15729e1d5e096245f5a80ded6e2c379ca 
>   src/mem/ruby/system/RubySystem.cc cfad34a15729e1d5e096245f5a80ded6e2c379ca 
>   src/mem/ruby/system/Sequencer.cc cfad34a15729e1d5e096245f5a80ded6e2c379ca 
>   src/mem/slicc/symbols/StateMachine.py 
> cfad34a15729e1d5e096245f5a80ded6e2c379ca 
>   src/mem/slicc/symbols/Type.py cfad34a15729e1d5e096245f5a80ded6e2c379ca 
>   src/mem/ruby/slicc_interface/RubySlicc_Util.hh 
> cfad34a15729e1d5e096245f5a80ded6e2c379ca 
>   src/mem/ruby/structures/CacheMemory.cc 
> cfad34a15729e1d5e096245f5a80ded6e2c379ca 
>   src/mem/ruby/structures/PerfectCacheMemory.hh 
> cfad34a15729e1d5e096245f5a80ded6e2c379ca 
>   src/mem/ruby/structures/PersistentTable.cc 
> cfad34a15729e1d5e096245f5a80ded6e2c379ca 
>   src/mem/ruby/structures/Prefetcher.cc 
> cfad34a15729e1d5e096245f5a80ded6e2c379ca 
>   src/mem/protocol/MOESI_CMP_directory-dma.sm 
> cfad34a15729e1d5e096245f5a80ded6e2c379ca 
>   src/mem/protocol/MOESI_CMP_token-dir.sm 
> cfad34a15729e1d5e096245f5a80ded6e2c379ca 
>   src/mem/protocol/RubySlicc_Util.sm cfad34a15729e1d5e096245f5a80ded6e2c379ca 
>   src/mem/ruby/common/Address.hh cfad34a15729e1d5e096245f5a80ded6e2c379ca 
>   src/mem/ruby/common/Address.cc cfad34a15729e1d5e096245f5a80ded6e2c379ca 
>   src/mem/ruby/filters/H3BloomFilter.cc 
> cfad34a15729e1d5e096245f5a80ded6e2c379ca 
>   src/mem/ruby/filters/MultiBitSelBloomFilter.cc 
> cfad34a15729e1d5e096245f5a80ded6e2c379ca 
>   src/mem/ruby/network/MessageBuffer.cc 
> cfad34a15729e1d5e096245f5a80ded6e2c379ca 
>   src/mem/ruby/profiler/AddressProfiler.cc 
> cfad34a15729e1d5e096245f5a80ded6e2c379ca 
>   src/mem/ruby/slicc_interface/AbstractController.cc 
> cfad34a15729e1d5e096245f5a80ded6e2c379ca 
>   src/mem/ruby/slicc_interface/RubyRequest.hh 
> cfad34a15729e1d5e096245f5a80ded6e2c379ca 
>   src/cpu/testers/rubytest/RubyTester.hh 
> cfad34a15729e1d5e096245f5a80ded6e2c379ca 
>   src/mem/protocol/MESI_Two_Level-dir.sm 
> cfad34a15729e1d5e096245f5a80ded6e2c379ca 
>   src/mem/protocol/MESI_Two_Level-dma.sm 
> cfad34a15729e1d5e096245f5a80ded6e2c379ca 
>   src/mem/protocol/MOESI_AMD_Base-RegionBuffer.sm 
> cfad34a15729e1d5e096245f5a80ded6e2c379ca 
>   src/mem/protocol/MOESI_AMD_Base-RegionDir.sm 
> cfad34a15729e1d5e096245f5a80ded6e2c379ca 
>   src/mem/protocol/MOESI_CMP_directory-dir.sm 
> cfad34a15729e1d5e096245f5a80ded6e2c379ca 
>   src/cpu/testers/rubytest/Check.cc cfad34a15729e1d5e096245f5a80ded6e2c379ca 
> 
> Diff: http://reviews.gem5.org/r/3424/diff/
> 
> 
> Testing
> -------
> 
> 
> Thanks,
> 
> Brandon Potter
> 
>

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

Reply via email to