[Gems-users] Simics abort when running transactional microbenchmark


Date: Tue, 23 Oct 2012 11:25:34 +0800
From: Yunyun Jiang <jiangyunyuntt@xxxxxxxxx>
Subject: [Gems-users] Simics abort when running transactional microbenchmark
Hi, all,

I inserted some MAGIC_BREAKPOINT in the following functions in "$GEMS/microbenchmark/transactional/common/transaction.c":
void compensation_handler()
void commit_handler()
void register_compensation_handler()
void register_commit_handler()
void register_compensating_action()
void register_commit_action()
void tm_unroll_log_entry()
void tm_execute_compensation()
void tm_execute_commit_action()
void tm_execute_commit_actions()
void tm_release_isolation()
void tm_execute_summary_signature_conflict_handlers()
void tm_register_summary_signature_conflict_handler()
void tm_init_summary_signature_conflict_handlers()
void tm_log_unroll()
void tm_trap_handler()
void transaction_manager_stub()
void touch_log()
void walk_log()
void init_log()
void set_log_base()
void set_handler_address()
void set_transaction_registers()
void ruby_watch()

Then I ran the "paging" microbenchmark in "$GEMS/microbenchmark/transactional/paging" with "./paging 2 2" on the 4-core simulator. I have got a few break points at first:
-------------------------------------------------------------------------------------------------
[cpu0] v:0x0000000000013118 p:0x0003bf03118  magic (sethi 0x40000, %g0)
set_handler_address () in paging
simics> c
 1955659 0 [0,0] Setting Handler Address: [0x12bf0, line 0x12bc0]
......
[cpu1] v:0x0000000000013118 p:0x0003bf03118  magic (sethi 0x40000, %g0)
Setting new inspection cpu: cpu1
set_handler_address () in paging
simics> c
 1957286 1 [1,0] Setting Handler Address: [0x12bf0, line 0x12bc0]
-------------------------------------------------------------------------------------------------

But the simulation was aborted soon and showing:
------------------------------------------------------------------------------------------
1994032 1 SHOULD TRAP IN NON_XACT 0 *****************WARNING********************
simics-common: log_tm/TransactionSimicsProcessor.C:595: void TransactionSimicsProcessor::retiredMemRef(memory_transaction_t*): Assertion `0' failed.
Abort (SIGABRT) in main thread
Crash stack trace:
#0 0x00002ab85db86765 <unknown>
...
#102 0x00002ab85e59cba0 <unknown>
The simulation state has been corrupted. Simulation cannot continue.
Please restart Simics.
[cpu1] v:0x00000000000117b8 p:0x00039e917b8  stw %g0, [%g1 + %g0]
slaveLoop () in paging
simics> 
-------------------------------------------------------------------------------------------

Besides, the "paging" benchmark will continue running even for a couple of days if there are no MAGIC_BREAKPOINT inserted in trancaction.c. Is that normal?

Could any one please tell me where am I doing wrong and where is the transaction conflict handler of LogTM in transaction.c or somewhere else? Thanks!


Best regards, 
Yunyun


--
JIANG Yunyun
Institute of High Performance Computing,
Department of Computer Science and Technology,
Tsinghua University, Beijing, China, 100084.
[← Prev in Thread] Current Thread [Next in Thread→]
  • [Gems-users] Simics abort when running transactional microbenchmark, Yunyun Jiang <=