Re: [Gems-users] Ruby initialization fails in simics 3.0.18


Date: Mon, 11 Sep 2006 11:33:06 -0700
From: "Mishali Naik" <mishalinaik@xxxxxxxxx>
Subject: Re: [Gems-users] Ruby initialization fails in simics 3.0.18
Thanks a lot Dan and Mike,
           I just realized that my checkpoint was only for 1 cpu.
Before, I was using gems with simics 2.2 using bagle machine. And when
I switched to 3.0 I started using abisko and I forgot to set the
machine parameter num_cpus which is by defualt 1.

-Mishali

On 9/11/06, Dan Gibson <degibson@xxxxxxxx> wrote:
I spent a lot of time figuring out this issue with Simics 3.0.5. I
finally tracked down the segmentation fault to something going on within
the standard C++ string library, which suggested memory corruption.

The root of the issue is that Simics is linked against an older version
of glibc, which handles memory management a little differently than more
modern versions. We made a simple module to verify the issue.

To figure out if the version incompatibility is indeed the issue, please
do the following:

Open $GEMS/ruby/init.C and place the following lines at the start of the
init_simulator() function:

cout << "Hello World" << endl << flush;
string desc = string("Hello World, ")+string("01")+string("
")+string("02")+string(" ")+string("03");
cout << desc << endl << flush;

If you see Hello World followed by a segmentation fault, we're dealing
with the same problem.
If you see the whole string, we might be dealing with a separate
problem. I say *might* because it is likely that changes from 3.0.5 ->
3.0.18 have fixed the above problem and introduced new ones -- they
dynamic interaction of memory allocations/deallocations are enormously
difficult to debug.

IF a glibc compatibility issue is at the root of the problem, there are
essentially three options:
1) Use an old version of gcc/glibc to compile ruby -- the same version
used by Simics would be ideal.
2) Ask Virtutech to do one of the following:
A) Provide a copy of the Simics 3.0.11 tarball (known to work with Ruby)
(fat chance)
B) Provide a compiled version of Simics that used a modern gcc/glibc.
(fat chance)
3) Use Simics 2.2.19 instead of 3.0.X.

Regards,
Dan

Mishali Naik wrote:
> I am using gcc 3.4.4. thanks for the prompt reply. I have spent quite
> sometime trying to figure out...
>
> On 9/11/06, Dan Gibson <degibson@xxxxxxxx> wrote:
>
>> This sounds like an issue I ran into some time ago relating to glibc.
>> Essentially, there was a version incompatibility between my compiler the
>> compiler used to compile Simics.
>>
>> What version of gcc are you using?
>>
>> Regards,
>> Dan Gibson
>>
>> Mishali Naik wrote:
>>
>>> Hi,
>>>         I am trying to initialize the ruby module with ruby0.init in
>>> simics 3.0.18. But the initialization fails because of a segementation
>>> fault:
>>>
>>> Turning I-STC off and flushing old data
>>> Turning D-STC off and flushing old data
>>> successful installation of the ruby timing model.
>>> Ruby Timing Mode
>>> Creating event queue...
>>> Creating system ...
>>>     Processors : 8
>>> Segmentation fault (SIGSEGV) in main thread.
>>> The simulation state has been corrupted. Simulation cannot continue.
>>>
>>>            I traced the calls and the assertion in
>>> pc_step_t SIM_step_count(conf_object_t *p) { assert(0); return 0; };
>>> //fails for the processor 1. This function is being called by
>>> integer_t SIMICS_get_insn_count(int cpuNumber)
>>> {
>>>   processor_t* cpu = SIM_proc_no_2_ptr(cpuNumber);
>>>    return SIM_step_count((conf_object_t*) cpu);
>>>
>>> }
>>>
>>> Processor 0 gets initialized fine.
>>>
>>>                             I appreciate all your help.
>>>
>>> thanks,
>>> Mishali
>>> _______________________________________________
>>> Gems-users mailing list
>>> Gems-users@xxxxxxxxxxx
>>> https://lists.cs.wisc.edu/mailman/listinfo/gems-users
>>> Use Google to search the GEMS Users mailing list by adding "site:https://lists.cs.wisc.edu/archive/gems-users/"; to your search.
>>>
>>>
>>>
>> --
>> http://www.cs.wisc.edu/~gibson [esc]:wq!
>>
>> _______________________________________________
>> Gems-users mailing list
>> Gems-users@xxxxxxxxxxx
>> https://lists.cs.wisc.edu/mailman/listinfo/gems-users
>> Use Google to search the GEMS Users mailing list by adding "site:https://lists.cs.wisc.edu/archive/gems-users/"; to your search.
>>
>>
>>
> _______________________________________________
> Gems-users mailing list
> Gems-users@xxxxxxxxxxx
> https://lists.cs.wisc.edu/mailman/listinfo/gems-users
> Use Google to search the GEMS Users mailing list by adding "site:https://lists.cs.wisc.edu/archive/gems-users/"; to your search.
>
>

--
http://www.cs.wisc.edu/~gibson [esc]:wq!

_______________________________________________
Gems-users mailing list
Gems-users@xxxxxxxxxxx
https://lists.cs.wisc.edu/mailman/listinfo/gems-users
Use Google to search the GEMS Users mailing list by adding "site:https://lists.cs.wisc.edu/archive/gems-users/"; to your search.


[← Prev in Thread] Current Thread [Next in Thread→]