[Gems-users] "Segmentation fault" when executing "opal0.sim-step"...


Date: Thu, 23 Jul 2009 22:10:31 +0200
From: David Bonavila <david.bonavila@xxxxxxxxxxxxxxxxxx>
Subject: [Gems-users] "Segmentation fault" when executing "opal0.sim-step"...

Hi.

I'm trying to run a simulation with Ruby and Opal, loading a checkpoint from a machine with 1 CPU and Solaris 10 installed.
I have executed ./simics abisko-common.simics, Solaris loaded fine, and I have created the checkpoint test-1p.check.

-----------------------------------------------------------------------------------------------------------------
abisko-common.simics contains the following lines:
$os = "solaris10"
if not defined create_network {$create_network = "yes"}
$disk_size = 8513945600
###
run-command-file "%script%/serengeti-6800-system.include"
instantiate-components
$eth_comp = $pci_hme
$eth_cnt = ""
run-command-file "%simics%/targets/common/add-eth-link.include"
run-command-file "%script%/abisko-setup.include"
-----------------------------------------------------------------------------------------------------------------

So by default, it has just 1 cpu.
Then I run the following commands from Simics and I get this output:

simics> read-configuration test-1p.check
simics> cpu-switch-time 1
The switch time will change to 1 cycles (for CPU-0) once all processors have synchronized.
simics> instruction-fetch-mode instruction-fetch-trace
[cpu0 info] Note that on this cpu, instruction-fetch-trace is implemented using instruction-cache-access-trace with a suitable cache line size.
simics> istc-disable
Turning I-STC off and flushing old data
simics> dstc-disable
Turning D-STC off and flushing old data

simics> load-module ruby
successful installation of the ruby timing model.
simics> ruby0.setparam g_NUM_PROCESSORS 1
simics> ruby0.setparam g_PROCS_PER_CHIP 1
simics> ruby0.setparam NUMBER_OF_VIRTUAL_NETWORKS 5
simics> ruby0.init
Ruby Timing Mode
Creating event queue...
Creating event queue done
Creating system...
  Processors: 1
Creating system done
Ruby initialization complete

simics> load-module opal
Queue registration cpu0
successful installation of the opal queue.
hfa_init_local done:
simics> opal0.init
pstate_t: warning: control register #0 == "(null)" has simics name "g0".
pstate_t: warning: control register #1 == "(null)" has simics name "g1".
pstate_t: warning: control register #2 == "(null)" has simics name "g2".
pstate_t: warning: control register #3 == "(null)" has simics name "g3".
pstate_t: warning: control register #4 == "(null)" has simics name "g4".
pstate_t: warning: control register #5 == "(null)" has simics name "g5".
pstate_t: warning: control register #6 == "(null)" has simics name "g6".
pstate_t: warning: control register #7 == "(null)" has simics name "g7".
pstate_t: warning: control register #8 == "(null)" has simics name "o0".
pstate_t: warning: control register #9 == "(null)" has simics name "o1".
pstate_t: warning: control register #10 == "(null)" has simics name "o2".
pstate_t: warning: control register #11 == "(null)" has simics name "o3".
pstate_t: warning: control register #12 == "(null)" has simics name "o4".
pstate_t: warning: control register #13 == "(null)" has simics name "o5".
pstate_t: warning: control register #14 == "(null)" has simics name "o6".
pstate_t: warning: control register #15 == "(null)" has simics name "o7".
pstate_t: warning: control register #16 == "(null)" has simics name "l0".
pstate_t: warning: control register #17 == "(null)" has simics name "l1".
pstate_t: warning: control register #18 == "(null)" has simics name "l2".
pstate_t: warning: control register #19 == "(null)" has simics name "l3".
pstate_t: warning: control register #20 == "(null)" has simics name "l4".
pstate_t: warning: control register #21 == "(null)" has simics name "l5".
pstate_t: warning: control register #22 == "(null)" has simics name "l6".
pstate_t: warning: control register #23 == "(null)" has simics name "l7".
pstate_t: warning: control register #24 == "(null)" has simics name "i0".
pstate_t: warning: control register #25 == "(null)" has simics name "i1".
pstate_t: warning: control register #26 == "(null)" has simics name "i2".
pstate_t: warning: control register #27 == "(null)" has simics name "i3".
pstate_t: warning: control register #28 == "(null)" has simics name "i4".
pstate_t: warning: control register #29 == "(null)" has simics name "i5".
pstate_t: warning: control register #30 == "(null)" has simics name "i6".
pstate_t: warning: control register #31 == "(null)" has simics name "i7".
pstate_t: warning: control register #99 == "(null)" has simics name "ecache_error_enable".
pstate_t: warning: control register #100 == "(null)" has simics name "asynchronous_fault_status".
pstate_t: warning: control register #101 == "(null)" has simics name "asynchronous_fault_address".
pstate_t: warning: control register #102 == "(null)" has simics name "out_intr_data0".
pstate_t: warning: control register #103 == "(null)" has simics name "out_intr_data1".
pstate_t: warning: control register #104 == "(null)" has simics name "out_intr_data2".
pstate_t: warning: control register #105 == "(null)" has simics name "out_intr_data3".
pstate_t: warning: control register #106 == "(null)" has simics name "out_intr_data4".
pstate_t: warning: control register #107 == "(null)" has simics name "out_intr_data5".
pstate_t: warning: control register #108 == "(null)" has simics name "out_intr_data6".
pstate_t: warning: control register #109 == "(null)" has simics name "out_intr_data7".
Ruby: ruby-opal link established. removing timing_model.
opalinterface: doing notify callback
Opal: opal-ruby link established.
OpalInterface: installation successful.
simics> opal0.sim-start "output_test1.opal"
[0]    PC 0x105b6d4    NPC 0x105b6d8    ctx 0x0
simics> opal0.sim-step 100000
Segmentation fault (SIGSEGV) in main thread
The simulation state has been corrupted. Simulation cannot continue.
Please restart Simics.


So them both seem to load and init correctly, but when I execute "opal0.sim-step 100000", it gives the segmentation fault you can see above.

If I start the simulation without Opal (just "c" after initializing Ruby), everything works fine.
Opal and Ruby are compiled with gcc/g++ 3.4, and all this commands work fine on a 2-core system checkpoint I created from the same abisko-sol10.state and a persistent-state (with a CMP protocol of course). But with 1 processor it is not working.

I am using Simics 3.0.29 and GEMS 2.1.

Can anyone help me?? Thanks!!


Regards,
David

[← Prev in Thread] Current Thread [Next in Thread→]
  • [Gems-users] "Segmentation fault" when executing "opal0.sim-step"..., David Bonavila <=