[Gems-users] Possible Deadlock detected.


Date: Fri, 13 Feb 2009 12:33:51 +0900
From: "seonpil.kim" <seonpil.kim@xxxxxxxxx>
Subject: [Gems-users] Possible Deadlock detected.

Dear GEMS User

 

I have tried to run SPLASH2 benchmarks on GEMS1.4 and SIMICS 3,0 on DNUCA environment.

After initialization of RUBY, and c is executed.

However, when I run executable file of benchmark on Serengeti console, Possible Deadlock detected error occurred.

 

In mfacet.py file

-------------------------------------------------------------------------------------------------------------------------------------------------------------

run_sim_command("load-module ruby")

    if network_topology:

      run_sim_command('ruby0.setparam_str g_NETWORK_TOPOLOGY "%s"' % network_topology)

    run_sim_command("ruby0.setparam g_RANDOM_SEED %d" % random_seed)

    run_sim_command("ruby0.setparam g_endpoint_bandwidth %d" % 1000)

    run_sim_command("ruby0.setparam_str g_CACHE_DESIGN NUCACOL")

    run_sim_command("ruby0.setparam g_MEMORY_SIZE_BYTES 1073741824")

    run_sim_command("ruby0.setparam g_NUM_PROCESSORS %d" % processors)

    run_sim_command("ruby0.setparam g_PROCS_PER_CHIP %d" % processors_per_chip)

    run_sim_command("ruby0.setparam g_NUM_L2_BANKS %d" % l2_banks)

    run_sim_command("ruby0.setparam L2_CACHE_ASSOC 8")

    run_sim_command("ruby0.setparam L2_CACHE_NUM_SETS_BITS 21")

    run_sim_command("ruby0.setparam g_NUM_CHIPS 1")

    run_sim_command("ruby0.setparam g_NUM_MEMORIES 1")

    run_sim_command("ruby0.setparam g_NUM_DNUCA_BANK_SETS 2")

    run_sim_command("ruby0.setparam_str REMOVE_SINGLE_CYCLE_DCACHE_FAST_PATH true")

    run_sim_command("ruby0.setparam_str g_DYNAMIC_TIMEOUT_ENABLED false")

    run_sim_command("ruby0.setparam_str g_adaptive_routing false")

    run_sim_command("ruby0.setparam_str g_NUCA_PREDICTOR_CONFIG DNUCA")

    run_sim_command("ruby0.setparam_str ENABLE_MIGRATION true")

    run_sim_command("ruby0.setparam_str COLLECTOR_HANDLES_OFF_CHIP_REQUESTS true")

    run_sim_command("ruby0.setparam_str PERFECT_DNUCA_SEARCH true")

    run_sim_command("ruby0.setparam NUMBER_OF_VIRTUAL_NETWORKS %d" % 7)

    run_sim_command("ruby0.setparam_str PROTOCOL_DEBUG_TRACE true")

 

Cache Trace is following.

-------------------------------------------------------------------------------------------------------------------------------------------------------------

