-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
http://reviews.m5sim.org/r/328/#review839
-----------------------------------------------------------


Overall, this looks great.  A pretty simple change that offers significant 
speedup.  I just have one question about the parameters to storeEventInfo.


src/mem/ruby/buffers/MessageBuffer.cc
<http://reviews.m5sim.org/r/328/#comment1196>

    Is there a reason why you want to pass the message pointer instead of just 
the vnet id?



src/mem/ruby/network/simple/PerfectSwitch.cc
<http://reviews.m5sim.org/r/328/#comment1197>

    It seems that you could remove the safe_cast and message pointer 
dereference if you passed in the vnet id as the first parameter.  Am I missing 
something?


- Brad


On 2011-02-05 12:47:34, Nilay Vaish wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> http://reviews.m5sim.org/r/328/
> -----------------------------------------------------------
> 
> (Updated 2011-02-05 12:47:34)
> 
> 
> Review request for Default.
> 
> 
> Summary
> -------
> 
> Currently the wakeup function for the PerfectSwitch contains three loops -
> 
> loop on number of virtual networks
>   loop on number of incoming links
>     loop till all messages for this (link, network) have been routed
> 
> With an 8 processor mesh network and Hammer protocol, about 11-12% of the 
> was observed to have been spent in this function, which is the highest 
> amongst all the functions. It was found that the innermost loop is executed 
> about 45 times per invocation of the wakeup function, when each invocation 
> of the wakeup function processes just about one message.
> 
> The patch tries to do away with the redundant executions of the innermost 
> loop. Counters have been added for each virtual network that record the 
> number of messages that need to be routed for that virtual network. The 
> inner loops are only executed when the number of messages for that particular 
> virtual network > 0. This does away with almost 80% of the executions of the 
> innermost loop. The function now consumes about 5-6% of the total execution 
> time.
> 
> 
> Diffs
> -----
> 
>   src/mem/ruby/buffers/MessageBuffer.hh UNKNOWN 
>   src/mem/ruby/buffers/MessageBuffer.cc UNKNOWN 
>   src/mem/ruby/common/Consumer.hh UNKNOWN 
>   src/mem/ruby/network/simple/PerfectSwitch.hh UNKNOWN 
>   src/mem/ruby/network/simple/PerfectSwitch.cc UNKNOWN 
>   src/mem/ruby/slicc_interface/Message.hh UNKNOWN 
>   src/mem/ruby/slicc_interface/NetworkMessage.hh UNKNOWN 
> 
> Diff: http://reviews.m5sim.org/r/328/diff
> 
> 
> Testing
> -------
> 
> 
> Thanks,
> 
> Nilay
> 
>

_______________________________________________
m5-dev mailing list
[email protected]
http://m5sim.org/mailman/listinfo/m5-dev

Reply via email to