Hi Stavros,

Thanks for sending the patch. It fixed the assertions. However, I have
got another problem with CMP simulations.

I have used the same configuration above, except fixing the number of
L2 banks. The simulation finished. However, when I try to collect
stats I found the user committed instructions are often 0 for CMP
simulations. Particularly, I saw one core with very low user committed
instructions, and other cores with 0 user committed instructions, so
it is kind of a dead lock...

Could you please share any suggestions on this problem?

Thanks in advance,
Song


On Tue, Apr 5, 2011 at 4:24 PM, Volos Stavros <[email protected]> wrote:
> Hi Song,
>
> You can use the following patch to fix this bug. Please apply this patch and 
> let me know
> whether you face any other bug/assertion.
>
> Regards,
> -Stavros.
>
> On Apr 5, 2011, at 5:21 PM, Song Liu wrote:
>
>> Hi Volos,
>>
>> Thanks so much for this helpful information.
>>
>> After changing the number of banks, I have fixed most of the assertion
>> fails, with only one exception. Could you please help me look at the
>> attached assertion fail?
>>
>> Thanks again,
>>
>> Best,
>> Song
>>
>>
>> On Tue, Apr 5, 2011 at 3:42 AM, Volos Stavros <[email protected]> wrote:
>>> Hi Song,
>>>
>>> Please ignore the previous email.
>>>
>>> The problem is the number of L2 banks. You have set this parameter to 1 
>>> which is wrong. During the trace
>>> simulation the directory and cache state are NOT seperate for each bank, so 
>>> we need to load the correct data
>>> to each bank from these files. Since you have set the number of banks to 1 
>>> (less than the number of tiles
>>> that you simulate) the loading of the state will not be correct and that's 
>>> why you experience this problem.
>>>
>>> Please set the number of banks to the number of tiles (i.e., cores) you are 
>>> simulating. According to the topology
>>> you are using, you are simulating 4 cores. So the correct value is
>>>
>>> -L2:banks                      4                   # (Banks) number of 
>>> directory banks in each group
>>>
>>> Regads,
>>> -Stavros.
>>>
>>> ________________________________________
>>> From: Song Liu [[email protected]]
>>> Sent: Tuesday, April 05, 2011 4:22 AM
>>> To: [email protected]
>>> Subject: Re: Error with flexus_test_app in multi-core system
>>>
>>> Hi Jason,
>>>
>>> Thanks for your kind reply. I have attached the two configuration.out files.
>>>
>>> Best,
>>> Song
>>>
>>> On Mon, Apr 4, 2011 at 8:45 PM, Jason Zebchuk <[email protected]> 
>>> wrote:
>>>> Hi Song,
>>>>
>>>> The line
>>>>
>>>> 28276 <NonInclusiveMESIPolicy.cpp:375> {51794}- Received Upgrade from
>>>> Non-Sharer, converting to WriteReq: MemoryMessage[Upgrade Request]:
>>>> Addr:0xp:0003bdc80 Size:0 Serial: 9898 Core: 0 DStream: true Outstanding
>>>> Msgs: 0 Requires Ack
>>>>
>>>> Indicates that the coherence directory located with the L2 cache indicates
>>>> that the requester is not a sharer of the block. It uses this condition to
>>>> identify the race condition I mentioned in my previous email. However, if 
>>>> we
>>>> look at the other messages, we see that there is no race happening. So,
>>>> 00-L1d has a valid copy but this isn't recorded in the directory.
>>>>
>>>> So, either there's a bug in the code, or there's something in your
>>>> configuration that's making this happen.
>>>>
>>>> Can you reply to the list and send your configuration.out from your timing
>>>> simulation, and the configuration.out from the functional simulation that
>>>> created any flex-state that you might be loading? Can you please send them
>>>> as attachments instead of inline?
>>>>
>>>>
>>>> Thanks,
>>>>
>>>> Jason
>>>>
>>>>
>>>>
>>>> On 11-04-04 7:43 PM, Song Liu wrote:
>>>>>
>>>>> Hi Jason,
>>>>>
>>>>> Thanks a lot for your kind reply.
>>>>>
>>>>> I am not using different cache block sizes, so I guess that is not the
>>>>> reason.
>>>>>
>>>>> I have included all the debug information for the specific address in
>>>>> the following.
>>>>>
>>>>> Thanks again,
>>>>>
>>>>> Song
>>>>>
>>>>> 28123<CacheController.hpp:366>  {51765}- Searching MAF for block
>>>>> p:0003bdc80
>>>>> 28126<StdArray.hpp:584>  {51765}- Found block p:0003bdc80
>>>>> (p:0003bdc80) in set 114 in state Shared
>>>>> 28171<CacheController.hpp:366>  {51773}- Searching MAF for block
>>>>> p:0003bdc80
>>>>> 28174<StdArray.hpp:584>  {51773}- Found block p:0003bdc80
>>>>> (p:0003bdc80) in set 114 in state Shared
>>>>> 28207<CacheController.hpp:366>  {51780}- Searching MAF for block
>>>>> p:0003bdc80
>>>>> 28210<StdArray.hpp:584>  {51780}- Found block p:0003bdc80
>>>>> (p:0003bdc80) in set 114 in state Shared
>>>>> 28244<CacheController.hpp:366>  {51788}- Searching MAF for block
>>>>> p:0003bdc80
>>>>> 28247<StdArray.hpp:584>  {51788}- Found block p:0003bdc80
>>>>> (p:0003bdc80) in set 114 in state Shared
>>>>> 28253<CacheController.hpp:291>  {51788}- 02-L1d - Adding MAF entry for
>>>>> block p:0003bdc80 in state kWaitResponse
>>>>> 28255<CacheController.cpp:1846>  {51789}- 02-L1d  sendBack_Request
>>>>> MemoryMessage[Upgrade Request]: Addr:0xp:0003bdc80 Size:0 Serial: 9898
>>>>> Core: 0 DStream: true Outstanding Msgs: 0 Requires Ack
>>>>> 28257<CacheImpl.cpp:454>  {51789}- 02-L1d Sent on Port
>>>>> BackSideOut(Request): MemoryMessage[Upgrade Request]:
>>>>> Addr:0xp:0003bdc80 Size:0 Serial: 9898 Core: 0 DStream: true
>>>>> Outstanding Msgs: 0 Requires Ack
>>>>> 28258<SplitDestinationMapperImpl.cpp:813>  {51789}- sys-net-mapper
>>>>> Dest = 6 (dirIndex2NodeIndex(2)):MemoryMessage[Upgrade Request]:
>>>>> Addr:0xp:0003bdc80 Size:0 Serial: 9898 Core: 0 DStream: true
>>>>> Outstanding Msgs: 0 Requires Ack
>>>>> 28259<SplitDestinationMapperImpl.cpp:346>  {51789}- sys-net-mapper
>>>>> Received Request from cache 2 sending to network port 8 -
>>>>> MemoryMessage[Upgrade Request]: Addr:0xp:0003bdc80 Size:0 Serial: 9898
>>>>> Core: 0 DStream: true Outstanding Msgs: 0 Requires Ack
>>>>> 28261<MultiNicXImpl.hpp:210>  {51790}- 02-nic   Packet contains:
>>>>> MemoryMessage[Upgrade Request]: Addr:0xp:0003bdc80 Size:0 Serial: 9898
>>>>> Core: 0 DStream: true Outstanding Msgs: 0 Requires Ack
>>>>> 28263<MemoryNetworkImpl.cpp:306>  {51790}- Network Received msg From 2
>>>>> to 6, on vc 0, serial: 2036 Message =  MemoryMessage[Upgrade Request]:
>>>>> Addr:0xp:0003bdc80 Size:0 Serial: 9898 Core: 0 DStream: true
>>>>> Outstanding Msgs: 0 Requires Ack
>>>>> 28265<MemoryNetworkImpl.cpp:190>  {51793}- Network Delivering msg From
>>>>> 2 to 6, on vc 2, serial: 2036 Message =  MemoryMessage[Upgrade
>>>>> Request]: Addr:0xp:0003bdc80 Size:0 Serial: 9898 Core: 0 DStream: true
>>>>> Outstanding Msgs: 0 Requires Ack
>>>>> 28267<MultiNicXImpl.hpp:138>  {51793}- 06-nic   Packet contains:
>>>>> MemoryMessage[Upgrade Request]: Addr:0xp:0003bdc80 Size:0 Serial: 9898
>>>>> Core: 0 DStream: true Outstanding Msgs: 0 Requires Ack
>>>>> 28268<SplitDestinationMapperImpl.cpp:642>  {51794}- sys-net-mapper
>>>>> Received Request for Directory 2 - MemoryMessage[Upgrade Request]:
>>>>> Addr:0xp:0003bdc80 Size:0 Serial: 9898 Core: 0 DStream: true
>>>>> Outstanding Msgs: 0 Requires Ack
>>>>> 28269<CMPCacheImpl.cpp:140>  {51794}- 02-L2 Received on Port
>>>>> Request_In : MemoryMessage[Upgrade Request]: Addr:0xp:0003bdc80 Size:0
>>>>> Serial: 9898 Core: 0 DStream: true Outstanding Msgs: 0 Requires Ack
>>>>> from node 4
>>>>> 28270<CMPCacheController.hpp:124>  {51794}- 02-L2reserveSnoopOut(2):
>>>>> ProcRequest: NoAction, snoop reservations: 0, request reservations: 0,
>>>>> reply reservations: 0, MemoryMessage[Upgrade Request]:
>>>>> Addr:0xp:0003bdc80 Size:0 Serial: 9898 Core: 0 DStream: true
>>>>> Outstanding Msgs: 0 Requires Ack
>>>>> 28272<CMPCacheController.cpp:345>  {51794}- 02-L2 Scheduled Request:
>>>>> MemoryMessage[Upgrade Request]: Addr:0xp:0003bdc80 Size:0 Serial: 9898
>>>>> Core: 0 DStream: true Outstanding Msgs: 0 Requires Ack
>>>>> 28273<CMPCacheController.cpp:438>  {51794}- 02-L2 handleRequest:
>>>>> ProcRequest: NoAction, snoop reservations: 2, request reservations: 1,
>>>>> reply reservations: 1, MAF reserved, Cache EB reserved (1), Dir EB
>>>>> reserved, MemoryMessage[Upgrade Request]: Addr:0xp:0003bdc80 Size:0
>>>>> Serial: 9898 Core: 0 DStream: true Outstanding Msgs: 0 Requires Ack
>>>>> for MemoryMessage[Upgrade Request]: Addr:0xp:0003bdc80 Size:0 Serial:
>>>>> 9898 Core: 0 DStream: true Outstanding Msgs: 0 Requires Ack
>>>>> 28274<StdArray.hpp:566>  {51794}- Looking for block p:0003bdc80 in set
>>>>> 3954 theNumSets = 8192
>>>>> 28275<StdArray.hpp:568>  {51794}- Found block p:0003bdc80 in set 3954
>>>>> in state Exclusive
>>>>> 28276<NonInclusiveMESIPolicy.cpp:375>  {51794}- Received Upgrade from
>>>>> Non-Sharer, converting to WriteReq: MemoryMessage[Upgrade Request]:
>>>>> Addr:0xp:0003bdc80 Size:0 Serial: 9898 Core: 0 DStream: true
>>>>> Outstanding Msgs: 0 Requires Ack
>>>>> 28277<CMPCacheController.hpp:156>  {51794}- 02-L2unreserveSnoopOut(1):
>>>>> ProcRequest: NotifyAndWaitAck, snoop reservations: 2, request
>>>>> reservations: 1, reply reservations: 1, MAF reserved, Cache EB
>>>>> reserved (1), Dir EB reserved, MemoryMessage[Write Request]:
>>>>> Addr:0xp:0003bdc80 Size:0 Serial: 9898 Core: 0 DStream: true
>>>>> Outstanding Msgs: 0 Requires Ack
>>>>> 28279<CMPCacheController.cpp:523>  {51794}- 02-L2 runRequestProcess:
>>>>> ProcRequest: NotifyAndWaitAck, snoop reservations: 1, request
>>>>> reservations: 0, reply reservations: 1, MemoryMessage[Write Request]:
>>>>> Addr:0xp:0003bdc80 Size:0 Serial: 9898 Core: 0 DStream: true
>>>>> Outstanding Msgs: 0 Requires Ack for MemoryMessage[Write Request]:
>>>>> Addr:0xp:0003bdc80 Size:0 Serial: 9898 Core: 0 DStream: true
>>>>> Outstanding Msgs: 0 Requires Ack
>>>>> 28280<CMPCacheController.cpp:757>  {51798}- Finalize process:
>>>>> ProcRequest: NotifyAndWaitAck, snoop reservations: 1, request
>>>>> reservations: 0, reply reservations: 1, MemoryMessage[Write Request]:
>>>>> Addr:0xp:0003bdc80 Size:0 Serial: 9898 Core: 0 DStream: true
>>>>> Outstanding Msgs: 0 Requires Ack
>>>>> 28281<CMPCacheController.hpp:156>  {51798}- 02-L2unreserveSnoopOut(1):
>>>>> ProcRequest: NotifyAndWaitAck, snoop reservations: 1, request
>>>>> reservations: 0, reply reservations: 1, MemoryMessage[Write Request]:
>>>>> Addr:0xp:0003bdc80 Size:0 Serial: 9898 Core: 0 DStream: true
>>>>> Outstanding Msgs: 0 Requires Ack
>>>>> 28283<CMPCacheController.cpp:844>  {51798}- 02-L2 enqueuing Snoop msg:
>>>>> MemoryMessage[WriteFwd]: Addr:0xp:0003bdc80 Size:0 Serial: 9899 Core:
>>>>> 0 DStream: true Outstanding Msgs: 0 Requires Ack
>>>>> 28285<CMPCacheImpl.cpp:209>  {51798}- 02-L2 Sent on Port ReplyOut:
>>>>> MemoryMessage[MissNotify]: Addr:0xp:0003bdc80 Size:0 Serial: 9900
>>>>> Core: 0 DStream: true Outstanding Msgs: 1 Requires Ack
>>>>> 28286<SplitDestinationMapperImpl.cpp:804>  {51798}- sys-net-mapper
>>>>> Dest = 2 (requester):MemoryMessage[MissNotify]: Addr:0xp:0003bdc80
>>>>> Size:0 Serial: 9900 Core: 0 DStream: true Outstanding Msgs: 1 Requires
>>>>> Ack
>>>>> 28287<SplitDestinationMapperImpl.cpp:495>  {51798}- sys-net-mapper
>>>>> Received Reply from Directory 2 sending to network port 18 -
>>>>> MemoryMessage[MissNotify]: Addr:0xp:0003bdc80 Size:0 Serial: 9900
>>>>> Core: 0 DStream: true Outstanding Msgs: 1 Requires Ack
>>>>> 28289<CMPCacheImpl.cpp:229>  {51798}- 02-L2 Sent on Port SnoopOut:
>>>>> MemoryMessage[WriteFwd]: Addr:0xp:0003bdc80 Size:0 Serial: 9899 Core:
>>>>> 0 DStream: true Outstanding Msgs: 0 Requires Ack
>>>>> 28290<SplitDestinationMapperImpl.cpp:470>  {51798}- sys-net-mapper
>>>>> Received Snoop from Directory 2 sending to network port 19 -
>>>>> MemoryMessage[WriteFwd]: Addr:0xp:0003bdc80 Size:0 Serial: 9899 Core:
>>>>> 0 DStream: true Outstanding Msgs: 0 Requires Ack
>>>>> 28292<MultiNicXImpl.hpp:210>  {51799}- 06-nic   Packet contains:
>>>>> MemoryMessage[MissNotify]: Addr:0xp:0003bdc80 Size:0 Serial: 9900
>>>>> Core: 0 DStream: true Outstanding Msgs: 1 Requires Ack
>>>>> 28294<MemoryNetworkImpl.cpp:306>  {51799}- Network Received msg From 6
>>>>> to 2, on vc 0, serial: 2037 Message =  MemoryMessage[MissNotify]:
>>>>> Addr:0xp:0003bdc80 Size:0 Serial: 9900 Core: 0 DStream: true
>>>>> Outstanding Msgs: 1 Requires Ack
>>>>> 28296<MultiNicXImpl.hpp:210>  {51799}- 06-nic   Packet contains:
>>>>> MemoryMessage[WriteFwd]: Addr:0xp:0003bdc80 Size:0 Serial: 9899 Core:
>>>>> 0 DStream: true Outstanding Msgs: 0 Requires Ack
>>>>> 28298<MemoryNetworkImpl.cpp:306>  {51799}- Network Received msg From 6
>>>>> to 0, on vc 0, serial: 2038 Message =  MemoryMessage[WriteFwd]:
>>>>> Addr:0xp:0003bdc80 Size:0 Serial: 9899 Core: 0 DStream: true
>>>>> Outstanding Msgs: 0 Requires Ack
>>>>> 28300<MemoryNetworkImpl.cpp:190>  {51803}- Network Delivering msg From
>>>>> 6 to 2, on vc 6, serial: 2037 Message =  MemoryMessage[MissNotify]:
>>>>> Addr:0xp:0003bdc80 Size:0 Serial: 9900 Core: 0 DStream: true
>>>>> Outstanding Msgs: 1 Requires Ack
>>>>> 28302<MultiNicXImpl.hpp:138>  {51803}- 02-nic   Packet contains:
>>>>> MemoryMessage[MissNotify]: Addr:0xp:0003bdc80 Size:0 Serial: 9900
>>>>> Core: 0 DStream: true Outstanding Msgs: 1 Requires Ack
>>>>> 28303<SplitDestinationMapperImpl.cpp:625>  {51804}- sys-net-mapper
>>>>> Received Reply for cache 2 - MemoryMessage[MissNotify]:
>>>>> Addr:0xp:0003bdc80 Size:0 Serial: 9900 Core: 0 DStream: true
>>>>> Outstanding Msgs: 1 Requires Ack
>>>>> 28304<CacheImpl.cpp:412>  {51804}- 02-L1d Received on Port
>>>>> BackSideIn_Reply: MemoryMessage[MissNotify]: Addr:0xp:0003bdc80 Size:0
>>>>> Serial: 9900 Core: 0 DStream: true Outstanding Msgs: 1 Requires Ack
>>>>> 28305<CacheController.cpp:1053>  {51805}- 02-L1d  scheduling request
>>>>> to bank 0: MemoryMessage[MissNotify]: Addr:0xp:0003bdc80 Size:0
>>>>> Serial: 9900 Core: 0 DStream: true Outstanding Msgs: 1 Requires Ack
>>>>> eL1
>>>>> 28306<CacheController.cpp:850>  {51805}- 02-L1d  schedule Back
>>>>> MemoryMessage[MissNotify]: Addr:0xp:0003bdc80 Size:0 Serial: 9900
>>>>> Core: 0 DStream: true Outstanding Msgs: 1 Requires Ack
>>>>> 28307<CacheController.cpp:1557>  {51805}- 02-L1d  runBackProcess 4966:
>>>>> MemoryMessage[MissNotify]: Addr:0xp:0003bdc80 Size:0 Serial: 9900
>>>>> Core: 0 DStream: true Outstanding Msgs: 1 Requires Ack
>>>>> 28308<InclusiveMESI.cpp:635>  {51805}- 02-L1d  Handle BackProcess:
>>>>> MemoryMessage[MissNotify]: Addr:0xp:0003bdc80 Size:0 Serial: 9900
>>>>> Core: 0 DStream: true Outstanding Msgs: 1 Requires Ack
>>>>> 28309<StdArray.hpp:584>  {51805}- Found block p:0003bdc80
>>>>> (p:0003bdc80) in set 114 in state Shared_X
>>>>> 28311<CacheController.cpp:1681>  {51805}- 02-L1d  no more work
>>>>> required for: MemoryMessage[MissNotify]: Addr:0xp:0003bdc80 Size:0
>>>>> Serial: 9900 Core: 0 DStream: true Outstanding Msgs: 1 Requires Ack
>>>>> 28389<MemoryNetworkImpl.cpp:190>  {51903}- Network Delivering msg From
>>>>> 6 to 0, on vc 4, serial: 2038 Message =  MemoryMessage[WriteFwd]:
>>>>> Addr:0xp:0003bdc80 Size:0 Serial: 9899 Core: 0 DStream: true
>>>>> Outstanding Msgs: 0 Requires Ack
>>>>> 28391<MultiNicXImpl.hpp:138>  {51903}- 00-nic   Packet contains:
>>>>> MemoryMessage[WriteFwd]: Addr:0xp:0003bdc80 Size:0 Serial: 9899 Core:
>>>>> 0 DStream: true Outstanding Msgs: 0 Requires Ack
>>>>> 28392<SplitDestinationMapperImpl.cpp:621>  {51904}- sys-net-mapper
>>>>> Received Snoop for cache 0 - MemoryMessage[WriteFwd]:
>>>>> Addr:0xp:0003bdc80 Size:0 Serial: 9899 Core: 0 DStream: true
>>>>> Outstanding Msgs: 0 Requires Ack
>>>>> 28393<CacheImpl.cpp:419>  {51904}- 00-L1d Received on Port
>>>>> BackSideIn_Request: MemoryMessage[WriteFwd]: Addr:0xp:0003bdc80 Size:0
>>>>> Serial: 9899 Core: 0 DStream: true Outstanding Msgs: 0 Requires Ack
>>>>> 28394<CacheController.cpp:1053>  {51905}- 00-L1d  scheduling request
>>>>> to bank 0: MemoryMessage[WriteFwd]: Addr:0xp:0003bdc80 Size:0 Serial:
>>>>> 9899 Core: 0 DStream: true Outstanding Msgs: 0 Requires Ack eL1
>>>>> 28395<CacheController.cpp:874>  {51905}- 00-L1d  schedule Back
>>>>> MemoryMessage[WriteFwd]: Addr:0xp:0003bdc80 Size:0 Serial: 9899 Core:
>>>>> 0 DStream: true Outstanding Msgs: 0 Requires Ack
>>>>> 28396<CacheController.cpp:1557>  {51905}- 00-L1d  runBackProcess 4967:
>>>>> MemoryMessage[WriteFwd]: Addr:0xp:0003bdc80 Size:0 Serial: 9899 Core:
>>>>> 0 DStream: true Outstanding Msgs: 0 Requires Ack
>>>>> 28397<InclusiveMESI.cpp:635>  {51905}- 00-L1d  Handle BackProcess:
>>>>> MemoryMessage[WriteFwd]: Addr:0xp:0003bdc80 Size:0 Serial: 9899 Core:
>>>>> 0 DStream: true Outstanding Msgs: 0 Requires Ack
>>>>> 28398<StdArray.hpp:584>  {51905}- Found block p:0003bdc80
>>>>> (p:0003bdc80) in set 114 in state Exclusive
>>>>> 28399<CacheController.hpp:381>  {51905}- Expected to find MAF entry
>>>>> for p:0003bdc80 but found none.
>>>>> 28402<CacheController.cpp:1821>  {51906}- 00-L1d  sendFront (D-1, I-0)
>>>>> : MemoryMessage[Invalidate]: Addr:0xp:0003bdc80 Size:0 Serial: 9903
>>>>> Core: 0 DStream: true Outstanding Msgs: 0 Requires Ack
>>>>> 28404<CacheImpl.cpp:282>  {51906}- 00-L1d Sent on Port FrontSideOut_D
>>>>> [0]: MemoryMessage[Invalidate]: Addr:0xp:0003bdc80 Size:0 Serial: 9903
>>>>> Core: 0 DStream: true Outstanding Msgs: 0 Requires Ack
>>>>> 28405<ExecuteImpl.cpp:371>  {51906}- 00-execute EX received mem
>>>>> request MemoryMessage[Invalidate]: Addr:0xp:0003bdc80 Size:0 Serial:
>>>>> 9903 Core: 0 DStream: true Outstanding Msgs: 0 Requires Ack
>>>>> 28406<ExecuteImpl.cpp:1423>  {51907}- 00-execute EX Issuing memory
>>>>> reply: MemoryMessage[Invalidate Ack]: Addr:0xp:0003bdc80 Size:0
>>>>> Serial: 9905 Core: 0 DStream: true Outstanding Msgs: 0 Requires Ack
>>>>> 28407<CacheImpl.cpp:172>  {51907}- 00-L1d Received on Port
>>>>> FrontSideIn(Snoop) [0]: MemoryMessage[Invalidate Ack]:
>>>>> Addr:0xp:0003bdc80 Size:0 Serial: 9905 Core: 0 DStream: true
>>>>> Outstanding Msgs: 0 Requires Ack
>>>>> 28412<CacheController.cpp:1053>  {51907}- 00-L1d  scheduling request
>>>>> to bank 0: MemoryMessage[Invalidate Ack]: Addr:0xp:0003bdc80 Size:0
>>>>> Serial: 9905 Core: 0 DStream: true Outstanding Msgs: 0 Requires Ack
>>>>> eL1
>>>>> 28413<CacheController.cpp:964>  {51907}- 00-L1d  schedule Snoop
>>>>> MemoryMessage[Invalidate Ack]: Addr:0xp:0003bdc80 Size:0 Serial: 9905
>>>>> Core: 0 DStream: true Outstanding Msgs: 0 Requires Ack
>>>>> 28414<CacheController.cpp:1442>  {51907}- 00-L1d  runSnoopProcess
>>>>> 4968: MemoryMessage[Invalidate Ack]: Addr:0xp:0003bdc80 Size:0 Serial:
>>>>> 9905 Core: 0 DStream: true Outstanding Msgs: 0 Requires Ack
>>>>> 28415<InclusiveMESI.cpp:1847>  {51907}- 00-L1d Snoop message:
>>>>> MemoryMessage[Invalidate Ack]: Addr:0xp:0003bdc80 Size:0 Serial: 9905
>>>>> Core: 0 DStream: true Outstanding Msgs: 0 Requires Ack
>>>>> 28416<StdArray.hpp:584>  {51907}- Found block p:0003bdc80
>>>>> (p:0003bdc80) in set 114 in state Exclusive
>>>>> 28417<InclusiveMESI.cpp:1833>  {51907}- 00-L1d Removing Snoop Buffer
>>>>> entry after receiving final reply: MemoryMessage[FwdReplyWritable]:
>>>>> Addr:0xp:0003bdc80 Size:0 Serial: 9899 Core: 0 DStream: true
>>>>> Outstanding Msgs: 0 Requires Ack
>>>>> 28421<CacheController.cpp:1864>  {51909}- 00-L1d  sendBack_Snoop
>>>>> MemoryMessage[FwdReplyWritable]: Addr:0xp:0003bdc80 Size:0 Serial:
>>>>> 9899 Core: 0 DStream: true Outstanding Msgs: 0 Requires Ack
>>>>> 28422<CacheController.cpp:1869>  {51909}- 00-L1d  Using REPLY channel
>>>>> sendBack_SnoopMemoryMessage[FwdReplyWritable]: Addr:0xp:0003bdc80
>>>>> Size:0 Serial: 9899 Core: 0 DStream: true Outstanding Msgs: 0 Requires
>>>>> Ack
>>>>> 28425<CacheImpl.cpp:441>  {51909}- 00-L1d Sent on Port
>>>>> BackSideOut(Reply): MemoryMessage[FwdReplyWritable]:
>>>>> Addr:0xp:0003bdc80 Size:0 Serial: 9899 Core: 0 DStream: true
>>>>> Outstanding Msgs: 0 Requires Ack
>>>>> 28426<SplitDestinationMapperImpl.cpp:804>  {51909}- sys-net-mapper
>>>>> Dest = 2 (requester):MemoryMessage[FwdReplyWritable]:
>>>>> Addr:0xp:0003bdc80 Size:0 Serial: 9899 Core: 0 DStream: true
>>>>> Outstanding Msgs: 0 Requires Ack
>>>>> 28427<SplitDestinationMapperImpl.cpp:418>  {51909}- sys-net-mapper
>>>>> Received Reply from cache 0 sending to network port 0 -
>>>>> MemoryMessage[FwdReplyWritable]: Addr:0xp:0003bdc80 Size:0 Serial:
>>>>> 9899 Core: 0 DStream: true Outstanding Msgs: 0 Requires Ack
>>>>> 28441<MultiNicXImpl.hpp:210>  {51910}- 00-nic   Packet contains:
>>>>> MemoryMessage[FwdReplyWritable]: Addr:0xp:0003bdc80 Size:0 Serial:
>>>>> 9899 Core: 0 DStream: true Outstanding Msgs: 0 Requires Ack
>>>>> 28443<MemoryNetworkImpl.cpp:306>  {51910}- Network Received msg From 0
>>>>> to 2, on vc 0, serial: 2042 Message =
>>>>> MemoryMessage[FwdReplyWritable]: Addr:0xp:0003bdc80 Size:0 Serial:
>>>>> 9899 Core: 0 DStream: true Outstanding Msgs: 0 Requires Ack
>>>>> 28815<MemoryNetworkImpl.cpp:190>  {52033}- Network Delivering msg From
>>>>> 0 to 2, on vc 6, serial: 2042 Message =
>>>>> MemoryMessage[FwdReplyWritable]: Addr:0xp:0003bdc80 Size:0 Serial:
>>>>> 9899 Core: 0 DStream: true Outstanding Msgs: 0 Requires Ack
>>>>> 28817<MultiNicXImpl.hpp:138>  {52033}- 02-nic   Packet contains:
>>>>> MemoryMessage[FwdReplyWritable]: Addr:0xp:0003bdc80 Size:0 Serial:
>>>>> 9899 Core: 0 DStream: true Outstanding Msgs: 0 Requires Ack
>>>>> 28818<SplitDestinationMapperImpl.cpp:625>  {52034}- sys-net-mapper
>>>>> Received Reply for cache 2 - MemoryMessage[FwdReplyWritable]:
>>>>> Addr:0xp:0003bdc80 Size:0 Serial: 9899 Core: 0 DStream: true
>>>>> Outstanding Msgs: 0 Requires Ack
>>>>> 28819<CacheImpl.cpp:412>  {52034}- 02-L1d Received on Port
>>>>> BackSideIn_Reply: MemoryMessage[FwdReplyWritable]: Addr:0xp:0003bdc80
>>>>> Size:0 Serial: 9899 Core: 0 DStream: true Outstanding Msgs: 0 Requires
>>>>> Ack
>>>>> 28820<CacheController.cpp:1053>  {52035}- 02-L1d  scheduling request
>>>>> to bank 0: MemoryMessage[FwdReplyWritable]: Addr:0xp:0003bdc80 Size:0
>>>>> Serial: 9899 Core: 0 DStream: true Outstanding Msgs: 0 Requires Ack
>>>>> eL1
>>>>> 28821<CacheController.cpp:850>  {52035}- 02-L1d  schedule Back
>>>>> MemoryMessage[FwdReplyWritable]: Addr:0xp:0003bdc80 Size:0 Serial:
>>>>> 9899 Core: 0 DStream: true Outstanding Msgs: 0 Requires Ack
>>>>> 28822<CacheController.cpp:1557>  {52035}- 02-L1d  runBackProcess 4988:
>>>>> MemoryMessage[FwdReplyWritable]: Addr:0xp:0003bdc80 Size:0 Serial:
>>>>> 9899 Core: 0 DStream: true Outstanding Msgs: 0 Requires Ack
>>>>> 28823<InclusiveMESI.cpp:635>  {52035}- 02-L1d  Handle BackProcess:
>>>>> MemoryMessage[FwdReplyWritable]: Addr:0xp:0003bdc80 Size:0 Serial:
>>>>> 9899 Core: 0 DStream: true Outstanding Msgs: 0 Requires Ack
>>>>> 28824<StdArray.hpp:584>  {52035}- Found block p:0003bdc80
>>>>> (p:0003bdc80) in set 114 in state Shared_X
>>>>> 28831<CacheController.cpp:1864>  {52037}- 02-L1d  sendBack_Snoop
>>>>> MemoryMessage[UpgradeAck]: Addr:0xp:0003bdc80 Size:0 Serial: 9940
>>>>> Core: 0 DStream: true Outstanding Msgs: 0 Requires Ack
>>>>> 28832<CacheController.cpp:1869>  {52037}- 02-L1d  Using REPLY channel
>>>>> sendBack_SnoopMemoryMessage[UpgradeAck]: Addr:0xp:0003bdc80 Size:0
>>>>> Serial: 9940 Core: 0 DStream: true Outstanding Msgs: 0 Requires Ack
>>>>> 28839<CacheImpl.cpp:441>  {52037}- 02-L1d Sent on Port
>>>>> BackSideOut(Reply): MemoryMessage[UpgradeAck]: Addr:0xp:0003bdc80
>>>>> Size:0 Serial: 9940 Core: 0 DStream: true Outstanding Msgs: 0 Requires
>>>>> Ack
>>>>> 28840<SplitDestinationMapperImpl.cpp:813>  {52037}- sys-net-mapper
>>>>> Dest = 6 (dirIndex2NodeIndex(2)):MemoryMessage[UpgradeAck]:
>>>>> Addr:0xp:0003bdc80 Size:0 Serial: 9940 Core: 0 DStream: true
>>>>> Outstanding Msgs: 0 Requires Ack
>>>>> 28841<SplitDestinationMapperImpl.cpp:418>  {52037}- sys-net-mapper
>>>>> Received Reply from cache 2 sending to network port 6 -
>>>>> MemoryMessage[UpgradeAck]: Addr:0xp:0003bdc80 Size:0 Serial: 9940
>>>>> Core: 0 DStream: true Outstanding Msgs: 0 Requires Ack
>>>>> 28843<MultiNicXImpl.hpp:210>  {52038}- 02-nic   Packet contains:
>>>>> MemoryMessage[UpgradeAck]: Addr:0xp:0003bdc80 Size:0 Serial: 9940
>>>>> Core: 0 DStream: true Outstanding Msgs: 0 Requires Ack
>>>>> 28845<MemoryNetworkImpl.cpp:306>  {52038}- Network Received msg From 2
>>>>> to 6, on vc 0, serial: 2047 Message =  MemoryMessage[UpgradeAck]:
>>>>> Addr:0xp:0003bdc80 Size:0 Serial: 9940 Core: 0 DStream: true
>>>>> Outstanding Msgs: 0 Requires Ack
>>>>> 28860<MemoryNetworkImpl.cpp:190>  {52041}- Network Delivering msg From
>>>>> 2 to 6, on vc 6, serial: 2047 Message =  MemoryMessage[UpgradeAck]:
>>>>> Addr:0xp:0003bdc80 Size:0 Serial: 9940 Core: 0 DStream: true
>>>>> Outstanding Msgs: 0 Requires Ack
>>>>> 28862<MultiNicXImpl.hpp:138>  {52041}- 06-nic   Packet contains:
>>>>> MemoryMessage[UpgradeAck]: Addr:0xp:0003bdc80 Size:0 Serial: 9940
>>>>> Core: 0 DStream: true Outstanding Msgs: 0 Requires Ack
>>>>> 28867<SplitDestinationMapperImpl.cpp:650>  {52042}- sys-net-mapper
>>>>> Received Reply for Directory 2 - MemoryMessage[UpgradeAck]:
>>>>> Addr:0xp:0003bdc80 Size:0 Serial: 9940 Core: 0 DStream: true
>>>>> Outstanding Msgs: 0 Requires Ack
>>>>> 28868<CMPCacheImpl.cpp:183>  {52042}- 02-L2 Received on Port Reply_In
>>>>> : MemoryMessage[UpgradeAck]: Addr:0xp:0003bdc80 Size:0 Serial: 9940
>>>>> Core: 0 DStream: true Outstanding Msgs: 0 Requires Ack
>>>>> 28869<CMPCacheController.hpp:124>  {52042}- 02-L2reserveSnoopOut(1):
>>>>> ProcReply: NoAction, snoop reservations: 0, request reservations: 0,
>>>>> reply reservations: 0, MemoryMessage[UpgradeAck]: Addr:0xp:0003bdc80
>>>>> Size:0 Serial: 9940 Core: 0 DStream: true Outstanding Msgs: 0 Requires
>>>>> Ack
>>>>> 28870<CMPCacheController.cpp:297>  {52042}- 02-L2 Scheduled Reply:
>>>>> MemoryMessage[UpgradeAck]: Addr:0xp:0003bdc80 Size:0 Serial: 9940
>>>>> Core: 0 DStream: true Outstanding Msgs: 0 Requires Ack
>>>>> 28871<CMPCacheController.cpp:582>  {52042}- 02-L2 runReplyProcess:
>>>>> MemoryMessage[UpgradeAck]: Addr:0xp:0003bdc80 Size:0 Serial: 9940
>>>>> Core: 0 DStream: true Outstanding Msgs: 0 Requires Ack
>>>>> 28872<NonInclusiveMESIPolicy.cpp:1233>  {52042}-<undefined>  Assertion
>>>>> failed: ((!(maf->transport()[MemoryMessageTag]->type() ==
>>>>> MemoryMessage::UpgradeReq))) : Matching MAF is not an Upgrade. MAF =
>>>>> MemoryMessage[Write Request]: Addr:0xp:0003bdc80 Size:0 Serial: 9898
>>>>> Core: 0 DStream: true Outstanding Msgs: 0 Requires Ack reply =
>>>>> MemoryMessage[UpgradeAck]: Addr:0xp:0003bdc80 Size:0 Serial: 9940
>>>>> Core: 0 DStream: true Outstanding Msgs: 0 Requires Ack
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>> On Mon, Apr 4, 2011 at 3:36 PM, Jason Zebchuk<[email protected]>
>>>>>  wrote:
>>>>>>
>>>>>> Hi Song,
>>>>>>
>>>>>> First, one question: are you using different cache block sizes for the
>>>>>> different levels of cache? At the moment the cache hierarchy does not
>>>>>> support different cache block sizes at different levels, and I can think
>>>>>> of
>>>>>> one way that might produce the error you're seeing. If that's not the
>>>>>> case,
>>>>>> keep reading.
>>>>>>
>>>>>> The message you're seeing indicates that the shared cache received an
>>>>>> UpgradeAck for a WriteRequest. The sequence of messages should normally
>>>>>> be
>>>>>> one of the following:
>>>>>>
>>>>>> Normal Case:
>>>>>>
>>>>>> requesting L1 sends Upgrade to L2
>>>>>> L2 sends MissNotify to requesting L1 and Invalidates to other L1s
>>>>>> L1s perform Invalidates and send InvalidateAcks to requesting L1
>>>>>> requesting L1 sends UpgradeAck to L2
>>>>>>
>>>>>> Fast Case:
>>>>>>
>>>>>> requesting L1 sends Upgrade to L2
>>>>>> L2 sends UpgradeReply to L1
>>>>>> L1 sends UpgradeAck to L2
>>>>>>
>>>>>> Race Case:
>>>>>>
>>>>>> L1-a sends Write to L2
>>>>>> L1-b sends Upgrade to L2
>>>>>> L2 receives Write from L1-a and sends invalidates to L1-b and any other
>>>>>> sharers
>>>>>> L2 receives Upgrade from L1-b, sees that the block has been invalidated,
>>>>>> and
>>>>>> silently promotes the request to a Write
>>>>>> L1-a's Write completes and L1-a sends WriteAck to L2
>>>>>> L2 receives WriteAck and processes L1-b's request which is now a Write
>>>>>>
>>>>>>
>>>>>> To see exactly what happened, you should re-run your simulation and turn
>>>>>> on
>>>>>> debugging messages part way through. The error occurs at cycle 51001, so
>>>>>> if
>>>>>> you run for 50000 cycles then run the command
>>>>>>
>>>>>> flexus.debug-set-severity "iface"
>>>>>>
>>>>>> then keep running, you should see a dump of all of the debug messages.
>>>>>> You
>>>>>> can then extract all the debug statements for the address in question and
>>>>>> see what exactly might have happened. If you email the list with those
>>>>>> statements, we should be able to resolve your problem.
>>>>>>
>>>>>>
>>>>>> Jason
>>>>>>
>>>>>>
>>>>>>
>>>>>> On 04/04/2011 4:12 PM, Song Liu wrote:
>>>>>>>
>>>>>>> Another error message comes with same config but different flexpoints.
>>>>>>>
>>>>>>> 180<SimicsTracer.hpp:491>    {45460}- Interrupt handler instruction
>>>>>>> ignored. So far 1 instructions have been ignored on cpu2
>>>>>>> 181<SimicsTracer.hpp:491>    {45460}- Interrupt handler instruction
>>>>>>> ignored. So far 2 instructions have been ignored on cpu2
>>>>>>> 182<SimicsTracer.hpp:491>    {45460}- Interrupt handler instruction
>>>>>>> ignored. So far 3 instructions have been ignored on cpu2
>>>>>>> 183<SimicsTracer.hpp:491>    {45460}- Interrupt handler instruction
>>>>>>> ignored. So far 4 instructions have been ignored on cpu2
>>>>>>> 184<SimicsTracer.hpp:491>    {45460}- Interrupt handler instruction
>>>>>>> ignored. So far 5 instructions have been ignored on cpu2
>>>>>>> 185<SimicsTracer.hpp:491>    {45460}- Interrupt handler instruction
>>>>>>> ignored. So far 6 instructions have been ignored on cpu2
>>>>>>> 186<SimicsTracer.hpp:491>    {45460}- Interrupt handler instruction
>>>>>>> ignored. So far 7 instructions have been ignored on cpu2
>>>>>>> 187<SimicsTracer.hpp:491>    {45460}- Interrupt handler instruction
>>>>>>> ignored. So far 8 instructions have been ignored on cpu2
>>>>>>> 188<NonInclusiveMESIPolicy.cpp:1233>    {51001}-<undefined>    Assertion
>>>>>>> failed: ((!(maf->transport()[MemoryMessageTag]->type() ==
>>>>>>> MemoryMessage::UpgradeReq))) : Matching MAF is not an Upgrade. MAF =
>>>>>>> MemoryMessage[Write Request]: Addr:0xp:0003bdc80 Size:0 Serial: 24140
>>>>>>> Core: 0 DStream: true Outstanding Msgs: 0 Requires Ack reply =
>>>>>>> MemoryMessage[UpgradeAck]: Addr:0xp:0003bdc80 Size:0 Serial: 24221
>>>>>>> Core: 0 DStream: true Outstanding Msgs: 0 Requires Ack
>>>>>>>
>>>>>>> Song
>>>>>>>
>>>>>>> On Thu, Mar 31, 2011 at 11:05 PM, Song Liu<[email protected]>    wrote:
>>>>>>>>
>>>>>>>> Hi all,
>>>>>>>>
>>>>>>>> I am trying to run flexus_test_app with 4 x86 in-order processor cores.
>>>>>>>>
>>>>>>>> Besides changing "test_app_threads" and "num_cpus" to 4, I also
>>>>>>>> changed user-postload.simics:
>>>>>>>>
>>>>>>>> -L2:cores = 8,
>>>>>>>> -net-mapper:Cores = 4,
>>>>>>>> -net-mapper:Directories = 4,
>>>>>>>> -network:nodes = 12,
>>>>>>>> -network:topology-file = 4x3-torus.topology,
>>>>>>>>
>>>>>>>> Now I get error
>>>>>>>> <ExecuteImpl.cpp:666>    {4877}- Invalid fill type: eCoherence
>>>>>>>>
>>>>>>>> Any suggestion on this error?
>>>>>>>>
>>>>>>>> Thanks in advance,
>>>>>>>>
>>>>>>>> Song
>>>>>>>>
>>>>>>
>>>>>>
>>>>
>>>>
>>>
>> <new_assertion.out>
>
>
>
>
>
>

Reply via email to