> 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. > > Brandon Potter wrote: > 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.
To follow the block_size parameter changes, I'd look at 9-12 definitely and perhaps 13 and 14. The key to understanding the changes is that the functions used in 12 are used alot. - 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