I suggest you ask in the Simics forum.
Dave Z. wrote:
 
I'm sorry about that. I didn't think it would be the
problem. I checked the simics reference manual, and
v9_memory_transaction_t still uses priv:1 for
supervisor mode.
Regards,
Dave
--- Dan Gibson <degibson@xxxxxxxx> wrote:
   
You have been working on a modified version of GEMS
 from the onset? That 
would have been useful to know somewhat earlier.
Simics 3.0 has probably changed the way it marks
 accesses as supervisor 
mode. See the Simics Reference Manual...
Dave Z. wrote:
     
may_stall value is 0, so it's not the problem. I
       
 
guess
     
the problem is in the operate memory function,
       
 
where I
     
check for mem_trans->priv bit and return 0 if it
       
 
is 1.
     
This used to work just fine with the older Simics.
       
 
The
     
strange thing is that when I comment it out, none
       
 
of
     
the user misses get recorded, but when I leave it
       
 
as
     
is, none of the misses, coherence events are
       
 
recorded
     
(all results are 0). What else can I do to
       
 
separate
     
user and supervisor execution?
Thanks.
  
--- Dan Gibson <degibson@xxxxxxxx> wrote:
---------------------------------
    That is the expected functionality. By
      
 
default,
     
the snoop interface(aka the observe memory
       
 
function)
     
is not installed.
This is getting stranger and stranger.
You can try adding more printf's throughout Ruby's
hierarchy to seewhere the operate memory function
       
 
is
     
returning from. You might want tocheck the
memory_transaction_t's->s.may_stall value -- If
may_stlalis consistently set to 0, then that would
       
 
be
     
the root of the problem.
Regards,
Dan
 Dave Z. wrote:  
Operate memory function was called many times,
butobserve memory function was not called at
       
 
all.---
     
Dan Gibson <degibson@xxxxxxxx>
wrote:---------------------------------    Add a
printf("foo\n") to ruby's simics/commands.Cin the
operate memoryfunction and the observe
      
 
memoryfunction
     
and recompile. If Ruby isreceiving requests,there
 should be a lot of foo's printed.Dave Z. wrote: 
simics> phys_mem.infoInformation about phys_mem
       
 
 
[classmemory-space]===============================================
   
                Snoop device : none               
      
Timing model : ruby0Dave.--- Dan
Gibson<degibson@xxxxxxxx> wrote:        Try the
following
afterruby0.init:phys_mem0.infophys_mem.infoWhat
       
 
does
     
Simicsprint?Dave Z. wrote:              Yes, the
SIMICS_VERSION is set to 3.0 and theGEMS_ROOTis
       
 
"..",
     
which is fine. After loading              Ruby,   
      
    
    
      Simics runs very fast as if Ruby is not
      
 working 
    
            (which              is true because
      
 
the
     
results are zero).Thanks,Dave---Dan Gibson
 <degibson@xxxxxxxx> wrote:                     
      
 
Did
     
you change the SIMICS_VERSION
settingsinMakefile.simics_version and did you
       
 
change
     
theGEMS_ROOT setting in the                     
      
 two  
    
                   module makefiles? After
      
 
changing,
     
you must perform afull                     
      
 
recompile.
     
                     Dave Z. wrote:               
      
    
    
          I'm using the -stall option when I'm
starting                               Simics.    
      
    
    
                     But the results are all zero.
      
 
In
     
my benchmarks,                               I'm  
      
    
    
                       using processor_bind to
      
 
bind a
     
thread to a                              
      
 processor.  
    
                           For example, the layout
      
 
of
     
my benchmarks areasfollows:Thread0 (assigned
tocpu0)MAGIC_BREAKPOINT;...Thread1 (assigned
tocpu1)...MAGIC_BREAKPOINT;So, when Thread0
       
 
reaches
     
thebreakpoint, I load                             
      
  
    
ruby                              and when Thread1
 reaches the breakpoint, I dump                    
      
    
    
      the                              ruby stats.
      
 
But
     
the results I get are all zero.                   
      
    
    
       The                              Simics
      
 
ouput
     
is as follows:simics> c[cpu0]v:0x0000000000011184
 p:0x001fdefd184                                
      
 magic 
    
                              (sethi 0x40000,
%g0)Setting new inspection cpu:cpu0simics>
      
 
load-module
     
rubysuccessful installation ofthe ruby timing     
      
    
    
                      model.                      
      
    
    
     simics> ruby0.initRuby Timing
ModeWarning:optimizations not enabled.Creating
eventqueue...Creating event queue doneCreating
system... Processors: 2Creating system doneRuby
initializationcompletesimics> c[cpu1]
v:0x00000000000130c0p:0x001d68130c0               
      
    
    
             magic                               
(sethi 0x40000, %g0)Setting new inspection
cpu:cpu1simics> cThis used to work with GEMS 1.3
 andSimics                                2.2.19.  
      
    
    
                                                  
      
    
    
  Is                              there any ideas
       
 
why
     
it doesn't work withSimics3.0.22?Thanks a lot!---
       
 
Dan
     
Gibson<degibson@xxxxxxxx> wrote:                  
      
    
    
                 Use the -stall option on the
      
 
simics
     
command                                          
line.                                           
      
 
Dave
     
Z. wrote:                                         
      
    
    
    Hi, Is the following problem not a
GEMSissue?Thanks,Dave----- Original Message
      
 
----From:
     
DaveZ. <zhu_dave@xxxxxxxxx>To: gems
Users<gems-users@xxxxxxxxxxx>Sent: Tuesday,
       
 
November
     
21,2006 11:57:21 AMSubject: [Gems-users]
rubyresultsHi,I've upgraded my Simics version to
 3.0.22.                                           
      
    
    
     Everything                                   
      
    
    
          seems to work fine except for the Ruby  
      
    
    
                                                  
results.                                          
      
    
    
                                                  
      
    
    
                  I'm                             
      
    
    
                      not sure if this is a GEMS
problem, but the                                  
      
    
    
                      results                     
      
    
    
                                                  
      
    
    
                             I                    
      
    
    
                         get regarding the memory
requests (misses,                                 
      
    
    
               coherence                          
      
    
    
                   events, etc.) are all zero.
      
 
After
     
readingmycheckpoint, I do
       
 
 
thefollowing:instruction-fetch-modeinstruction-fetch-traceistc-disabledstc-disablecpu-switch-time1magic-break-enableload-module
   
=== message truncated ===
  
____________________________________________________________________________________
Yahoo! Music Unlimited
Access over 1 million songs.
http://music.yahoo.com/unlimited
_______________________________________________
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!
 
 |