Re: [Gems-users] A question on ruby tester


Date: Thu, 15 Feb 2007 22:57:38 -0600
From: "Lei Yang" <lya755@xxxxxxxxxxxxxxxxxxxx>
Subject: Re: [Gems-users] A question on ruby tester
Maybe our source is different... I'm using gems release 1.3.1. Below is how "begin" and "done" is printed in my Sequencer.C.

line 550:      
 
g_system_ptr->getProfiler()->profileTransition("Seq", (m_chip_ptr->getID()*RubyConfig::numberOfProcsPerChip() + m_version), -1, msg.getAddress(), "", "Begin", "", "");
 
line 370:
 
 g_system_ptr->getProfiler()->profileTransition("Seq", (m_chip_ptr->getID()*RubyConfig::numberOfProcsPerChip()+m_version), -1, request.getAddress(), "", "Done", "",
                                                   int_to_string(miss_latency)+" cycles "+GenericMachineType_to_string(respondingMach)+" "+PrefetchBit_to_string(request.getPrefetch()));
 
I think they are both using CacheMsg::getAddress(), when that is printed out, first shows word address, then the line address. Or, did I looked at the wrong place, are these lines outputing to debug trace though? In any event, I hope you are right because this does seem like a code consistency issue.
 
Lei

 
----- Original Message -----
From: "Mike Marty" <mikem@xxxxxxxxxxx>
To: "Lei Yang" <lya755@xxxxxxxxxxxxxxxxxxxx>; "Gems Users" <gems-users@xxxxxxxxxxx>
Sent: Thursday, February 15, 2007 10:35 PM
Subject: Re: [Gems-users] A question on ruby tester

