When I try to change some code for adding SMT ARM FS support in gem5, I use 
debug flags to find that the O3 CPU cannot commit instructions in the second 
hardware context  (configured as 1c2t), as the Instruction [sn:65] in the 
[tid:1] cannot get committed forever:

FullO3CPU: Ticking main, FullO3CPU.
 493500: system.cpu.fetch: Running stage.
 493500: system.cpu.fetch: Attempting to fetch from [tid:0]
 493500: system.cpu.fetch: [tid:0] Adding instructions to queue to decode.
 493500: system.cpu.decode: Processing [tid:0]
 493500: system.cpu.decode: [tid:0] Stall fom Rename stage detected.
 493500: system.cpu.decode: [tid:0] Blocking.
 493500: system.cpu.decode: Processing [tid:1]
 493500: system.cpu.decode: [tid:1] Not blocked, so attempting to run stage.
 493500: system.cpu.decode: [tid:1] Nothing to do, breaking out early.
 493500: system.cpu.rename: Processing [tid:0]
 493500: system.cpu.rename: [tid:0] Free IQ: 16, Free ROB: 66, Free LQ: 11, 
Free SQ: 11, FreeRM 28(930 1024 166 28 5108)
 493500: system.cpu.rename: [tid:0] 0 instructions not yet in ROB
 493500: system.cpu.rename: calcFreeLQEntries: free lqEntries: 11, 
loadsInProgress: 0, loads dispatchedToLQ: 0
 493500: system.cpu.rename: [tid:0] Stall: Serialize stall and ROB is not empty.
 493500: system.cpu.rename: [tid:0] Blocking.
 493500: system.cpu.rename: Processing [tid:1]
 493500: system.cpu.rename: [tid:1] Free IQ: 32, Free ROB: 95, Free LQ: 17, 
Free SQ: 17, FreeRM 28(930 1024 166 28 5108)
 493500: system.cpu.rename: [tid:1] 0 instructions not yet in ROB
 493500: system.cpu.rename: calcFreeLQEntries: free lqEntries: 17, 
loadsInProgress: 0, loads dispatchedToLQ: 0
 493500: system.cpu.rename: [tid:1] Not blocked, so attempting to run stage.
 493500: system.cpu.rename: [tid:1] Nothing to do, breaking out early.
 493500: system.cpu.rename: Activity this cycle.
 493500: system.cpu: Activity: 13
 493500: system.cpu.iew: Issue: Processing [tid:0]
 493500: system.cpu.iew: [tid:0] Not blocked, so attempting to run dispatch.
 493500: system.cpu.iew: Issue: Processing [tid:1]
 493500: system.cpu.iew: [tid:1] Not blocked, so attempting to run dispatch.
 493500: system.cpu.iq: Attempting to schedule ready instructions from the IQ.
 493500: system.cpu.iq: Not able to schedule any instructions.
 493500: system.cpu.iew: Processing [tid:0]
 493500: system.cpu.iew: [tid:0], Dispatch dispatched 0 instructions.
 493500: system.cpu.iew: Processing [tid:1]
 493500: system.cpu.iew: [tid:1], Dispatch dispatched 0 instructions.
 493500: system.cpu.iew.lsq.thread0: LQ size: 18, #loads occupied: 6
 493500: system.cpu.iew.lsq.thread1: LQ size: 18, #loads occupied: 0
 493500: system.cpu.iew.lsq.thread0: SQ size: 18, #stores occupied: 6
 493500: system.cpu.iew.lsq.thread1: SQ size: 18, #stores occupied: 0
 493500: system.cpu.iew: IQ has 48 free entries (Can schedule: 0).  LQ has 28 
free entries. SQ has 28 free entries.
 493500: system.cpu.commit: Getting instructions from Rename stage.
 493500: system.cpu.commit: Trying to commit instructions in the ROB.
 493500: system.cpu.commit: [tid:0] Can't commit, Instruction [sn:65] PC 
(0xf0=>0xf4).(0=>1) is head of ROB and not ready
 493500: system.cpu.commit: [tid:0] ROB has 30 insts & 66 free entries.
 493500: system.cpu.commit: [tid:1] Instruction [sn:42] PC (0xc4=>0xc8).(0=>1) 
is head of ROB and ready to commit
 493500: system.cpu.commit: [tid:1] ROB has 1 insts & 95 free entries.
 493500: system.cpu: Activity: 12
 493500: system.cpu: Scheduling next tick!
 494000: system.cpu: 

