Clearly something's going wrong, but it's impossible to tell what from a
high-level failure.  If you use the Exec trace flag and tracediff you can
see if the instruction execution is diverging somewhere relative to the
non-reordered memory module.

Steve

On 10/10/07, Jun Pang <[EMAIL PROTECTED]> wrote:
>
> Hi Steve,
>
>
>
> Thank you very much again. I have already solved the problem of
> sendTiming. The reason that I cannot correctly use sendTiming is that I
> should not move sendTiming completely from SimpleTimingPort::recvTiming,
> because other derived class such as PioPort still need sendTiming in the
> SimpleTimingPort::recvTiming.
>
>
>
> Now I have met new problems. I have buffered many packets in a queue with
> a length of 100 from the recvTiming(pkt).Then I call sendTiming to send them
> in completely reversed order. But when I telnet the host using term, it
> printed out some wrong information, as follows:
>
>
>
> ==== m5 slave console: Console 0 ====
>
> M5 console: m5AlphaAccess @ 0xFFFFFD0200000000
>
> Got Configuration 623
>
> memsize 20000000 pages 10000
>
> First free page after ROM 0xFFFFFC0000018000
>
> ………….
>
> Console: colour dummy device 80x25
>
> Unable to handle kernel paging request at virtual address 000000000000003c
>
> CPU 0 swapper(0): Oops -1
>
> pc = [<000000000000003c>]  ra = [<000000000000003f>]   ps = 0000    Not
> tainted
>
> pc is at 0x3c
>
> ra is at 0x3f
>
> v0 = fffffc0000e8a000  t0 = 0000000000100000  t1 = fffffc000085a0f8
>
> t2 = 0000000000000000  t3 = 0000000000000001  t4 = fffffc0000f8a000
>
> t5 = fffffc0000f8a000  t6 = 00000000000007c5  t7 = fffffc000070c000
>
> s0 = 0000000000000004  s1 = fffffc000065c504  s2 = 000000000000076c
>
> s3 = 0000000000000000  s4 = 0000000000002000  s5 = 0000000000000008
>
> s6 = fffffc0000809afc
>
> a0 = fffffc0000e8a000  a1 = 0000000000000000  a2 = 0000000000000000
>
> a3 = 0000000000000000  a4 = 000000000000003f  a5 = 0000000000000080
>
> t8 = 0000000000000740  t9 = fffffc000085a000  t10= 0000000000000001
>
> t11= 0000000000010000  pv = fffffc00004c0720  at = 0000000000000000
>
> gp = fffffc0000808200  sp = fffffc000070fe58
>
>
>
> and a panic information 'M5 panic instruction called at
> pc=0xfffffc000031d7a0'.
>
> I think maybe the packets are not received correctly, what is wrong with
> this? Can the instruction packets not be reordered?
>
>
>
> Sometimes, when I change the out-of-order schedule method I get a assert
> information, which is 'assert( dest != pkt->getSrc())' in the
> Bus::recvTiming function. I am curious about why the 'dest' is equal to the
> packet's 'src'. Is this because of this packet being retried by Bus? Or, why
> does this happen?
>
>
>
> Thank you very much !
>
>
>
> Jun Pang
>
>
> On 10/10/07, Steve Reinhardt <[EMAIL PROTECTED]> wrote:
> >
> > Hi Jun,
> >
> > What CPU model are you using?  If you're using SimpleCPU, that's a
> > blocking CPU model, so you won't get any more accesses from that CPU until
> > you satisfy the current request.  In order to see multiple outstanding
> > memory references you have to use multiple CPUs and/or a non-blocking CPU
> > such as O3.
> >
> > I'm not sure about your second question... if you call the two-argument
> > version of sendTiming() (the one that takes a tick value as the second
> > argument) then all it does is schedule an event to call the regular
> > sendTiming() later at the specified tick.  (Actually it maintains a list of
> > all the pending sendTiming() calls and uses a single event that's timed to
> > handle the first pending call.)  I don't see any reason why that wouldn't
> > work when called from MemoryPort.
> >
> > FYI, in our current internal tree we've renamed the two-argument version
> > of sendTiming() to schedSendTiming() just to make the distinction clearer.
> > And we are supposedly getting closer to resolving the issues that are
> > keeping us from making that tree public...
> >
> > Steve
> >
> > On 10/9/07, Jun Pang <[EMAIL PROTECTED]> wrote:
> > >
> > > Hi Steve,
> > >
> > >
> > >
> > > Thank you very much for your soon answer !
> > >
> > >
> > >
> > > I am still confused with the use of sendTiming in
> > > SimpleTimingPort::recvTIming.
> > >
> > >
> > >
> > > I don't want to send the packet from the recvTiming(pkt) immediately,
> > > for example,  I want to buffer a lot of packets, schedule them, then
> > > select one of them to send to implement out-of-order  memory access.
> > > However, when I add some operation in SimpleTimingPort:recvTiming() to
> > > control the execution of sendTimng, I find that if sendTiming is not
> > > executed, then there is no new packet coming from bus. If that is true, 
> > > how
> > > to implement the out-of-order scheduling?
> > >
> > >
> > >
> > > Another question is that I find the sendTiming function can only be
> > > called in the SimpleTimingPort::recvTiming other than a class devrived 
> > > from
> > > SimpleTimingPort, such as MemoryPort. If it is called from a member 
> > > function
> > > of MemoryPort, there is no new packet either and the simulation stops. 
> > > Could
> > > you also explain that?
> > >
> > >
> > >
> > > Thank you very much!
> > >
> > >
> > >
> > > Jun Pang
> > >
> > >
> > >  On 10/9/07, Steve Reinhardt < [EMAIL PROTECTED] > wrote:
> > > >
> > > > Hi Jun,
> > > >
> > > > Hard to know what's going wrong from your description.  What happens
> > > > if you take your new code but keep the same fixed latency as the old 
> > > > code?
> > > > In that case the execution path should be identical.  Check out the
> > > > util/tracediff script for a good way to track down differences between 
> > > > two
> > > > runs that should be doing the same thing but aren't (see the comments 
> > > > at the
> > > > top of the script for usage info).
> > > >
> > > > Also it might be easier to debug an SE-mode program first and make
> > > > sure that works before trying it under FS mode.  You can use the 
> > > > regression
> > > > tests for example.
> > > >
> > > > Steve
> > > >
> > > >
> > > >  On 10/8/07, Jun Pang < [EMAIL PROTECTED] > wrote:
> > > >
> > > > >  Hi,
> > > > >
> > > > >
> > > > >
> > > > > I want to implement an out-of-order memory access scheduling with
> > > > > M5 simulator 2.0.3 edition. First, I will put some packets in a
> > > > > buffer and schedule it, then as soon as a latency of one packet is 
> > > > > obtained
> > > > > through my algorithm, it will be sent by calling
> > > > > SimpleTimngPort::sendTiming.  So, instead of called by
> > > > > SimpleTimingPort::recvTiming in the tport.cc, the sendTiming is
> > > > > called in my function and get a latency calculated by the function as 
> > > > > an
> > > > > argument of sendTiming However, when I recompile the source and run 
> > > > > the
> > > > > simulator in full system mode, the m5term cannot connect the host and 
> > > > > shows
> > > > > information as follows:
> > > > >
> > > > >
> > > > >
> > > > > ==== m5 slave console: Console 0 ====
> > > > >
> > > > >
> > > > >
> > > > > What causes m5 to stop here?  What's wrong with my implementation?
> > > > > I wonder if I could put the sendTiming in somewhere else instead of 
> > > > > its
> > > > > original SimpleTimingPort::recvTiming. Thank you very much!
> > > > >
> > > > >
> > > > >
> > > > > Jun Pang
> > > > >
> > > > > _______________________________________________
> > > > > m5-users mailing list
> > > > > m5-users@m5sim.org
> > > > > http://m5sim.org/cgi-bin/mailman/listinfo/m5-users
> > > > >
> > > >
> > > >
> > > > _______________________________________________
> > > > m5-users mailing list
> > > > m5-users@m5sim.org
> > > > http://m5sim.org/cgi-bin/mailman/listinfo/m5-users
> > > >
> > >
> > >
> > > _______________________________________________
> > > m5-users mailing list
> > > m5-users@m5sim.org
> > > http://m5sim.org/cgi-bin/mailman/listinfo/m5-users
> > >
> >
> >
> > _______________________________________________
> > m5-users mailing list
> > m5-users@m5sim.org
> > http://m5sim.org/cgi-bin/mailman/listinfo/m5-users
> >
>
>
> _______________________________________________
> m5-users mailing list
> m5-users@m5sim.org
> http://m5sim.org/cgi-bin/mailman/listinfo/m5-users
>
_______________________________________________
m5-users mailing list
m5-users@m5sim.org
http://m5sim.org/cgi-bin/mailman/listinfo/m5-users

Reply via email to