Re: [Gems-users] "* ERROR: object 'ruby0' has no queue associated"


Date: Sun, 14 Jan 2007 08:42:31 -0600
From: Dan Gibson <degibson@xxxxxxxx>
Subject: Re: [Gems-users] "* ERROR: object 'ruby0' has no queue associated"
Sometimes, everyone is bested by Simics... work-arounds are good things to know about. Perhaps something about the indirection... interesting, but strange.

Regards,
Dan

Shougata Ghosh wrote:

Dan
I figured out where the problem was. As I mentioned before, I added a function SIMICS_get_cycles() which I was calling from commands.C. This call was fine and was not generating any errors. However, inside ruby.c, I was calling the simics API SIM_cycle_count() directly since ruby.c included the "simics/api.h" file. This call was the culprit!! Now I added a function get_simics_cycle() in commands.C which just calls SIMICS_get_cycles(). And from ruby.c, I call get_simics_cycle() which works just great! I am still not sure why the previous method was giving an error - the underlying function call is still the same. But I'm glad it's working now :)
Thanks for all the help
shougata


Dan Gibson wrote:
>
>Some Simics API functions need to be issued only from "event-posting" modules... Opal I believe is an "event-posting" module (see opal.c for details). I don't thin SIM_cycle_count() is one of these functions, but I could be wrong.
>
>Can you trace the error to the call of SIM_cycle_count() precisely?
>
>Regards,
>Dan
>>
>>Shougata Ghosh wrote:
>>
>>
>>    Hi Dan
>>
>> I am using simics 2.2.19. Actually I did add the simics API SIM_cycle_count(). I wanted to get simics cycle from inside ruby. I made changes in the following files:
>>
>>    in GEMS/ruby/simics/interface.h:
>>       long SIMICS_get_cycles (int cpuNumber);
>>
>>    in GEMS/ruby/simics/interface.C:
>>       long SIMICS_get_cycles (int cpuNumber) {
>>
>> conf_object_t* proc_ptr = (conf_object_t *) SIM_proc_no_2_ptr(cpuNumber);
>>
>>           return (long) SIM_cycle_count (proc_ptr);
>>       }
>>
>>    in GEMS/ruby/simics/simics_api_dummy.c:
>> cycles_t SIM_cycle_count (conf_object_t* obj) { assert(0); return 0; };
>>
>> Am I missing something here? Do I need to make changes in other places as well?
>>
>>    And thanks again for such quick replies.
>>    shougata
>>
>>
>>
>>    >
>>    >What is the simics version?
>>    >Have you added any Simics API calls to the Ruby codebase?
>>    >
>>    >Regards,
>>    >Dan
>>    >
>>    >>Shougata Ghosh wrote:
>>    >>
>>    >>
>>    >>    Hi
>> >> I was running ruby with simics and I got the following error message:
>>    >>    * ERROR: object 'ruby0' has no queue associated
>>    >>     patching by forcing association to processor object 'cpu0'
>>    >>
>>
>> >> Has anyone seen this or anything similar before? This is what I was doing:
>>
>>    >>    I start simics with "./simics -stall"
>>    >>    read a checkpoint
>> >> add a hap_callback for magic breakpoints that just pauses simics
>>    >>    run my benchmark program
>>    >>
>>
>> >> When the first breakpoint is reached and simics is paused, I delete the hap_callback function I had added before.
>>
>>    >>
>>    >>    Then I load ruby with the following:
>>    >>       dstc-disable
>>    >>       magic-break-disable
>>    >>       cpu-switch-time (1)
>>    >>       c 10000
>>    >>       #Print new cpu switch time
>>    >>       cpu-switch-time
>>    >>       magic-break-enable
>>    >>       load-module ruby
>>    >>       #Ruby parameters
>>    >>       ruby0.setparam g_NUM_PROCESSORS 16
>>    >>       ruby0.setparam g_PROCS_PER_CHIP 1
>>    >>       ruby0.setparam g_MEMORY_SIZE_BYTES 268435456
>>    >>       ruby0.setparam_str REMOVE_SINGLE_CYCLE_DCACHE_FAST_PATH true
>>    >>
>>    >>    ruby0.init
>>    >>
>>    >>    [At this point, I get the following confirmation:
>>    >>       successful installation of the ruby timing model.
>>    >>       Ruby Timing Mode
>>    >>       Warning: optimizations not enabled.
>>    >>       Creating event queue...
>>    >>       Creating event queue done
>>    >>       Creating system...
>>    >>         Processors: 16
>>    >>       Creating system done
>>    >>       Ruby initialization complete]
>>    >>
>>    >>    Then I continue running the simulation
>>    >>
>> >> The first time ruby is invoked from simics, I get this error message:
>>    >>    * ERROR: object 'ruby0' has no queue associated
>>    >>     patching by forcing association to processor object 'cpu0'
>>    >>
>>    >>    Any ideas?
>>    >>    Thanks a lot
>>    >>    -shougata
>>    >>    _______________________________________________
>>    >>    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.
>>

_______________________________________________
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→]