AXLEproject / axle-zsim-nvmain

This is a fork of zsim (see https://github.com/s5z/zsim) which integrates the NVMain main memory simulator, adding 3D stacking and non-volatile memory support.
GNU General Public License v2.0
25 stars 16 forks source link

run SPEC CPU2k6 failed with AXLE-sandy-pcm.cfg #5

Closed hftsin closed 9 years ago

hftsin commented 9 years ago

Hi all,

I run with SPEC CPU2k6 to evalute my PCM relead proposal. When AXLE-sandy-pcm.cfg is fed to zsim, the simulation crashed with the following backtrace dump,

[S 0] [1] Internal exception detected: [S 0] [1] Code: 1 [S 0] [1] Address: 0x7ffff6862451 [S 0] [1] Description: Exception Code: ACCESS_INVALID_ADDRESS. Exception Address = 0x7ffff6862451. Access Type: UNKNOWN. Access Address = 0x000000000 [S 0] [1] Caused by invalid access to address 0x0 [S 0] [1] Backtrace (18/40 max frames) [S 0] [1] /home/hanfeng/Workspace/ZSIM/zsim-src/build/opt/zsim.cpp:1417 / InternalExceptionHandler [S 0] [1] :? / LEVEL_PINCLIENT::IEH_CALLBACKS::NotifyInternalException(unsigned int, LEVEL_BASE::EXCEPTIONINFO, LEVELVM::CONTEXT) [S 0] [1] /home/hanfeng/Workspace/tools/pin/intel64/bin/pinbin(_ZN8LEVEL_VM12SIGNALS_IMPL19InternalHandlerSyncEiPN7BARECRT8SIGXINFOEPN5PINVM11ISIGCONTEXTEPPKNS_14SCT_ATTRIBUTESEPNS_5PCTXTEPj+0x462) [0x3077e002] [S 0] [1] /home/hanfeng/Workspace/tools/pin/intel64/bin/pinbin(_ZN8LEVEL_VM12SIGNALS_IMPL20HandlePhysicalSignalEPN7BARECRT8SIGXINFOEPN5PINVM11ISIGCONTEXTE+0x200) [0x30783c90] [S 0] [1] /home/hanfeng/Workspace/tools/pin/intel64/bin/pinbin(_ZN5PINVM28SIGNAL_DETAILS_LINUX_INTEL6415InternalHandlerEiPN7BARECRT8SIGXINFOEPv+0x9a) [0x308245ca] [S 0] [1] /home/hanfeng/Workspace/tools/pin/intel64/bin/pinbin(BARECRT_SigReturnRt+0) [0x3084fa3c] [S 0] [1] /home/hanfeng/Workspace/ZSIM/zsim-src/build/opt/timing_event.h:173 / TimingEvent::release() [S 0] [1] /home/hanfeng/Workspace/ZSIM/zsim-src/build/opt/nvmain-src/NVM/nvmain.cpp:495 / NVM::NVMain::RequestComplete(NVM::NVMainRequest*) [S 0] [1] /home/hanfeng/Workspace/ZSIM/zsim-src/build/opt/nvmain-src/src/EventQueue.cpp:383 / NVM::EventQueue::Process() [S 0] [1] /home/hanfeng/Workspace/ZSIM/zsim-src/build/opt/nvmain-src/src/EventQueue.cpp:338 / NVM::EventQueue::Loop(unsigned long) [S 0] [1] /home/hanfeng/Workspace/ZSIM/zsim-src/build/opt/nvmain-src/src/EventQueue.cpp:528 / NVM::GlobalEventQueue::Cycle(unsigned long) [S 0] [1] /home/hanfeng/Workspace/ZSIM/zsim-src/build/opt/nvmain_mem_ctrl.cpp:288 / NVMainMemory::tick(unsigned long) [S 0] [1] /home/hanfeng/Workspace/ZSIM/zsim-src/build/opt/nvmain_mem_ctrl.cpp:98 / SchedEventNVMain::simulate(unsigned long) [S 0] [1] /home/hanfeng/Workspace/ZSIM/zsim-src/build/opt/timing_event.h:163 / TimingEvent::run(unsigned long) [S 0] [1] /home/hanfeng/Workspace/ZSIM/zsim-src/build/opt/contention_sim.cpp:309 / ContentionSim::simulatePhaseThread(unsigned int) [S 0] [1] /home/hanfeng/Workspace/ZSIM/zsim-src/build/opt/contention_sim.cpp:282 / ContentionSim::simThreadLoop(unsigned int) [S 0] [1] /home/hanfeng/Workspace/tools/pin/intel64/bin/pinbin(_ZN8LEVEL_VM17VM_THREAD_DB_UNIX13THREAD_RUNNER9RunThreadEPN11OS_SERVICES7ITHREADE+0x291) [0x3078d8b1] [S 0] [1] /home/hanfeng/Workspace/tools/pin/intel64/bin/pinbin(_ZN11OS_SERVICES6THREAD12RootFunctionEPv+0x26) [0x3084f036] C:Tool (or Pin) caused signal 11 at PC 0x7ffff6862451 [H] Child 30249 done [H] Panic on build/opt/zsim_harness.cpp:123: Child 30249 (idx 0) exit was anomalous, killing simulation

The zsim log also reports the failure as follows.

[S 0] Failed assertion on build/opt/timing_event.h:173: state should be 3, 15988976 instead

However, when AXLE-sandy-dram.cfg is fed to zsim, the simulation can pass without any errors.

May I have any suggestions to handle this problem?

miconof commented 9 years ago

The default memory controller in the pcm config was FRFCFS-WQF, which only works properly using traces. I changed it to FRFCFS which should always be the default. Pull the latest change and this should be fixed.

I've executed a couple of SPEC06 benchmarks to completion without issues.