Hi,
Thanks Korey, Nilesh. My application is statically linked and it works fine
when run without SMT. When using --cmd"hello;test", the error i get is :
**** REAL SIMULATION ****
info: Entering event queue @ 0. Starting simulation...
panic: Unrecognized/invalid instruction executed:
{
leg = 0,
rex = 0,
op = {
num = 1,
op = 0x7,
prefixA = 0,
prefixB = 0
},
modRM = 0,
sib = 0,
immediate = 0,
displacement = 0
dispSize = 0}
@ cycle 268422
[invoke:build/X86/arch/x86/faults.cc, line 131]
Memory Usage: 1155240 KBytes
Program aborted at cycle 268422
Aborted
Instruction trace for T0 is :
..............
110544: system.cpu T0 : 0x400336.0 : MOV_R_I : limm rcx, 0x400dd0 :
IntAlu : D=0x0000000000400dd0
216972: system.cpu T0 : 0x40033d.0 : XOR_R_I : limm t1b, 0x4 : IntAlu
: D=0xffffffffffffff04
216972: system.cpu T0 : 0x40033d.1 : XOR_R_I : xor al, al, t1b :
IntAlu : D=0x0000000000000000
219324: system.cpu T0 : 0x40033f.0 : XOR_R_I : limm t1b, 0x4 : IntAlu
: D=0xffffffffffffff04
219324: system.cpu T0 : 0x40033f.1 : XOR_R_I : xor al, al, t1b :
IntAlu : D=0x0000000000000044
219324: system.cpu T0 : 0x400341.0 : ADD_R_I : limm t1b, 0x40 :
IntAlu : D=0xffffffffffffff40
219324: system.cpu T0 : 0x400341.1 : ADD_R_I : add al, al, t1b :
IntAlu : D=0x0000000000000000
219618: system.cpu T0 : 0x400343.0 : ADD_R_R : add al, al, ch :
IntAlu : D=0x0000000000000004
Instruction trace for T1:
......
109368: system.cpu T1 : 0x400336.0 : MOV_R_I : limm rcx, 0x400dd0 :
IntAlu : D=0x0000000000400dd0
109956: system.cpu T0 : 0x400325.2 : POP_R : mov rsi, rsi, t1 :
IntAlu : D=0x00007fffffffee68
216678: system.cpu T1 : 0x40033d.0 : MOV_R_I : limm rdi, 0x400434 :
IntAlu : D=0x0000000000400434
110250: system.cpu T0 : 0x400329.1 : AND_R_I : and rsp, rsp, t1 :
IntAlu : D=0x0000000000000004
216678: system.cpu T1 : 0x400344.0 : CALL_NEAR_I : limm t1, 0x107 :
IntAlu : D=0x0000000000000107
216678: system.cpu T1 : 0x400344.1 : CALL_NEAR_I : rdip t7,
%ctrl153, : IntAlu : D=0x0000000000400349
216678: system.cpu T1 : 0x400344.2 : CALL_NEAR_I : st t7, SS:[rsp +
0xfffffffffffffff8] : MemWrite : D=0x0000000000400349 A=0x7fffffffee58
217266: system.cpu T1 : 0x400344.3 : CALL_NEAR_I : subi rsp, rsp, 0x8
: IntAlu : D=0x00007fffffffee58
217266: system.cpu T1 : 0x400344.4 : CALL_NEAR_I : wrip , t7, t1 :
IntAlu :
When running separately, the instrucation traces are different. Any
thoughts ?
Regards,
Ankita
On Wed, Apr 11, 2012 at 10:31 PM, Korey Sewell <[email protected]> wrote:
> #1 .... is your application statically linked?
>
> #2 ... print out an instruction trace (Exec) for your 2 threads
> simulation. figure out how many instructions each thread has run before it
> faulted. now run a 1 thread simulation for test with that amount of max
> instructions. Now, finally, diff the trace between your SMT simulation and
> your 1 thread simulation. At some point, you will find that an instruction
> is getting a wrong value somewhere and then you can identify what's
> causing the error.
>
>
> On Wed, Apr 11, 2012 at 11:26 PM, Nilay Vaish <[email protected]> wrote:
>
>> You should try to dig in what exactly happened with the simulation. The
>> error printed seems to point that the application did something wrong. It
>> is trying to read from an address it should not.
>>
>> --
>> Nilay
>>
>>
>>
>> On Wed, 11 Apr 2012, Ankita (Garg) Goel wrote:
>>
>> Folks, any thoughts on this issue ?
>>>
>>> Thanks for your help!
>>>
>>> Regards,
>>> Ankita
>>>
>>> On Mon, Apr 9, 2012 at 1:21 PM, Ankita (Garg) Goel <[email protected]
>>> >wrote:
>>>
>>> Yes you are right. I had infact used the quotes but missed it in the
>>>> mail,
>>>> sorry about that. But even with that, I get the same error.
>>>>
>>>> Also they parsing is working fine as I printed out the names of the
>>>> executables being signed to each thread.
>>>>
>>>> Thanks for looking into this.
>>>>
>>>> Regards,
>>>> Ankita
>>>> On Apr 8, 2012 9:50 PM, "Korey Sewell" <[email protected]> wrote:
>>>>
>>>> your command line should use encapsulate your SMT commands in
>>>>> quotations... otherwise, I think it will view your semicolon as
>>>>> starting a
>>>>> separate command on the shell.
>>>>>
>>>>> cmd="test;test" *not* cmd=test;test
>>>>>
>>>>> On Sun, Apr 8, 2012 at 8:15 PM, Ankita (Garg) Goel <
>>>>> [email protected]>wrote:
>>>>>
>>>>> Hi,
>>>>>>
>>>>>> The configs/example/se.py script has a small error that does not allow
>>>>>> proper workload assignment to SMT threads. I made the following
>>>>>> changes to
>>>>>> fix that part:
>>>>>>
>>>>>> --- a/configs/example/se.py
>>>>>> +++ b/configs/example/se.py
>>>>>> @@ -111,11 +111,11 @@ if options.bench:
>>>>>> print >>sys.stderr, "Unable to find workload for %s: %s" %
>>>>>> (buildEnv['TARGET_ISA'], app)
>>>>>> sys.exit(1)
>>>>>> else:
>>>>>> - process = LiveProcess()
>>>>>> - process.executable = options.cmd
>>>>>> - process.cmd = [options.cmd] + options.options.split()
>>>>>> - multiprocesses.append(process)
>>>>>> -
>>>>>> + if options.cmd.split(';') == 1:
>>>>>> + process = LiveProcess()
>>>>>> + process.executable = options.cmd
>>>>>> + process.cmd = [options.cmd] + options.options.split()
>>>>>> + multiprocesses.append(process)
>>>>>>
>>>>>> if options.input != "":
>>>>>> process.input = options.input
>>>>>> @@ -157,6 +157,7 @@ if options.cpu_type == "detailed" or
>>>>>> options.cpu_type == "inorder":
>>>>>> if errouts and errouts[smt_idx]:
>>>>>> smt_process.errout = errouts[smt_idx]
>>>>>> process += [smt_process, ]
>>>>>> + multiprocesses.append(process)
>>>>>> smt_idx += 1
>>>>>> numThreads = len(workloads)
>>>>>>
>>>>>> I am simulating X86 with detailed core. The simulation aborts with the
>>>>>> following error:
>>>>>>
>>>>>> command line: build/X86/gem5.opt configs/example/se.py
>>>>>> --cpu-type=detailed -n 1 --cmd=test;test --caches --l2cache --l3cache
>>>>>> --clock=3400MHz --maxinsts=100000
>>>>>> Global frequency set at 1000000000000 ticks per second
>>>>>> 0: system.remote_gdb.listener: listening for remote gdb #0 on port
>>>>>> 7002
>>>>>> 0: system.remote_gdb.listener: listening for remote gdb #1 on port
>>>>>> 7003
>>>>>> **** REAL SIMULATION ****
>>>>>> info: Entering event queue @ 0. Starting simulation...
>>>>>> panic: Tried to read unmapped address 0x4d2f7cd.
>>>>>> @ cycle 226380
>>>>>> [invoke:build/X86/arch/x86/**faults.cc, line 160]
>>>>>> Memory Usage: 1025680 KBytes
>>>>>> Program aborted at cycle 226380
>>>>>> Aborted
>>>>>>
>>>>>> Any ideas of what might be going wrong ? I'd be happy to provide more
>>>>>> debug information. Thanks for your help !
>>>>>>
>>>>>> --
>>>>>> Regards,
>>>>>> Ankita
>>>>>> Graduate Student
>>>>>> Department of Computer Science
>>>>>> University of Texas at Austin
>>>>>>
>>>>>>
>>>>>>
>>>>>> ______________________________**_________________
>>>>>> gem5-users mailing list
>>>>>> [email protected]
>>>>>> http://m5sim.org/cgi-bin/**mailman/listinfo/gem5-users<http://m5sim.org/cgi-bin/mailman/listinfo/gem5-users>
>>>>>>
>>>>>>
>>>>>
>>>>>
>>>>> --
>>>>> - Korey
>>>>>
>>>>> ______________________________**_________________
>>>>> gem5-users mailing list
>>>>> [email protected]
>>>>> http://m5sim.org/cgi-bin/**mailman/listinfo/gem5-users<http://m5sim.org/cgi-bin/mailman/listinfo/gem5-users>
>>>>>
>>>>>
>>>>
>>>
>>> --
>>> Regards,
>>> Ankita
>>> Graduate Student
>>> Department of Computer Science
>>> University of Texas at Austin
>>>
>>> ______________________________**_________________
>> gem5-users mailing list
>> [email protected]
>> http://m5sim.org/cgi-bin/**mailman/listinfo/gem5-users<http://m5sim.org/cgi-bin/mailman/listinfo/gem5-users>
>>
>
>
>
> --
> - Korey
>
> _______________________________________________
> gem5-users mailing list
> [email protected]
> http://m5sim.org/cgi-bin/mailman/listinfo/gem5-users
>
--
Regards,
Ankita
Graduate Student
Department of Computer Science
University of Texas at Austin
_______________________________________________
gem5-users mailing list
[email protected]
http://m5sim.org/cgi-bin/mailman/listinfo/gem5-users