20150223

1. 영어 기사 읽기
1) Hot Chili Peppers Motivate Mice to Burn Fat, Scientific American
2) SIM cards hacked by U.S. and U.K. spies – report, CNN
– The whistleblower has been living in Russia under asylum since 2013. (asylum – 망명, 2014/09/13)


2. MARSS 디버깅
확인해보니, 특정 프로세스를 simulation하는 과정에서 에러가 발생하는 것 같다. 정섭이 형이 준 이미지에는 없었고, 내가 만든 이미지에는 있는 프로세스를 찾아 실행되지 않도록 하면 될 것 같다. 확인해보니, segmentation fault가 발생하며 종료한다. 에러가 발생함. 스크립트로 실행하니 에러를 확인할 수 없었던 것. assertion fail이 발생하며 종료한다.

Could not find the PID: 11971f000
qemu-system-x86_64: ptlsim/build/cache/processFootprintController.cpp:127: bool ProcessFootprintController::isEnabled(target_ulong): Assertion `enableBit' failed.
(gdb) bt
#0  0x00007ffff44c5845 in raise () from /lib/libc.so.6
#1  0x00007ffff44c9390 in abort () from /lib/libc.so.6
#2  0x00007ffff44be711 in __assert_fail () from /lib/libc.so.6
#3  0x000000000063098b in ProcessFootprintController::isEnabled(unsigned long) ()
#4  0x00000000005e4b0b in Memory::CacheController::cache_insert_cb(void*) ()
#5  0x0000000000624ddf in Memory::MemoryHierarchy::add_event(superstl::Signal*, int, void*) ()
#6  0x00000000005e5806 in Memory::CacheController::handle_interconnect_cb(void*) ()
#7  0x000000000062ed74 in Memory::P2PInterconnect::controller_request_cb(void*) ()
#8  0x000000000061d1c9 in Memory::MemoryController::wait_interconnect_cb(void*) ()
#9  0x000000000061c266 in Memory::MemoryController::access_completed_cb(void*) ()
#10 0x00007ffff51e8cfe in DRAMSim::MemoryController::update() ()
   from /home/gumdaeng/Research/MARSS_DRAMSim_with_Context_Awareness_Jeongseob/DRAMSim2/libdramsim.so
#11 0x00007ffff51ed74a in DRAMSim::MemorySystem::update() ()
   from /home/gumdaeng/Research/MARSS_DRAMSim_with_Context_Awareness_Jeongseob/DRAMSim2/libdramsim.so
#12 0x00007ffff51f345c in DRAMSim::MultiChannelMemorySystem::actual_update() ()
   from /home/gumdaeng/Research/MARSS_DRAMSim_with_Context_Awareness_Jeongseob/DRAMSim2/libdramsim.so
#13 0x00007ffff51d8cae in ClockDomain::ClockDomainCrosser::update() ()
   from /home/gumdaeng/Research/MARSS_DRAMSim_with_Context_Awareness_Jeongseob/DRAMSim2/libdramsim.so
#14 0x000000000062379e in Memory::MemoryHierarchy::clock() ()
#15 0x000000000075bb13 in BaseMachine::run(PTLsimConfig&) ()
#16 0x000000000076efa9 in ptl_simulate ()
#17 0x00000000005d6037 in sim_cpu_exec ()
#18 0x0000000000422c8d in main ()

enabled 리스트에 17번 add하면 나중에 값이 바뀌어버린다. processFootprintController에서 NUM_FOOTPRINTS가 최대 16으로 설정되어 있어 발생하는 버그. 가능한 최대값을 크게 해, 버그 해결.

다른 에러 발생. do_ctx_prefetch에서 numLogs를 호출하며 pid 0을 넘긴다.

Program received signal SIGSEGV, Segmentation fault.
0x0000000000631685 in superstl::FixedKeyValueHashtable<;unsigned long, superstl::dynarray<;unsigned long long>;*, 50, 50>;::get (this=0x39c2f10, pid=0)
    at ptlsim/lib/superstl.h:2994
2994          return data[slot];
(gdb) bt
#0  0x0000000000631685 in superstl::FixedKeyValueHashtable<;unsigned long, superstl::dynarray<;unsigned long long>;*, 50, 50>;::get (this=0x39c2f10, pid=0)%
    at ptlsim/lib/superstl.h:2994
#1  ProcessFootprintController::numLogs (this=0x39c2f10, pid=0) at ptlsim/build/cache/processFootprintController.cpp:111
#2  0x00000000005e3efe in Memory::CacheController::do_ctx_prefetch (this=0x38707f0, request=0x312f448, additional_delay=<;value optimized out>;)
    at ptlsim/build/cache/cacheController.cpp:1023
#3  0x00000000005e5228 in Memory::CacheController::cache_access_cb (this=0x38707f0, arg=<;value optimized out>;)
    at ptlsim/build/cache/cacheController.cpp:790
#4  0x00000000005e59f0 in Memory::CacheController::handle_interconnect_cb (this=0x38707f0, arg=<;value optimized out>;)
    at ptlsim/build/cache/cacheController.cpp:255
#5  0x0000000000637467 in Memory::SplitPhaseBus::BusInterconnect::broadcast_completed_cb (this=0x3a504a0, arg=0x3a52ad0)
    at ptlsim/build/cache/splitPhaseBus.cpp:377
#6  0x0000000000623808 in Memory::Event::execute (this=0x30f6e60) at ptlsim/cache/memoryHierarchy.h:110
#7  Memory::MemoryHierarchy::clock (this=0x30f6e60) at ptlsim/build/cache/memoryHierarchy.cpp:109
#8  0x000000000075bbf3 in BaseMachine::run (this=0x12ee460, config=...) at ptlsim/build/sim/machine.cpp:261
#9  0x000000000076f089 in ptl_simulate () at ptlsim/build/sim/ptlsim.cpp:1404
#10 0x00000000005d6037 in sim_cpu_exec ()
#11 0x0000000000422c8d in main ()

이 버그를 해결하던 중에 이전 버그가 반복되어, max를 500으로 늘림. 프로세스 중에 pid가 계속 바뀌는 것으로 인해 발생하는 문제로 보임. 두 번째 버그는 첫 번째 버그의 side effect인 듯 함. 버그가 아니다.

여러 개의 벤치마크를 실행할 때, 전체 IPC와 개별 IPC는 알 수 있지만 각각을 구분하기 어렵다는 문제가 있다. 해결해야 함.

Advertisements
Tagged with: , , ,
Posted in 1) Memo

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

누적 방문자 수
  • 88,328 hits
%d bloggers like this: