[Gems-users] question about sparc traplevel


Date: Tue, 22 Dec 2009 21:44:29 +0800
From: "shanshuchang" <shanshuchang@xxxxxxxxx>
Subject: [Gems-users] question about sparc traplevel
Hi all,
I have a problem trying modifying OPAL module to construct a 4-core redundantly executed CMP system.
The system is designed to uses the first two cores to execute as master cores and the others are used to execute redundantly. In order to achieve the goal, I have create "virtual" opal objects. The virtual objects are avoid to communicate with simics and I have also modified some codes to bypass the information (simics state--PSTATE) required to the virtual objects.
 
I run for 10000 instructions and dump some statistics. Here I found that core-0 and core-2 successfully executed for about 10000 insts(the instructions they executed are really the same), while core-1 and core-3 execution are out of my expectation, they stopped soon. Here are some information dumpped within retireInstruction().
 
core-1
------------------------------------------------------------------------------------------------
tl:0    PC_inorder:83776        seq 0   cycle 291       tr 1048 sethi
tl:0    PC_inorder:83780        seq 1   cycle 291       tr 1048 sethi 179200, %i1
tl:0    PC_inorder:83784        seq 2   cycle 586       tr 1048 lduw [%i1 + 72], %o0
tl:0    PC_inorder:83788        seq 3   cycle 592       tr 1048 st %g0, [%o7 + 456]
tl:0    PC_inorder:83792        seq 4   cycle 592       tr 1048 cmp %o0, 1, %g0
tl:0    PC_inorder:83796        seq 5   cycle 592       tr 1048 bleu <0x28>,
tl:0    PC_inorder:83800        seq 6   cycle 592       tr 1048 mov %g0, 1, %l0
tl:0    PC_inorder:83804        seq 7   cycle 593       tr 1048 sethi 81920, %l1
tl:0    PC_inorder:83808        seq 8   cycle 593       tr 1048 call <0x4430>,
tl:0    PC_inorder:83812        seq 9   cycle 593       tr 1048 or %l1, 876, %o0
tl:0    PC_inorder:101264       seq 10  cycle 593       tr 1048 save %o6, <0xffffffffffffff88>, %pstate
tl:0    PC_inorder:101268       seq 11  cycle 594       tr 1048 sethi 178176, %l0
tl:0    PC_inorder:101272       seq 12  cycle 872       tr 1048 lduw [%l0 + 48], %g1
tl:0    PC_inorder:101276       seq 13  cycle 1156      tr 1048 lduw [%g1 + 8], %o0
tl:0    PC_inorder:101280       seq 14  cycle 1156      tr 1048 call <0x12228>,
tl:0    PC_inorder:101284       seq 15  cycle 1156      tr 1048 add %i6, -20, %o1
tl:0    PC_inorder:175560       seq 16  cycle 1156      tr 1048 sethi 700416, %g1
tl:0    PC_inorder:175564       seq 17  cycle 1157      tr 1048 ba <0xfffffffffffffd50>,
tl:0    PC_inorder:174876       seq 18  cycle 1157      tr 1048 save %o6, <0xffffffffffffffc0>, %pstate
tl:0    PC_inorder:174880       seq 19  cycle 1157      tr 1048 call <0xffffffffff389088>,
tl:0    PC_inorder:174884       seq 20  cycle 1162      tr 1048 nop
tl:0    PC_inorder:4282071976   seq 21  cycle 1162      tr 1048 mov %g0, %i7, %o0
tl:0    PC_inorder:4282071980   seq 22  cycle 1162      tr 36   save %o6, <0xffffffffffffffa0>, %pstate
tl:1    PC_inorder:16778368     seq 23  cycle 1454      tr 1048 rdpr %cleanwin %l0
tl:1    PC_inorder:16778372     seq 24  cycle 1456      tr 1048 add %l0, 1, %l0
tl:1    PC_inorder:16778376     seq 25  cycle 1458      tr 1048 wrpr %l0, %g0, %(null)
tl:1    PC_inorder:16778380     seq 26  cycle 1458      tr 1048 mov %g0, %g0, %l0
tl:1    PC_inorder:16778384     seq 27  cycle 1458      tr 1048 mov %g0, %g0, %l1
tl:1    PC_inorder:16778388     seq 28  cycle 1458      tr 1048 mov %g0, %g0, %l2
tl:1    PC_inorder:16778392     seq 29  cycle 1459      tr 1048 mov %g0, %g0, %l3
tl:1    PC_inorder:16778396     seq 30  cycle 1459      tr 1048 mov %g0, %g0, %l4
tl:1    PC_inorder:16778400     seq 31  cycle 1459      tr 1048 mov %g0, %g0, %l5
tl:1    PC_inorder:16778404     seq 32  cycle 1459      tr 1048 mov %g0, %g0, %l6
tl:1    PC_inorder:16778408     seq 33  cycle 1460      tr 1048 mov %g0, %g0, %l7
tl:1    PC_inorder:16778412     seq 34  cycle 1460      tr 1048 mov %g0, %g0, %o0
tl:1    PC_inorder:16778416     seq 35  cycle 1460      tr 1048 mov %g0, %g0, %o1
tl:1    PC_inorder:16778420     seq 36  cycle 1460      tr 1048 mov %g0, %g0, %o2
tl:1    PC_inorder:16778424     seq 37  cycle 1461      tr 1048 mov %g0, %g0, %o3
tl:1    PC_inorder:16778428     seq 38  cycle 1461      tr 1048 mov %g0, %g0, %o4
tl:1    PC_inorder:16778432     seq 39  cycle 1740      tr 1048 mov %g0, %g0, %o5
tl:1    PC_inorder:16778436     seq 40  cycle 1740      tr 1048 mov %g0, %g0, %o6
tl:1    PC_inorder:16778440     seq 41  cycle 1740      tr 1048 mov %g0, %g0, %o7
tl:1    PC_inorder:16778444     seq 42  cycle 1740      tr 1048 retry %pstate
 
