I am still stuck at this point.
After step2, if I do not remove the ruby0 objects I get this error.
/***************************************************************************\
> Physical Memory object cannot be found. If you are NOT compiling Ruby and <
> you see this message, something is wrong. <
> This message is part of the normal compilation process. <
\***************************************************************************/
I know this is expected thats why I am removing the following objects, after grepping ruby in the warm.conf file:
OBJECT phys_mem TYPE memory-space {
queue: cpu0
map: ((0, memory, 0, 0, 0x40000000, NIL, 0, 0, 0),
(0x800000000, memory, 0, 0x40000000, 0x40000000, NIL, 0, 0, 0),
(0x7fff07ffff0, simicsfs, 0, 0, 16, NIL, 0, 0, 0))
timing_model: ruby0
}
...
...
...
OBJECT ruby0 TYPE ruby {
}
And when I try to read the configuration after removing these lines I am getting the following error:
Segmentation fault (SIGSEGV) in main thread
The simulation state has been corrupted. Simulation cannot continue.
Please restart Simics.
So, am I doing anything wrong here?
Also, an interesting stuff with the magic breaks. Maybe I shouldn't have enabled them at all. When I only run SIMICS at step1, magic breaks are recognized fine and I get no warnings but I when I run the benchmark with RUBY I am getting the following warnings. Can these be related?
Warning: in fn void magic_instruction_callback(void*, void*, integer_t) in simics/commands.C:476: val is 1
Warning: in fn void magic_instruction_callback(void*, void*, integer_t) in simics/commands.C:476: val is 1
Warning: in fn void magic_instruction_callback(void*, void*, integer_t) in simics/commands.C:477: SIMICS_get_program_counter(proc_num) is [0x12fe8, line 0x12fc0]
Warning: in fn void magic_instruction_callback(void*, void*, integer_t) in simics/commands.C:477: SIMICS_get_program_counter(proc_num) is [0x12fe8, line 0x12fc0]
Warning: in fn void magic_instruction_callback(void*, void*, integer_t) in simics/commands.C:478: Unexpected magic call
Warning: in fn void magic_instruction_callback(void*, void*, integer_t) in simics/commands.C:478: Unexpected magic call
Warning: in fn void magic_instruction_callback(void*, void*, integer_t) in simics/commands.C:476: val is 2
Warning: in fn void magic_instruction_callback(void*, void*, integer_t) in simics/commands.C:476: val is 2
Warning: in fn void magic_instruction_callback(void*, void*, integer_t) in simics/commands.C:477: SIMICS_get_program_counter(proc_num) is [0x1308c, line 0x13080]
Warning: in fn void magic_instruction_callback(void*, void*, integer_t) in simics/commands.C:477: SIMICS_get_program_counter(proc_num) is [0x1308c, line 0x13080]
Warning: in fn void magic_instruction_callback(void*, void*, integer_t) in simics/commands.C:478: Unexpected magic call
Warning: in fn void magic_instruction_callback(void*, void*, integer_t) in simics/commands.C:478: Unexpected magic call
I really appreciate any input.
Thanks in advance,
Ed
On Fri, Mar 13, 2009 at 12:01 AM, Edward Lee
<edwl202@xxxxxxxxx> wrote:
Hi,
I am a newbie to GEMS and I am trying to run some benchmarks using SIMICS+RUBY. I followed the guidelines in the ISCA tutorial slides and I also checked the earlier posts.
Here is what I am doing:
Step1:
Only SIMICS
./simics -stall
configure simics (itsc/dstc-disable ... etc.)
Run FFT with small input
write-configuration cold.conf
exit simics
Step2:
SIMICS+RUBY
./simics -stall
read-configuration cold.conf
configure simics
setup ruby
Run FFT with small input
ruby0.save-caches fft.caches_8p.gz
write-configuration warm.conf
exit simics
Step3:
./simics -stall
Edit warm.conf to delete ruby object and ruby timing model memory space object, save the file
read-configuration warm.conf
And at this stage I am getting the following error:
Segmentation fault (SIGSEGV) in main thread
The simulation state has been corrupted. Simulation cannot continue.
Please restart Simics.
Any ideas on what I am doing wrong?
Regards,
Ed