> On April 11, 2016, 8:51 p.m., Jason Lowe-Power wrote:
> > Could you point out where this parameter is used? I'm having a hard time 
> > finding it in this patch.
> > 
> > Without seeing where the parameter is used, I feel like there has to be a 
> > better way! Surely we can find a way to modify the few places this 
> > information is needed rather than changing every file.
> 
> Jason Lowe-Power wrote:
>     Seems I jumped the gun here. This, /r/3423 and /r/3424 will be combined? 
> To double check that I understand, the reason this is needed is for 
> makeLineAddress, etc? Could you provide a list of these functions?
>     
>     Maybe we should take this off reviewboard. Could you send an email with 
> the underlying reason you need to pass this new parameter around everywhere. 
> Since it's split across so many patches, I'm having a hard time following.
>     
>     I really don't like the idea of passing around this parameter everywhere. 
> I'd like to understand better the problem so I can try my hand at a cleaner 
> solution.

Right, I broke the patches apart so that it was easier to isolate the changes. 
The goal was to split the patches so that they compile/run seperately while 
maintaining some distinction between them; this is especially true for the 
block size patches which amount to thousands of patch lines if they're all 
combined.

The total ordering of all of the Ruby patches is as follows:
1)  http://reviews.gem5.org/r/3413/ - DPRINTF newline
2)  http://reviews.gem5.org/r/3414/ - unnecessary !!
3)  http://reviews.gem5.org/r/3415/ - #ifdef 0 removal
4)  http://reviews.gem5.org/r/3416/ - intermediate TBE transitions 
_(MESI_{Three,Two}_Level, MOESI_CMP_directory, MOESI_hammer)_
5)  http://reviews.gem5.org/r/3417/ - for TBETable, use ENTRY* instead of Entry
6)  http://reviews.gem5.org/r/3418/ - SLICC pointer naming convention change
7)  http://reviews.gem5.org/r/3419/ - SubBlock removal
8)  http://reviews.gem5.org/r/3420/ - filter's parameter list change (string -> 
types)
9)  http://reviews.gem5.org/r/3421/ - preliminary addition of 
block_size_{bits,bytes} to objects
10) http://reviews.gem5.org/r/3422/ - functional read/write parameter changes
11) http://reviews.gem5.org/r/3423/ - add block_size_bits to testAnd* functions
12) http://reviews.gem5.org/r/3424/ - add block_size_{bytes, bits} to the 
address functions
13) http://reviews.gem5.org/r/3425/ - write mask initialization
14) http://reviews.gem5.org/r/3426/ - data block initialization
15) http://reviews.gem5.org/r/3427/ - SLICC grammer addition (new w/ 
constructor for _new ENTRY(block_size)_)
16) http://reviews.gem5.org/r/3428/ - pass block_size into ENTRY constructors
17) http://reviews.gem5.org/r/3429/ - change PerfectCache to use ENTRY* instead 
of ENTRY
18) http://reviews.gem5.org/r/3430/ - remove RubySystem static for block_size
19) http://reviews.gem5.org/r/3431/ - convert global stats variables to locals
20) http://reviews.gem5.org/r/3432/ - add helper method for stats printing
21) http://reviews.gem5.org/r/3433/ - component mapping changes
22) http://reviews.gem5.org/r/3434/ - remove unused L3Cntrl in Python files
23) http://reviews.gem5.org/r/3435/ - consolidate CntrlBase definitions and add 
clear method to CntrlBase
24) http://reviews.gem5.org/r/3436/ - topology - avoid Machine* functions
25) http://reviews.gem5.org/r/3437/ - network/netdest - avoid Machine* functions
26) http://reviews.gem5.org/r/3438/ - allows used of uninitialized sets for 
NetDest
27) http://reviews.gem5.org/r/3439/ - Packet* to PacketPtr change
28) http://reviews.gem5.org/r/3440/ - add L0 machine type to machine type 
enumeration class (for MESI_Three_Level)
29) http://reviews.gem5.org/r/3441/ - MESI_Three_Level - make the L0 cache 
visible to the Ruby network
30) http://reviews.gem5.org/r/3442/ - add scripts to invoke multi-instance and 
left-over miscellaneous fixes
31) http://reviews.gem5.org/r/3443/ - garnet fixed model bug fix

The block size related changes are from 9-18. With patches 9-12, I add in 
block_size parameters in a structured way that doesn't prevent 
compilation/running. It should also help readability tremendously; the 
alternative is to have them put into a single patch which might be hard to 
understand.


