On Mon, 1 Oct 2012, Beckmann, Brad wrote:



-----Original Message-----
From: Nilay Vaish [mailto:[email protected]]
Sent: Sunday, September 30, 2012 3:03 PM
To: Beckmann, Brad
Cc: Default
Subject: RE: Review Request: ruby: augment network to support functional
accesses

On Fri, 28 Sep 2012, Beckmann, Brad wrote:

I am assuming that only other buffers are the ones in the
cache/directory/dma/ controllers. A separate call is made to
functionally access these buffers.


As you already know, I'm in favor of just creating a list of message
buffers by modifying the MessageBuffer constructor.  After seeing
the number of files you had to change with this existing patch, I'm
further convinced that is the better approach.  This current patch
seems quite hackish, and adding this support to Garnet is only going to
be uglier.
What can I do to convince you that the MessageBuffer approach is
better?
Or in other words, can you explain exactly what you don't like about
the MessageBuffer approach?


I think that going via network is better. Firstly, the list that
would need to be created for accessing the buffers in the memory
system, already exists as part of the network hierarchy we have.
Secondly, it seems to that it would easier to debug if traverse the
network in a structured manner rather than traversing a flat list.


How is traversing the network plus calling all controllers to update
their message buffers easier than just creating a flat list?
Precedence in the simulator is that creating a flat list is better.
For example, to drain the system, the flat list of SimObjects is
traversed, not the configuration graph.


I would be surprised if that is the case. I certainly would not create a
new structure when one already exists, unless the new structure allows for
some operation that could not have been possible otherwise.

--
Nilay

But the structure doesn't already exist...that's my point. We only have the network structure, which is a graph data structure of a whole bunch of things, including *some* MessageBuffers. Other MessgeBuffers are embedded within the controllers and are inaccessible by the network. Overall, you have to deal with a bunch of complicated data structures with this strategy. Meanwhile the flat list of MessageBuffers is simple.


Brad, I think we are getting into a needless debate. If you want, you can change it later to a flat list. There are greater issues that need to be tackled before this patch is making it to the repo.

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

Reply via email to