[Gems-users] Abort Trap in LogTM


Date: Fri, 1 Aug 2008 12:39:12 -0700 (PDT)
From: arrvindh shriraman <arrvindh_shriraman@xxxxxxxxx>
Subject: [Gems-users] Abort Trap in LogTM
I am trying to understand the abort handler sequence in In version 2.1 of logtm

1) Simics v9_exception_type doesn't seem to specify anything for trap 0x122.
    When you set the s.exception_t in SimicsProcessor.C what exactly is the control flow ?
    Do you get to the user level handler or is this just to faithfully model the performance

2) I would also like to understand what this sequence of instructions in XACT_MGR::traptoHandler does...

  // We temporarily flip the LSB of PSTATE so that simics can access the program       global registers instead of the alternate globals. Note that we are currently  in a system trap.                                                                                                                                                       
  int pstate_rn_no = SIMICS_get_register_number(logical_proc_no, "pstate");                                                                                                  
  uint64 pstate_val = SIMICS_read_register(logical_proc_no, pstate_rn_no);                                                                                                   
  SIMICS_write_register(logical_proc_no, pstate_rn_no, (pstate_val ^ 0x1));                                                                                                  
  int tid_rn_no = SIMICS_get_register_number(logical_proc_no, "g2");                                                                                                         
  SIMICS_write_register(logical_proc_no, tid_rn_no, m_tid[thread]);                                                                                                          
  SIMICS_write_register(logical_proc_no, pstate_rn_no, pstate_val);                                                                                                          
                                                                                                                                                                &n bsp;            
  3) and finally the transaction_manager_stub(), tm_trap_handler()
     How do you actually invoke these given that you don't seem to register either of these function pointers with the simulator. I am assuming RUBY_MAGIC_CALL(60) is the call used to register handler addresses.


 4) The ATMTP folks seem to be directly modifying the PC and NPC registers to invoke their handlers is their any reason why you are doing it differently ?

Thanks                                        


Arrvindh Shriraman
Conputer Science Department
University of Rochester

[← Prev in Thread] Current Thread [Next in Thread→]
  • [Gems-users] Abort Trap in LogTM, arrvindh shriraman <=