Thanks Tushar! Jinzhu
On Tue, Aug 28, 2012 at 3:15 PM, Tushar Krishna <tus...@csail.mit.edu>wrote: > Hmmm the ruby_network_tester is supposed to be used only with the > NetworkTest coherence protocol … > Not sure how it interacts with other protocols. > With Hammer, I would suggest using ruby_random_test > > Don't know how controllers work with multiple input links. I think they > should work fine. > In any case, if you get deadlocks, look at the protocol trace to figure > out what went wrong… > > - Tushar > > > On Aug 28, 2012, at 3:38 AM, gem5 gem5 wrote: > > Actually Pt2Pt will also have a deadlock if the sim cycles are that > many..... > > On Tue, Aug 28, 2012 at 1:57 AM, gem5 gem5 <gem5.user....@gmail.com>wrote: > >> Hi Tushar, >> >> I wonder if all the nodes(controllers) need to have a router before them. >> This is what I have seen for all the topologies created in GEM5. I have >> tried topology like the one I attach here. If I run it with >> ruby_network_tester for simple network with Hammer protocol for 1000000000 >> sim-cycles. I will have deadlock. But if I run the same for Pt2Pt in GEM5 >> for example, then there is no deadlock. Do you think because controllers do >> not know how to handle multiple input links well? or there are some other >> reasons. Please help me figure it out. Thank you very much! >> >> Best, >> >> Jinzhu >> >> On Thu, Aug 23, 2012 at 10:07 PM, gem5 gem5 <gem5.user....@gmail.com>wrote: >> >>> Thank you very much, Tushar:) >>> >>> Best, >>> >>> Jinzhu >>> >>> >>> On Wed, Aug 22, 2012 at 12:24 AM, Tushar Krishna >>> <tus...@csail.mit.edu>wrote: >>> >>>> Hi Jinzhu, >>>> Do the orange routers guarantee that the message is delivered out of >>>> all output links simultaneously? >>>> I think something like the following could be the problem: >>>> Suppose Core B and Core C are sharing a line. >>>> Core A does a broadcast for GETX. At the orange routers, suppose it >>>> reaches Core B and Core C, but not Core D since that output link is busy >>>> and/or no free buffer at Core D. >>>> Now Core B looks at this message and invalidates its copy. Now it sends >>>> out a GETX. >>>> Suppose Core D receives this GETX (via Core B's orange router) before >>>> the older GETX from Core A (still stuck in Core A's router for some >>>> reason). >>>> This will violate ordering (because other cores saw Core A's broadcast >>>> before Core B's). >>>> >>>> (1) since the orange routers are modeling a "bus", any message being >>>> broadcast should wait till ALL output links are free and then be sent out >>>> of all output links simultaneously. >>>> (2) after that the blue routers should guarantee a FIFO ordering (to >>>> ensure that messages received from two different "buses" don't get >>>> reordered) when delivering messages to the core. >>>> >>>> I *think* (though you should check) that (2) is guaranteed >>>> automatically in the code since the input queues are implemented as >>>> MessageBuffers which order messages according to time of receipt, but I >>>> know (1) is not guaranteed by default in the simple router. >>>> See if that solves your issue. >>>> While a stronger condition of latency between two nodes always being >>>> the same will definitely solve your problem, I think a weaker condition of >>>> ensuring that ALL the blue routers receive messages from different buses in >>>> the same order should be the constraint. >>>> >>>> - Tushar >>>> >>>> >>>> On Aug 21, 2012, at 5:30 PM, gem5 gem5 wrote: >>>> >>>> Tushar, >>>> >>>> All the links used in my topology are single directional. The >>>> connection is as the attached image. It's Single writer multiple reader and >>>> I think this topology should be able to guarantee that certain messages >>>> only go on certain buses. >>>> >>>> I am thinking the problem is that the total order is achieved only when >>>> the latency between any two nodes is always the same, but the throttle link >>>> creates lots of delays(some messages got sent much later) so latency is not >>>> always the same.....And maybe I should also create one MessageBuffer/queue >>>> for every bus in the controller instead of just one MessageBuffer for one >>>> vnet. Then I can read messages from all the messagebuffer round robin. Is >>>> the simple network modeled cycle accurate? Any suggestions? Thank you very >>>> much! >>>> >>>> Best, >>>> Jinzhu >>>> >>>> On Mon, Aug 20, 2012 at 1:14 AM, Tushar Krishna >>>> <tus...@csail.mit.edu>wrote: >>>> >>>>> Hi Jinzhu, >>>>> While it is true that the a garnet router is more accurate than the >>>>> PerfectSwitch as it models contention in a detailed manner, I don't think >>>>> your problem has anything to do with that. >>>>> I think you should track messages through each router and see >>>>> why/where 2 messages from the same source get re-ordered. >>>>> >>>>> I am wondering if the problem could with the topology itself… >>>>> Are you modeling multiple buses as multiple links between routers? >>>>> How does a router guarantee that certain messages only go on certain >>>>> links (buses), and certain others go on other links? By default both >>>>> simple/garnet networks try to route using the shortest path, and here all >>>>> buses will be on the shortest path. >>>>> >>>>> - Tushar >>>>> >>>>> >>>>> On Aug 19, 2012, at 11:41 PM, gem5 gem5 wrote: >>>>> >>>>> Hi Tushar, >>>>> >>>>> I have tried to modify the PerfectSwitch to schedule messages >>>>> according to a fixed round robin order. And then I also did the same to >>>>> the >>>>> throttle link by changing the wakeup order. However, I still cannot see >>>>> the >>>>> total order in multiple logic buses. I wonder if that is because the >>>>> implementation of PerfectSwtich does not reflect the timing characteristic >>>>> of a real router. It just simply copies everything from the inport to the >>>>> outport. Although I scheduled according to a predefined order, but >>>>> actually >>>>> it's still done right away. Maybe a more detailed model such as Garnet >>>>> router can solve the problem? I wonder if that's the issue or there is >>>>> something else I am missing here. >>>>> >>>>> What I did is just to take a few logic buses (I have tested a >>>>> individual bus with a broadcast protocol and it works). Each node has a >>>>> router before all the input links from the buses to model multiple reading >>>>> channels for the node. Each node only has one output link connecting to >>>>> its >>>>> dedicated writing bus to model the single writing channel. In this way, it >>>>> models single write multi read bus-based crossbar....I am not sure if this >>>>> is the right way to model it and if this kind of design should provide >>>>> total order. Any comments? >>>>> >>>>> Thank you very much! >>>>> >>>>> Best, >>>>> >>>>> Jinzhu >>>>> >>>>> On Fri, Aug 10, 2012 at 9:58 PM, gem5 gem5 <gem5.user....@gmail.com>wrote: >>>>> >>>>>> Tushar, >>>>>> >>>>>> Thank you very much. Yes, I guess all the routers are connected to >>>>>> the same MessageBuffer and each router represents a logic bus. I think >>>>>> the >>>>>> controller does not listen to all the buses according to a particular >>>>>> order. Even if I connect a router before the controller, the router might >>>>>> not listen to all the buses according to a particular order. I thought >>>>>> the >>>>>> simple network's router arbitrates/allocates everything following the >>>>>> same >>>>>> round robin, but maybe that's not the case... >>>>>> >>>>>> Thanks for your suggestion. I will look at the simple router first >>>>>> and then check the event queue if necessary. >>>>>> >>>>>> Best, >>>>>> >>>>>> Jinzhu >>>>>> >>>>>> >>>>>> On Fri, Aug 10, 2012 at 12:19 AM, Tushar Krishna < >>>>>> tus...@csail.mit.edu> wrote: >>>>>> >>>>>>> Hi Jinzhu, >>>>>>> Hmm if I understand your topology correctly, each controller >>>>>>> connects to multiple routers: each router corresponding to one bus. >>>>>>> The problem is that all these routers connect to the same >>>>>>> MessageBuffer in the controller... ? >>>>>>> And I guess the problem occurs because the routers on each bus can >>>>>>> wake up in any order within a cycle which means the controller's >>>>>>> MessageBuffer does not see messages from each bus in a particular order. >>>>>>> >>>>>>> If this is the problem, connecting all buses/routers to *one* router >>>>>>> which then connects to the controller, and then reading each bus in a >>>>>>> particular order should solve the problem. But you say you tried that? >>>>>>> You >>>>>>> should probably debug why that doesn't work.. >>>>>>> >>>>>>> If your problem can be solved by a particular wakeup order, you >>>>>>> could look into the event queue to see if you can create some order >>>>>>> between events with the same time. I don't have any experience with that >>>>>>> though... >>>>>>> >>>>>>> - Tushar >>>>>>> >>>>>>> >>>>>>> On Aug 9, 2012, at 5:37 PM, gem5 gem5 <gem5.user....@gmail.com> >>>>>>> wrote: >>>>>>> >>>>>>> > Hi, >>>>>>> > >>>>>>> > I have created a logic bus to run a broadcast protocol which >>>>>>> requires total ordering in ruby simple network. It works. Now I need to >>>>>>> have multiple logic buses. To achieve total ordering among different >>>>>>> buses, >>>>>>> each cache/directory controller needs to listen to all the buses >>>>>>> according >>>>>>> to a predefined order. I have tried several methods, such as, set the >>>>>>> interface MessageBuffer order to be true, connect a router between all >>>>>>> the >>>>>>> input links and a controller, but none of them works. I wonder what 's >>>>>>> the >>>>>>> right way to achieve the goal. Thanks. >>>>>>> > >>>>>>> > Best, >>>>>>> > >>>>>>> > Jinzhu >>>>>>> > _______________________________________________ >>>>>>> > gem5-users mailing list >>>>>>> > gem5-users@gem5.org >>>>>>> > http://m5sim.org/cgi-bin/mailman/listinfo/gem5-users >>>>>>> _______________________________________________ >>>>>>> gem5-users mailing list >>>>>>> gem5-users@gem5.org >>>>>>> http://m5sim.org/cgi-bin/mailman/listinfo/gem5-users >>>>>>> >>>>>> >>>>>> >>>>> _______________________________________________ >>>>> gem5-users mailing list >>>>> gem5-users@gem5.org >>>>> http://m5sim.org/cgi-bin/mailman/listinfo/gem5-users >>>>> >>>>> >>>>> >>>>> _______________________________________________ >>>>> gem5-users mailing list >>>>> gem5-users@gem5.org >>>>> http://m5sim.org/cgi-bin/mailman/listinfo/gem5-users >>>>> >>>> >>>> <SWMR.jpg>_______________________________________________ >>>> >>>> gem5-users mailing list >>>> gem5-users@gem5.org >>>> http://m5sim.org/cgi-bin/mailman/listinfo/gem5-users >>>> >>>> >>>> >>> >> > _______________________________________________ > gem5-users mailing list > gem5-users@gem5.org > http://m5sim.org/cgi-bin/mailman/listinfo/gem5-users > > > > _______________________________________________ > gem5-users mailing list > gem5-users@gem5.org > http://m5sim.org/cgi-bin/mailman/listinfo/gem5-users >
_______________________________________________ gem5-users mailing list gem5-users@gem5.org http://m5sim.org/cgi-bin/mailman/listinfo/gem5-users