Hi, All
I am trying to run SMT/ARM O3CPU, however, segmentation fault happened
when running two hello programs in 2 SMT in ARM/O3CPU.
I debugged using GDB and found that the problem is caused in:
-----------------
DefaultCommit<Impl>::squashAll(ThreadID tid)
{
// If we want to include the squashing instruction in the squash,
// then use one older sequence number.
// Hopefully this doesn't mess things up. Basically I want to squash
// all instructions of this thread.
InstSeqNum squashed_inst = rob->isEmpty() ?
lastCommitedSeqNum[tid] : rob->readHeadInst(tid)->seqNum - 1;
}
------------------------
Rob->readHeadInst(tid) returns null, as a result, segmentation fault happened.
I think rob->isEmpty() should changed to rob->isEmpty(tid), is it right?
I changed to isEmpty(tid), however, program hanged for ever and the memory
usage increased quickly possibly due to memory leakage.
I then continue to study the problem. I found that lsq is shared by all
hardware threads, however, it does not have isEmpty(tid).
Can this possibly cause problems? I think that isEmpty(tid) should present in
the classes of the shared resources.
Any help and suggestions are appreciated greatly.
Thanks!
Zhiguo
_______________________________________________
gem5-users mailing list
[email protected]
http://m5sim.org/cgi-bin/mailman/listinfo/gem5-users