Hi, I am running into a problem in which a message from the Network is sent to the supposedly unused MessageBuffers in the MOESI_CMP_directory Protocol.
The message buffers that I am referring to, are the foo/goo buffers in *-L1cache.sm. I know there is a recent patch that removes these from the code because they are unused, but I am using a slightly older changeset of M5 before that patch was applied. http://reviews.gem5.org/r/490/ Specifically, I am running into the assert(false) failure. in_port(goo_in, RequestMsg, goo) { if (goo_in.isReady()) { peek(goo_in, RequestMsg) { assert(false); } } } Looking at that patch, all it does was remove those instances of the port. I tried commenting them out manually, but then I get an error of a virtual net not being connected. panic: Ordering property of fromNet node 3 j 1 has not been set @ cycle 2453317927500 [enqueue:build/ALPHA_FS_MOESI_CMP_directory/mem/ruby/buffers/MessageBuffer.cc, line 170] I double checked to make sure that the virtual network #s did not change, and they did not. In debugging with the ProtocolTrace flag, the last thing that appears, is a message that is enqueued on the "forwardFromDir" message buffer in *-dir.sm. (I have made some changes to the coherence protocol, in terms of transitions/new states, but did not add any new message buffers). I am not quite sure how/when these virtual networks are connected, just as long as I enqueue/dequeue the message from the correct buffer. Therefore, my question(s) are, 1) how does the network know which buffer to enqueue messages from the network when there are multiple network="from" buffers, because then I can figure out why the goo message buffer is being used. 2) If a message buffer is full, does the message get enqueued on another buffer going in the same direction (e.g. to L1 cache)? Thanks. Malek _______________________________________________ gem5-dev mailing list gem5-dev@m5sim.org http://m5sim.org/mailman/listinfo/gem5-dev