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 gem5-users@gem5.org http://m5sim.org/cgi-bin/mailman/listinfo/gem5-users