FullO3CPU: Ticking main, FullO3CPU.
 494000: system.cpu.fetch: Running stage.
 494000: system.cpu.fetch: Attempting to fetch from [tid:0]
 494000: system.cpu.fetch: [tid:0] Adding instructions to queue to decode.
 494000: system.cpu.decode: Processing [tid:0]
 494000: system.cpu.decode: [tid:0] Stall fom Rename stage detected.
 494000: system.cpu.decode: [tid:0] Blocking.
 494000: system.cpu.decode: Processing [tid:1]
 494000: system.cpu.decode: [tid:1] Not blocked, so attempting to run stage.
 494000: system.cpu.decode: [tid:1] Nothing to do, breaking out early.
 494000: system.cpu.rename: Processing [tid:0]
 494000: system.cpu.rename: [tid:0] Free IQ: 16, Free ROB: 66, Free LQ: 11, 
Free SQ: 11, FreeRM 28(930 1024 166 28 5108)
 494000: system.cpu.rename: [tid:0] 0 instructions not yet in ROB
 494000: system.cpu.rename: calcFreeLQEntries: free lqEntries: 11, 
loadsInProgress: 0, loads dispatchedToLQ: 0
 494000: system.cpu.rename: [tid:0] Stall: Serialize stall and ROB is not empty.
 494000: system.cpu.rename: [tid:0] Blocking.
 494000: system.cpu.rename: Processing [tid:1]
 494000: system.cpu.rename: [tid:1] Free IQ: 32, Free ROB: 95, Free LQ: 17, 
Free SQ: 17, FreeRM 28(930 1024 166 28 5108)
 494000: system.cpu.rename: [tid:1] 0 instructions not yet in ROB
 494000: system.cpu.rename: calcFreeLQEntries: free lqEntries: 17, 
loadsInProgress: 0, loads dispatchedToLQ: 0
 494000: system.cpu.rename: [tid:1] Not blocked, so attempting to run stage.
 494000: system.cpu.rename: [tid:1] Nothing to do, breaking out early.
 494000: system.cpu.rename: Activity this cycle.
 494000: system.cpu: Activity: 13
 494000: system.cpu.iew: Issue: Processing [tid:0]
 494000: system.cpu.iew: [tid:0] Not blocked, so attempting to run dispatch.
 494000: system.cpu.iew: Issue: Processing [tid:1]
 494000: system.cpu.iew: [tid:1] Not blocked, so attempting to run dispatch.
 494000: system.cpu.iq: Attempting to schedule ready instructions from the IQ.
 494000: system.cpu.iq: Not able to schedule any instructions.
 494000: system.cpu.iew: Processing [tid:0]
 494000: system.cpu.iew: [tid:0], Dispatch dispatched 0 instructions.
 494000: system.cpu.iew: Processing [tid:1]
 494000: system.cpu.iew: [tid:1], Dispatch dispatched 0 instructions.
 494000: system.cpu.iew.lsq.thread0: LQ size: 18, #loads occupied: 6
 494000: system.cpu.iew.lsq.thread1: LQ size: 18, #loads occupied: 0
 494000: system.cpu.iew.lsq.thread0: SQ size: 18, #stores occupied: 6
 494000: system.cpu.iew.lsq.thread1: SQ size: 18, #stores occupied: 0
 494000: system.cpu.iew: IQ has 48 free entries (Can schedule: 0).  LQ has 28 
free entries. SQ has 28 free entries.
 494000: system.cpu.commit: Getting instructions from Rename stage.
 494000: system.cpu.commit: Trying to commit instructions in the ROB.
 494000: system.cpu.commit: [tid:0] Can't commit, Instruction [sn:65] PC 
(0xf0=>0xf4).(0=>1) is head of ROB and not ready
 494000: system.cpu.commit: [tid:0] ROB has 30 insts & 66 free entries.
 494000: system.cpu.commit: [tid:1] Instruction [sn:42] PC (0xc4=>0xc8).(0=>1) 
is head of ROB and ready to commit
 494000: system.cpu.commit: [tid:1] ROB has 1 insts & 95 free entries.
 494000: system.cpu: Activity: 12
 494000: system.cpu: Scheduling next tick!
 494500: system.cpu: 

Please if anyone can tell me what is the problem and how to debug for that, 
thanks a lot.
_______________________________________________
gem5-users mailing list -- gem5-users@gem5.org
To unsubscribe send an email to gem5-users-le...@gem5.org
%(web_page_url)slistinfo%(cgiext)s/%(_internal_name)s

Reply via email to