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