Re: [Gems-users] Choosing which Ruby coherence protocol to use...


Date: Tue, 16 Jun 2009 20:05:13 -0400
From: Edward Lee <edwl202@xxxxxxxxx>
Subject: Re: [Gems-users] Choosing which Ruby coherence protocol to use...
I actually had the same problem and asked this before. However, I couldn't solve the issue at that time. So, let me give you a summary maybe you will find a fix and let us know.

Basically, it looks like you are using Simics 3.x and in that case generated RUBY library actually goes to $GEMS_ROOT/simics/amd64-linux/lib for a 64-bit machine. If you look at the corresponding Makefile under RUBY folder, "movemodule" part, does not move ruby.so anywhere as Simics 2.x.

You can change the Makefile or copy them manually to $DESTINATION/modules. Although when I changed the makefile to mimic Simics 2.X case for Simics 3.x, Ruby is not compiled successfully. But let's say you moved the ruby.so in either way. $SIMICS_EXTRA_LIB should point to ./modules for RUBY to run multiple protocols safely as suggested from the wiki. And the problem looks like Simics 3.x uses a different way to load the modules in terms of paths to look. So, at the end last compiled lib which actually stays at the default path gets to run, thats why you see the results you observed.

Summary:

- GEMS developers should have a reason not to move the ruby.so file in Simics 3.x, maybe that might help understanding the issue here.
- ./SIMICS_EXTRA_LIB might not be working for Simics 3.x, some experts can clarify this maybe? because if I move (not copy) ruby.so to ./modules, RUBY is not loaded. So, we should know how to load different modules, i.e. to see where SIMICS looks for those libs.
- We might be doing a very simple mistake which no other GEMS user had done before.

Although I gave up digging a solution this before, now I will have a look at SIMICS documents to see if we are missing anything here. And maybe we should ask this on the Simics Forum.

Hope this summary of my unsuccessful  experience helps you succeed in doing this.

Regards,

Ed



On Tue, Jun 16, 2009 at 7:21 PM, David Bonavila <david.bonavila@xxxxxxxxxxxxxxxxxx> wrote:

So if I run "GEMS_ROOT/simics/home/MSI_MOSI_CMP_directory/simics -stall config.simics", it actually runs MOSI_SMP_bcast, which is the last one I compiled. Why?

Thanks!

2009/6/17 David Bonavila <david.bonavila@xxxxxxxxxxxxxxxxxx>


Hi again,

I have compiled Ruby with 2 protocols:
- First MSI_MOSI_CMP_directory (make PROTOCOL=MSI_MOSI_CMP_directory DESTINATION=MSI_MOSI_CMP_directory).
- Second MOSI_SMP_bcast (make PROTOCOL=MOSI_SMP_bcast DESTINATION=MOSI_SMP_bcast).

In "GEMS_ROOT/simics/home/MSI_MOSI_CMP_directory" I have a softlink called "simics" which points to "../sarek/simics", and that points to "../../simics" (which is in fact "GEMS_ROOT/simics/simics" executable).

The same happens with the "MOSI_SMP_bcast" folder. So I can only run Ruby with the last protocol I have compiled.

What am I doing wrong??


Thank you!!



2009/6/15 David Bonavila <david.bonavila@xxxxxxxxxxxxxxxxxx>

OK, thank you for your answer!!

Greetings!!

2009/6/15 David Bonavila <david.bonavila@xxxxxxxxxxxxxxxxxx>


Hi,

I am using Ruby + Opal.
I have compiled Ruby with the MSI_MOSI_CMP_directory protocol.
I would like to know if I can have other protocols compiled (MOESI_CMP_token for example) and choose which one of them to use for simulation, or I have to recompile every time I want to use a different protocol.

For example, can I compile MSI_MOSI_CMP_directory and MOESI_CMP_token ONCE, and then simulate using one of them, and then simulate again using the other one, without recompiling??


Thank you!





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