> Well I just looked at the code in Sequencer.C for printing the trace.
> When it prints the Sequencer "Begin", it converts to the line address.
> See line 441 of Sequencer.C (assuming my tree is still current with the
> released Sequencer).
>
> It prints the "Done" in a completely different part of the code and I
> don't see the line_addrses pulled out.
>
> I think it is code consistency.
>
> --Mike
>
> Lei Yang wrote:
>> That sounds reasonable. But in this line,
>>
>> 12689 0 -1 Seq Done > [0x34ea, line 0x34c0] 1867 cycles NULL No
>>
>> it shows first the actual address, then the aligned block address. So
>> the traces does print word address too. It doesn't seem to me that
>> this is a code consistency problem. Is it possible that there is a bug
>> in the sequencer? I'm just curious.
>>
>> Thanks,
>> Lei
>> ----- Original Message -----
>> From: "Mike Marty" <
mikem@xxxxxxxxxxx>
>> To: "Lei Yang" <
lya755@xxxxxxxxxxxxxxxxxxxx>
>> Sent: Thursday, February 15, 2007 10:21 PM
>> Subject: Re: [Gems-users] A question on ruby tester
>>
>>
>> > It is the same block cache block. It is probably just inconsistent code
>> > that prints the word address in one spot and the block address in
>> another.
>> >
>> > --Mike
>> >
>> > Lei Yang wrote:
>> >> Thank you Mike. Did you mean g_SEQUENCER_OUTSTANDING_REQUESTS? I made
>> >> that 1 but still have the same problem. I guess I don't understand
>> in the
>> >> first place why in cycle 10624 the request address is 0xdc0 but the
>> >> deadlock complains about 0xdee?
>> >> Thanks a lot!
>> >> Lei
>> >> ----- Original Message -----
>> >>
>> >> *From:* Mike Marty <
mailto:mikem@xxxxxxxxxxx>
>> >> *To:* 'Lei Yang' <
mailto:lya755@xxxxxxxxxxxxxxxxxxxx> ; 'Gems
>> >> Users' <
mailto:gems-users@xxxxxxxxxxx>
>> >> *Sent:* Thursday, February 15, 2007 9:22 PM
>> >> *Subject:* RE: [Gems-users] A question on ruby tester
>> >>
>> >> A couple more tips:
>> >>
>> >>
>> >> Take a look at the PROTOCOL_DEBUG_TRACE. See if there is another
>> >> block that has failed. If too many requests are outstanding, the
>> >> sequencer will start the request but there are no available
>> >> resources to handle it.
>> >>
>> >> There is a section on the Wiki on using the trace output.
>> >>
>> >>
>> >> When first debugging a protocol, change g_OUTSTANDING_REQUESTS to
>> >> 1 until that works.
>> >>
>> >>
>> >> --Mike
>> >>
>> >>
>> >> -----Original Message-----
>> >> *From:*
gems-users-bounces@xxxxxxxxxxx
>> >> [mailto:gems-users-bounces@xxxxxxxxxxx] *On Behalf Of *Lei Yang
>> >> *Sent:* Thursday, February 15, 2007 4:18 PM
>> >> *To:*
Gems-users@xxxxxxxxxxx
>> >> *Subject:* [Gems-users] A question on ruby tester
>> >>
>> >>
>> >> Hello everyone,
>> >>
>> >>
>> >> I am using Ruby tester to verify my cache coherence protocol and
>> >> found a weird problem. Basically I got this error message of
>> >> possible deadlock:
>> >>
>> >>
>> >> Warning: in fn virtual void Sequencer::wakeup() in
>> >> system/Sequencer.C:121: Possible Deadlock detected
>> >> Warning: in fn virtual void Sequencer::wakeup() in
>> >> system/Sequencer.C:122: request is [CacheMsg: Address=[0xdee, line
>> >> 0xdc0]
>> >> Type=ATOMIC ProgramCounter=[0xf0, line 0xc0]
>> >> AccessMode=SupervisorMode Size=1 Prefetch=No Version=0 Aborted=0
>> >> Time=10624 ]
>> >> Warning: in fn virtual void Sequencer::wakeup() in
>> >> system/Sequencer.C:123: m_chip_ptr->getID() is 2
>> >> Warning: in fn virtual void Sequencer::wakeup() in
>> >> system/Sequencer.C:124: m_version is 0
>> >> Warning: in fn virtual void Sequencer::wakeup() in
>> >> system/Sequencer.C:125: current_time is 1000002
>> >> Warning: in fn virtual void Sequencer::wakeup() in
>> >> system/Sequencer.C:126: request.getTime() is 10624
>> >> Warning: in fn virtual void Sequencer::wakeup() in
>> >> system/Sequencer.C:127: current_time - request.getTime() is 989378
>> >> Warning: in fn virtual void Sequencer::wakeup() in
>> >> system/Sequencer.C:128: keys.size() is 16
>> >> Warning: in fn virtual void Sequencer::wakeup() in
>> >> system/Sequencer.C:129: *m_writeRequestTable_ptr is [ [0xdc0, line
>> >> 0xdc0]=
>> >>
>> >>
>> >>
>> >> I searched for address 0xdee and it appears NO where in the output
>> >> trace. Then I went to request time 10624 and saw this:
>> >>
>> >> 10624 2 -1 Seq Begin > [0xdc0,
>> >> line 0xdc0]
>> >>
>> >>
>> >> After this line there is no occurance of 0xdc0. It appears to me
>> >> that after the request on 0xdc0 is issued by the sequencer,
>> >> nothing else was done. I don't even know wheter it is instruction
>> >> read or load/store. Then somehow it leads to a deadlock. Could
>> >> anyone please give me a hint on how might I find out the problem?
>> >>
>> >>
>> >> Thank you very much!
>> >>
>> >>
>> >> Lei
>> >>
>> >>
>> >
>> >
>> ------------------------------------------------------------------------
>>
>> _______________________________________________
>> Gems-users mailing list
>>
Gems-users@xxxxxxxxxxx
>> https://lists.cs.wisc.edu/mailman/listinfo/gems-users
>> Use Google to search the GEMS Users mailing list by adding "site:https://lists.cs.wisc.edu/archive/gems-users/" to your search.
>>
>>  
>
>
[← Prev in Thread] Current Thread [Next in Thread→]