Hi, When i tried running from checkpoint with --restore-with-cpu atomic: build/X86/gem5.opt -d results/blackscholes ./configs/example/ruby_fs.py --cpu-type=detailed --caches --l2cache --checkpoint-restore=1 -n 1 --restore-with-cpu atomic I get the same error message: panic: RubyPort::M5Port::recvAtomic() not implemented!
I tried taking checkpoint with detailed mode instead of atomic mode. Then running from checkpoint, I get the following error: Panic: Pio port of system.switch_cpus.interrupts not connected to anything! If i follow this patch (http://www.mail-archive.com/[email protected]/msg01936.html), the pio port error goes away, but i get this message: fatal: Can't unserialize 'Globals:curTick' If i just run the simulation w/o checkpoint, I get segmentation fault. I don't know what else to try to be able to simulate x86 FS to run PARSEC…Any pointers would be greatly appreciated. Thanks, -Trang On Feb 22, 2012, at 11:06 PM, Nilay Vaish wrote: > The problem here is that you are trying to restore from a checkpoint. The set > of scripts that are present in configs/ assume that the checkpoint was > created using an atomic CPU and therefore the state should be restored using > an atomic CPU. It is only after some T cycles that the simulation would > switch to detailed CPU. The solution is to mention the CPU that should be > used for restoring from a checkpoint. There is an option --restore-with-cpu > that can be used to specify the cpu type to be used while restoring from a > checkpoint. I think, as of now, it is not possible to restore from a > checkpoint created with atomic CPU to a system that makes use of Ruby. > > One more thing, when you are using Ruby, the options --caches and --l2cache > are most likely not required. > > -- > Nilay > > On Wed, 22 Feb 2012, Trang Le wrote: > >> Hi, >> >> I turned on the debug-flag Ruby with the following command: >> build/X86/gem5.opt -d results/blackscholes --debug-flags=Ruby >> ./configs/example/ruby_fs.py --cpu-type=detailed --caches --l2cache >> --checkpoint-restore=1 -n 1 >> >> And here is the printout: >> =================================================================== >> 0: system.sys_port_proxy-slave0: creating port from ruby sequcner to cpu >> system.sys_port_proxy-slave0 >> 0: system.l1_cntrl0.sequencer-physMemPort: creating port to ruby >> sequencer to cpu system.l1_cntrl0.sequencer-physMemPort >> 0: system.l1_cntrl0.sequencer-pio-port-1: creating port to ruby >> sequencer to cpu system.l1_cntrl0.sequencer-pio-port-1 >> 0: system.dma_cntrl0.dma_sequencer-physMemPort: creating port to ruby >> sequencer to cpu system.dma_cntrl0.dma_sequencer-physMemPort >> 0: system.dma_cntrl0.dma_sequencer-slave0: creating port from ruby >> sequcner to cpu system.dma_cntrl0.dma_sequencer-slave0 >> 0: system.sys_port_proxy-physMemPort: creating port to ruby sequencer to >> cpu system.sys_port_proxy-physMemPort >> 0: system.l1_cntrl0.sequencer-slave0: creating port from ruby sequcner >> to cpu system.l1_cntrl0.sequencer-slave0 >> 0: system.l1_cntrl0.sequencer-slave1: creating port from ruby sequcner >> to cpu system.l1_cntrl0.sequencer-slave1 >> 0: system.l1_cntrl0.sequencer-slave3: creating port from ruby sequcner >> to cpu system.l1_cntrl0.sequencer-slave3 >> 0: system.l1_cntrl0.sequencer-slave2: creating port from ruby sequcner >> to cpu system.l1_cntrl0.sequencer-slave2 >> warn: Reading current count from inactive timer. >> 0: global: Returning shortest path >> (src-(2*max_machines)): -8, (next-(2*max_machines)): 0, src: 0, next: 8, >> result: [NetDest (4) 1 - 1 - 1 - 1 - ] >> 0: global: Returning shortest path >> (src-(2*max_machines)): -7, (next-(2*max_machines)): 1, src: 1, next: 9, >> result: [NetDest (4) 1 - 1 - 1 - 1 - ] >> 0: global: Returning shortest path >> (src-(2*max_machines)): -6, (next-(2*max_machines)): 2, src: 2, next: 10, >> result: [NetDest (4) 1 - 1 - 1 - 1 - ] >> 0: global: Returning shortest path >> (src-(2*max_machines)): -5, (next-(2*max_machines)): 3, src: 3, next: 11, >> result: [NetDest (4) 1 - 1 - 1 - 1 - ] >> 0: global: Returning shortest path >> (src-(2*max_machines)): 0, (next-(2*max_machines)): -4, src: 8, next: 4, >> result: [NetDest (4) 1 - 0 - 0 - 0 - ] >> 0: global: Returning shortest path >> (src-(2*max_machines)): 0, (next-(2*max_machines)): 4, src: 8, next: 12, >> result: [NetDest (4) 0 - 1 - 1 - 1 - ] >> 0: global: Returning shortest path >> (src-(2*max_machines)): 1, (next-(2*max_machines)): -3, src: 9, next: 5, >> result: [NetDest (4) 0 - 1 - 0 - 0 - ] >> 0: global: Returning shortest path >> (src-(2*max_machines)): 1, (next-(2*max_machines)): 4, src: 9, next: 12, >> result: [NetDest (4) 1 - 0 - 1 - 1 - ] >> 0: global: Returning shortest path >> (src-(2*max_machines)): 2, (next-(2*max_machines)): -2, src: 10, next: 6, >> result: [NetDest (4) 0 - 0 - 1 - 0 - ] >> 0: global: Returning shortest path >> (src-(2*max_machines)): 2, (next-(2*max_machines)): 4, src: 10, next: 12, >> result: [NetDest (4) 1 - 1 - 0 - 1 - ] >> 0: global: Returning shortest path >> (src-(2*max_machines)): 3, (next-(2*max_machines)): -1, src: 11, next: 7, >> result: [NetDest (4) 0 - 0 - 0 - 1 - ] >> 0: global: Returning shortest path >> (src-(2*max_machines)): 3, (next-(2*max_machines)): 4, src: 11, next: 12, >> result: [NetDest (4) 1 - 1 - 1 - 0 - ] >> 0: global: Returning shortest path >> (src-(2*max_machines)): 4, (next-(2*max_machines)): 0, src: 12, next: 8, >> result: [NetDest (4) 1 - 0 - 0 - 0 - ] >> 0: global: Returning shortest path >> (src-(2*max_machines)): 4, (next-(2*max_machines)): 1, src: 12, next: 9, >> result: [NetDest (4) 0 - 1 - 0 - 0 - ] >> 0: global: Returning shortest path >> (src-(2*max_machines)): 4, (next-(2*max_machines)): 2, src: 12, next: 10, >> result: [NetDest (4) 0 - 0 - 1 - 0 - ] >> 0: global: Returning shortest path >> (src-(2*max_machines)): 4, (next-(2*max_machines)): 3, src: 12, next: 11, >> result: [NetDest (4) 0 - 0 - 0 - 1 - ] >> 0: system.remote_gdb.listener: listening for remote gdb #0 on port 7000 >> Switch at curTick count:10000 >> info: Entering event queue @ 5159803018000. Starting simulation... >> panic: RubyPort::M5Port::recvAtomic() not implemented! >> @ cycle 5159803018500 >> [recvAtomic:build/X86/mem/ruby/system/RubyPort.cc, line 139] >> ==================================================================== >> >> Is this helpful ? >> >> -Trang >> >> On Feb 22, 2012, at 9:49 AM, Ali Saidi wrote: >> >>> Hi Trang, >>> >>> >>> Could you run gem5 in a debugger and get a back trace. We need a bit more >>> information to debug it. >>> >>> >>> Thanks, >>> >>> Ali >>> >>> On 22.02.2012 02:43, Trang Le wrote: >>> >>>> Hi, >>>> >>>> I was trying to run PARSEC benchmarks in X86 FS mode with Ruby (my gem5 >>>> was updated recently). However, I've run into this error message: >>>> panic: RubyPort::M5Port::recvAtomic() not implemented! >>>> >>>> I know Ruby doesn't support Atomic transactions and it shouldn't even be >>>> called….so I am not sure why it's doing this. Do you have any suggestions >>>> what I should do to have more clue of what's going on… >>>> >>>> Thanks, >>>> -Trang >>>> _______________________________________________ >>>> gem5-users mailing list >>>> [email protected] >>>> http://m5sim.org/cgi-bin/mailman/listinfo/gem5-users >>>> >>> >>> >>> _______________________________________________ >>> gem5-users mailing list >>> [email protected] >>> http://m5sim.org/cgi-bin/mailman/listinfo/gem5-users >> > _______________________________________________ > gem5-users mailing list > [email protected] > http://m5sim.org/cgi-bin/mailman/listinfo/gem5-users
_______________________________________________ gem5-users mailing list [email protected] http://m5sim.org/cgi-bin/mailman/listinfo/gem5-users