---------------------------------------------------------------------------------------------
core-3
tl:0    PC_inorder:83776        seq 0   cycle 300       tr 1048 sethi
tl:0    PC_inorder:83780        seq 1   cycle 300       tr 1048 sethi 179200, %i1
tl:0    PC_inorder:83784        seq 2   cycle 598       tr 1048 lduw [%i1 + 72], %o0
tl:0    PC_inorder:83788        seq 3   cycle 606       tr 1048 st %g0, [%o7 + 456]
tl:0    PC_inorder:83792        seq 4   cycle 606       tr 1048 cmp %o0, 1, %g0
tl:0    PC_inorder:83796        seq 5   cycle 606       tr 1048 bleu <0x28>,
tl:0    PC_inorder:83800        seq 6   cycle 606       tr 1048 mov %g0, 1, %l0
tl:0    PC_inorder:83804        seq 7   cycle 607       tr 1048 sethi 81920, %l1
tl:0    PC_inorder:83808        seq 8   cycle 607       tr 1048 call <0x4430>,
tl:0    PC_inorder:83812        seq 9   cycle 607       tr 1048 or %l1, 876, %o0
tl:0    PC_inorder:101264       seq 10  cycle 608       tr 1048 save %o6, <0xffffffffffffff88>, %pstate
tl:0    PC_inorder:101268       seq 11  cycle 608       tr 1048 sethi 178176, %l0
tl:0    PC_inorder:101272       seq 12  cycle 886       tr 1048 lduw [%l0 + 48], %g1
tl:0    PC_inorder:101276       seq 13  cycle 1173      tr 1048 lduw [%g1 + 8], %o0
tl:0    PC_inorder:101280       seq 14  cycle 1173      tr 1048 call <0x12228>,
tl:0    PC_inorder:101284       seq 15  cycle 1173      tr 1048 add %i6, -20, %o1
tl:0    PC_inorder:175560       seq 16  cycle 1173      tr 1048 sethi 700416, %g1
tl:0    PC_inorder:175564       seq 17  cycle 1174      tr 1048 ba <0xfffffffffffffd50>,
tl:0    PC_inorder:174876       seq 18  cycle 1174      tr 1048 save %o6, <0xffffffffffffffc0>, %pstate
tl:0    PC_inorder:174880       seq 19  cycle 1174      tr 1048 call <0xffffffffff389088>,
tl:1    PC_inorder:16778368     seq 20  cycle 1475      tr 1048 rdpr %cleanwin %l0
tl:1    PC_inorder:16778372     seq 21  cycle 1477      tr 1048 add %l0, 1, %l0
tl:1    PC_inorder:16778376     seq 22  cycle 1479      tr 36   wrpr %l0, %g0, %(null)
 
The two cores divaricated after the seq-19 instruction call <0xffffffffff389088>, which later turned the execution went into trap level tl:1.
I doubt about why the core-1 and core3 are stopped and why they divaricated in trap-level 1.
 
Any help will be appreciated!
 
 
regards,
shuchang
[← Prev in Thread] Current Thread [Next in Thread→]