220836   0   0  Collector    Deallocate_Entry  Col_P>Col_NP [0x2c8f480, line 0x2c8f480]

 220860   0   0  Directory            Lockdown      M>L      [0x2c8f480, line 0x2c8f480]

 220952   0  -1        Seq                Done       >       [0x2c8f480, line 0x2c8f480] 447 cycles Directory No

 220952   0   0    L1Cache     Data_All_Tokens     IS>M_W    [0x2c8f480, line 0x2c8f480] Directory-0

 220952   0  -1        Seq                Done       >       [0x2c8f484, line 0x2c8f480] 0 cycles L1Cache No

 220953   0   0    L1CacheSend_Register_with_Owner_Tokens    M_W>S      [0x2c8f480, line 0x2c8f480]

 220953   0  -1        Seq                Done       >       [0x2c8f488, line 0x2c8f480] 0 cycles L1Cache No

 220953   0  -1        Seq                Done       >       [0x2c8f48c, line 0x2c8f480] 0 cycles L1Cache No

 220954   0  -1        Seq                Done       >       [0x2c8f490, line 0x2c8f480] 0 cycles L1Cache No

 220954   0  -1        Seq                Done       >       [0x2c8f498, line 0x2c8f480] 0 cycles L1Cache No

 220955   0  -1        Seq                Done       >       [0x2c8f49c, line 0x2c8f480] 0 cycles L1Cache No

 220955   0  -1        Seq               Begin       >       [0x2c8f440, line 0x2c8f440]

 220957   0   0    L1Cache  Own_Lock_or_Unlock      S>S      [0x2c8f480, line 0x2c8f480]

 220959   0   0    L1Cache      L1_Replacement      S>I      [0x2c8f440, line 0x2c8f440]

 220959   0   0    L1Cache                Load     NP>IS     [0x2c8f440, line 0x2c8f440]

 220961   0   0    L2Cache  Own_Lock_or_Unlock  L2_NP>L2_NP  [0x2c8f480, line 0x2c8f480]

 220964   0   4    L2CacheRegister_with_OwnerTokens  L2_NP>L2_OS  [0x2c8f480, line 0x2c8f480]

 220965   0   1    L2Cache             L1_GETS  L2_NP>L2_NP  [0x2c8f440, line 0x2c8f440]

 220965   0   8    L2Cache  Own_Lock_or_Unlock  L2_NP>L2_NP  [0x2c8f480, line 0x2c8f480]

 220966   0   1    L2CacheWriteback_Shared_Data  L2_NP>L2_S   [0x2c8f440, line 0x2c8f440]

 220981   0   0  Collector       Miss_Get_last Col_NP>Col_P  [0x2c8f440, line 0x2c8f440]

 220982   0   0  Collector        Issue_L2_Get  Col_P>Col_P  [0x2c8f440, line 0x2c8f440]

 220989   0   9    L2Cache             L1_GETS  L2_NP>L2_NP  [0x2c8f440, line 0x2c8f440]

 221001   0   0  Collector       Miss_Get_last  Col_P>Col_P  [0x2c8f440, line 0x2c8f440]

 221002   0   0  Collector        Issue_L2_Get  Col_P>Col_P  [0x2c8f440, line 0x2c8f440]

 221002   0   0    L1Cache     Use_TimeoutDrop      S>S      [0x2c8f480, line 0x2c8f480]

 221004   0   0  Directory          Unlockdown      L>NO     [0x2c8f480, line 0x2c8f480]

 221259   0   0    L1Cache     Request_Timeout     IS>IS     [0x2c8f440, line 0x2c8f440]

 221263   0   0    L1Cache  Own_Lock_or_Unlock     IS>IS     [0x2c8f440, line 0x2c8f440]

 221265   0   1    L2Cache     Persistent_GETS   L2_S>L2_S_L [0x2c8f440, line 0x2c8f440] L1Cache-0

 221269   0   9    L2Cache     Persistent_GETS L2_I_L>L2_I_L [0x2c8f440, line 0x2c8f440]

 221275   0   0    L1Cache                 Ack     IS>IS     [0x2c8f440, line 0x2c8f440]

 221281   0   0  Collector    Deallocate_Entry  Col_P>Col_NP [0x2c8f440, line 0x2c8f440]

 221310   0   0  Directory            Lockdown     NO>L      [0x2c8f440, line 0x2c8f440] L1Cache-0

Warning: in fn virtual void Sequencer::wakeup() in system/Sequencer.C:105: Possible Deadlock detected

Warning: in fn virtual void Sequencer::wakeup() in system/Sequencer.C:106: request is [CacheMsg: Address=[0x2c8f468, line 0x2c8f440] Type=LD ProgramCounter=[0x108f49c, line 0x108f480] AccessMode=SupervisorMode Size=4 Prefetch=No Version=0 Aborted=0 Time=220955 ]

Warning: in fn virtual void Sequencer::wakeup() in system/Sequencer.C:107: m_chip_ptr->getID() is 0

Warning: in fn virtual void Sequencer::wakeup() in system/Sequencer.C:108: m_version is 0

Warning: in fn virtual void Sequencer::wakeup() in system/Sequencer.C:109: keys.size() is 1

Warning: in fn virtual void Sequencer::wakeup() in system/Sequencer.C:110: current_time is 300001

Warning: in fn virtual void Sequencer::wakeup() in system/Sequencer.C:111: request.getTime() is 220955

Warning: in fn virtual void Sequencer::wakeup() in system/Sequencer.C:112: current_time - request.getTime() is 79046

Warning: in fn virtual void Sequencer::wakeup() in system/Sequencer.C:113: *m_readRequestTable_ptr is [ [0x2c8f440, line 0x2c8f440]=[CacheMsg: Address=[0x2c8f468, line 0x2c8f440] Type=LD ProgramCounter=[0x108f49c, line 0x108f480] AccessMode=SupervisorMode Size=4 Prefetch=No Version=0 Aborted=0 Time=220955 ] ]

Fatal Error: in fn virtual void Sequencer::wakeup() in system/Sequencer.C:114: Aborting

 