- Brandon


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


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/3422/
> -----------------------------------------------------------
> 
> (Updated April 4, 2016, 11:40 p.m.)
> 
> 
> Review request for Default.
> 
> 
> Repository: gem5
> 
> 
> Description
> -------
> 
> Changeset 11424:6901103f7f04
> ---------------------------
> ruby: change function signature for functional_read/write
> 
> The functional_read and function_write functions within Ruby will
> occasionally use methods which rely on knowing the block size so we add
> the block size as a parameter.
> 
> To avoid special casing large sections of the SLICC code, we propagate the
> change to all instances of these functions (even when the parameter is
> not used).
> 
> 
> Diffs
> -----
> 
>   src/mem/ruby/slicc_interface/Message.hh 
> cfad34a15729e1d5e096245f5a80ded6e2c379ca 
>   src/mem/ruby/slicc_interface/RubyRequest.hh 
> cfad34a15729e1d5e096245f5a80ded6e2c379ca 
>   src/mem/ruby/slicc_interface/RubyRequest.cc 
> cfad34a15729e1d5e096245f5a80ded6e2c379ca 
>   src/mem/ruby/system/RubySystem.cc cfad34a15729e1d5e096245f5a80ded6e2c379ca 
>   src/mem/slicc/symbols/StateMachine.py 
> cfad34a15729e1d5e096245f5a80ded6e2c379ca 
>   src/mem/ruby/network/garnet/flexible-pipeline/flitBuffer.hh 
> cfad34a15729e1d5e096245f5a80ded6e2c379ca 
>   src/mem/ruby/network/garnet/flexible-pipeline/flitBuffer.cc 
> cfad34a15729e1d5e096245f5a80ded6e2c379ca 
>   src/mem/ruby/network/simple/SimpleNetwork.hh 
> cfad34a15729e1d5e096245f5a80ded6e2c379ca 
>   src/mem/ruby/network/simple/SimpleNetwork.cc 
> cfad34a15729e1d5e096245f5a80ded6e2c379ca 
>   src/mem/ruby/network/simple/Switch.hh 
> cfad34a15729e1d5e096245f5a80ded6e2c379ca 
>   src/mem/ruby/network/simple/Switch.cc 
> cfad34a15729e1d5e096245f5a80ded6e2c379ca 
>   src/mem/ruby/network/garnet/fixed-pipeline/flit_d.cc 
> cfad34a15729e1d5e096245f5a80ded6e2c379ca 
>   src/mem/ruby/network/garnet/flexible-pipeline/GarnetNetwork.hh 
> cfad34a15729e1d5e096245f5a80ded6e2c379ca 
>   src/mem/ruby/network/garnet/flexible-pipeline/GarnetNetwork.cc 
> cfad34a15729e1d5e096245f5a80ded6e2c379ca 
>   src/mem/ruby/network/garnet/flexible-pipeline/NetworkInterface.hh 
> cfad34a15729e1d5e096245f5a80ded6e2c379ca 
>   src/mem/ruby/network/garnet/flexible-pipeline/NetworkInterface.cc 
> cfad34a15729e1d5e096245f5a80ded6e2c379ca 
>   src/mem/ruby/network/garnet/flexible-pipeline/NetworkLink.hh 
> cfad34a15729e1d5e096245f5a80ded6e2c379ca 
>   src/mem/ruby/network/garnet/flexible-pipeline/NetworkLink.cc 
> cfad34a15729e1d5e096245f5a80ded6e2c379ca 
>   src/mem/ruby/network/garnet/flexible-pipeline/Router.hh 
> cfad34a15729e1d5e096245f5a80ded6e2c379ca 
>   src/mem/ruby/network/garnet/flexible-pipeline/Router.cc 
> cfad34a15729e1d5e096245f5a80ded6e2c379ca 
>   src/mem/ruby/network/garnet/flexible-pipeline/flit.hh 
> cfad34a15729e1d5e096245f5a80ded6e2c379ca 
>   src/mem/ruby/network/garnet/flexible-pipeline/flit.cc 
> cfad34a15729e1d5e096245f5a80ded6e2c379ca 
>   src/mem/ruby/network/garnet/fixed-pipeline/VirtualChannel_d.hh 
> cfad34a15729e1d5e096245f5a80ded6e2c379ca 
>   src/mem/ruby/network/garnet/fixed-pipeline/VirtualChannel_d.cc 
> cfad34a15729e1d5e096245f5a80ded6e2c379ca 
>   src/mem/ruby/network/garnet/fixed-pipeline/flitBuffer_d.hh 
> cfad34a15729e1d5e096245f5a80ded6e2c379ca 
>   src/mem/ruby/network/garnet/fixed-pipeline/flitBuffer_d.cc 
> cfad34a15729e1d5e096245f5a80ded6e2c379ca 
>   src/mem/ruby/network/garnet/fixed-pipeline/flit_d.hh 
> cfad34a15729e1d5e096245f5a80ded6e2c379ca 
>   src/mem/ruby/network/garnet/fixed-pipeline/OutputUnit_d.cc 
> cfad34a15729e1d5e096245f5a80ded6e2c379ca 
>   src/mem/ruby/network/garnet/fixed-pipeline/Router_d.hh 
> cfad34a15729e1d5e096245f5a80ded6e2c379ca 
>   src/mem/ruby/network/garnet/fixed-pipeline/Router_d.cc 
> cfad34a15729e1d5e096245f5a80ded6e2c379ca 
>   src/mem/ruby/network/garnet/fixed-pipeline/Switch_d.hh 
> cfad34a15729e1d5e096245f5a80ded6e2c379ca 
>   src/mem/ruby/network/garnet/fixed-pipeline/Switch_d.cc 
> cfad34a15729e1d5e096245f5a80ded6e2c379ca 
>   src/mem/ruby/network/garnet/fixed-pipeline/NetworkInterface_d.hh 
> cfad34a15729e1d5e096245f5a80ded6e2c379ca 
>   src/mem/ruby/network/garnet/fixed-pipeline/NetworkInterface_d.cc 
> cfad34a15729e1d5e096245f5a80ded6e2c379ca 
>   src/mem/ruby/network/garnet/fixed-pipeline/NetworkLink_d.hh 
> cfad34a15729e1d5e096245f5a80ded6e2c379ca 
>   src/mem/ruby/network/garnet/fixed-pipeline/NetworkLink_d.cc 
> cfad34a15729e1d5e096245f5a80ded6e2c379ca 
>   src/mem/ruby/network/garnet/fixed-pipeline/OutputUnit_d.hh 
> cfad34a15729e1d5e096245f5a80ded6e2c379ca 
>   src/mem/ruby/network/garnet/fixed-pipeline/InputUnit_d.cc 
> cfad34a15729e1d5e096245f5a80ded6e2c379ca 
>   src/mem/protocol/MESI_Three_Level-msg.sm 
> cfad34a15729e1d5e096245f5a80ded6e2c379ca 
>   src/mem/protocol/MESI_Two_Level-msg.sm 
> cfad34a15729e1d5e096245f5a80ded6e2c379ca 
>   src/mem/protocol/MI_example-msg.sm cfad34a15729e1d5e096245f5a80ded6e2c379ca 
>   src/mem/protocol/MOESI_AMD_Base-Region-msg.sm 
> cfad34a15729e1d5e096245f5a80ded6e2c379ca 
>   src/mem/protocol/MOESI_AMD_Base-msg.sm 
> cfad34a15729e1d5e096245f5a80ded6e2c379ca 
>   src/mem/protocol/MOESI_CMP_directory-msg.sm 
> cfad34a15729e1d5e096245f5a80ded6e2c379ca 
>   src/mem/protocol/MOESI_CMP_token-msg.sm 
> cfad34a15729e1d5e096245f5a80ded6e2c379ca 
>   src/mem/protocol/MOESI_hammer-msg.sm 
> cfad34a15729e1d5e096245f5a80ded6e2c379ca 
>   src/mem/protocol/Network_test-msg.sm 
> cfad34a15729e1d5e096245f5a80ded6e2c379ca 
>   src/mem/protocol/RubySlicc_Exports.sm 
> cfad34a15729e1d5e096245f5a80ded6e2c379ca 
>   src/mem/protocol/RubySlicc_MemControl.sm 
> cfad34a15729e1d5e096245f5a80ded6e2c379ca 
>   src/mem/ruby/network/MessageBuffer.hh 
> cfad34a15729e1d5e096245f5a80ded6e2c379ca 
>   src/mem/ruby/network/MessageBuffer.cc 
> cfad34a15729e1d5e096245f5a80ded6e2c379ca 
>   src/mem/ruby/network/Network.hh cfad34a15729e1d5e096245f5a80ded6e2c379ca 
>   src/mem/ruby/network/garnet/fixed-pipeline/GarnetNetwork_d.hh 
> cfad34a15729e1d5e096245f5a80ded6e2c379ca 
>   src/mem/ruby/network/garnet/fixed-pipeline/GarnetNetwork_d.cc 
> cfad34a15729e1d5e096245f5a80ded6e2c379ca 
>   src/mem/ruby/network/garnet/fixed-pipeline/InputUnit_d.hh 
> cfad34a15729e1d5e096245f5a80ded6e2c379ca 
> 
> Diff: http://reviews.gem5.org/r/3422/diff/
> 
> 
> Testing
> -------
> 
> 
> Thanks,
> 
> Brandon Potter
> 
>

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

Reply via email to