NUCA_Procs-1_ProcsPerChip-1_L2Banks-16_Memories-1.txt

---------------------------------------------------------------------------------------------------------------------G----------------------------------------

processors:1

procs_per_chip:1

L2banks:16

memories:1

bw_unit:1000

 

ext_node:L1Cache:0 int_node:2 link_latency:1 bw_multiplier:64

ext_node:Directory:0 int_node:13 link_latency:40 bw_multiplier:10

ext_node:Collector:0 int_node:14 link_weight:1000 link_latency:1 bw_multiplier:32

 

ext_node:L2Cache:0:bank:0 int_node:0 link_latency:1 bw_multiplier:16

ext_node:L2Cache:0:bank:1 int_node:1 link_latency:1 bw_multiplier:16

ext_node:L2Cache:0:bank:2 int_node:2 link_latency:1 bw_multiplier:16

ext_node:L2Cache:0:bank:3 int_node:3 link_latency:1 bw_multiplier:16

ext_node:L2Cache:0:bank:4 int_node:4 link_latency:1 bw_multiplier:16

ext_node:L2Cache:0:bank:5 int_node:5 link_latency:1 bw_multiplier:16

ext_node:L2Cache:0:bank:6 int_node:6 link_latency:1 bw_multiplier:16

ext_node:L2Cache:0:bank:7 int_node:7 link_latency:1 bw_multiplier:16

ext_node:L2Cache:0:bank:8 int_node:8 link_latency:1 bw_multiplier:16

ext_node:L2Cache:0:bank:9 int_node:9 link_latency:1 bw_multiplier:16

ext_node:L2Cache:0:bank:10 int_node:10 link_latency:1 bw_multiplier:16

ext_node:L2Cache:0:bank:11 int_node:11 link_latency:1 bw_multiplier:16

ext_node:L2Cache:0:bank:12 int_node:12 link_latency:1 bw_multiplier:16

ext_node:L2Cache:0:bank:13 int_node:13 link_latency:1 bw_multiplier:16

ext_node:L2Cache:0:bank:14 int_node:14 link_latency:1 bw_multiplier:16

ext_node:L2Cache:0:bank:15 int_node:15 link_latency:1 bw_multiplier:16

 

int_node:0 int_node:1 link_latency:1 bw_multiplier:16

int_node:1 int_node:2 link_latency:1 bw_multiplier:16

int_node:2 int_node:3 link_latency:1 bw_multiplier:16

 

int_node:4 int_node:5 link_latency:1 bw_multiplier:16

int_node:5 int_node:6 link_latency:1 bw_multiplier:16

int_node:6 int_node:7 link_latency:1 bw_multiplier:16

 

int_node:8 int_node:9 link_latency:1 bw_multiplier:16

int_node:9 int_node:10 link_latency:1 bw_multiplier:16

int_node:10 int_node:11 link_latency:1 bw_multiplier:16

   

int_node:12 int_node:13 link_latency:1 bw_multiplier:16

int_node:13 int_node:14 link_latency:1 bw_multiplier:16

int_node:14 int_node:15 link_latency:1 bw_multiplier:16

 

   

int_node:0 int_node:4 link_latency:1 bw_multiplier:16

int_node:4 int_node:8 link_latency:1 bw_multiplier:16

int_node:8 int_node:12 link_latency:1 bw_multiplier:16

 

int_node:1 int_node:5 link_latency:1 bw_multiplier:16

int_node:5 int_node:9 link_latency:1 bw_multiplier:16

int_node:9 int_node:13 link_latency:1 bw_multiplier:16

 

int_node:2 int_node:6 link_latency:1 bw_multiplier:16

int_node:6 int_node:10 link_latency:1 bw_multiplier:16

int_node:10 int_node:14 link_latency:1 bw_multiplier:16

 

int_node:3 int_node:7 link_latency:1 bw_multiplier:16

int_node:7 int_node:11 link_latency:1 bw_multiplier:16

int_node:11 int_node:15 link_latency:1 bw_multiplier:16

 

1) Why deadlock does occur?

 

2) I think that $GEMS/ruby/network/simple/Network_File/NetworkFileMaker doesnt make following 3 lines.

So I copied that line from other pre-existing network file. Is that right?

Is there another way to make network file as I want?

 

ext_node:L1Cache:0 ~

ext_node:Directory:0 ~

ext_node:Collector:0 ~

 

Welcome any advice.

Thanks in advance.

 

Seonpil Kim

[← Prev in Thread] Current Thread [Next in Thread→]
  • [Gems-users] Possible Deadlock detected., seonpil.kim <=