Yes, that makes sense. I haven't checked into those other checkpointed
values you mentioned, but you should see what they're for and whether
they introduce their own complications.

Gabe

On 04/04/12 12:24, Ali Saidi wrote:
>  
>
> You could probably implement the drain() function in the atomic cpu
> to do this. 
>
> Ali 
>
> On 04.04.2012 15:00, Nilay Vaish wrote: 
>
>> So, is
> it possible to delay the checkpointing process till all the CPUs 
>> are
> done with their current locked memory operations? Or do you think it 
> is possible that such a time may never arrive, in which case switching
> to 
>> timing mode is not possible?
>>
>> --
>> Nilay
>>
>> On Tue, 3 Apr
> 2012, Gabe Black wrote:
>>> I haven't looked at the code in depth, but
> I think "locked" describes whether or not you're in the middle of a
> locked (roughly atomic) operation. Not keeping track of that would be
> bad, although transferring that to timing mode would be tricky. On the
> other hand, timing mode doesn't implement locked memory operations
> anyway, so... Gabe On 04/03/12 21:53, Nilay Vaish wrote: 
>>>> What I
> wrote was more of a hypothesis that might explain / help debug the
> problem Joel is facing. I might be incorrect, though I faintly recall
> facing some such problem my self. I am more in favor of moving towards
> storing only architectural state in the checkpoint so that we can
> restore from any cpu type. Any ideas as to why we need fields like
> so_state, locked, status for atomic CPU? -- Nilay On Tue, 3 Apr 2012,
> Beckmann, Brad wrote: 
>>>>> Hmm...timing cpu restoring a checkpoint
> created by the atomic cpu used to work? What changed with regards to
> interrupts broke it? It would be great if we could maintain atomic ->
> timing checkpoint capability. It is really useful to use the atomic cpu
> to fast-forward to an interesting point in an application, take a
> checkpoint, then use that checkpoint across multiple experiments using
> the timing cpu. Brad 
>>>>>> -----Original Message----- From:
> [email protected] [7] [mailto:[email protected] [8]] On
> Behalf Of Nilay Vaish Sent: Tuesday, April 03, 2012 6:51 PM To: gem5
> Developer List Subject: Re: [gem5-dev] x86 Checkpoint Restore Trouble
> Joel, you might know that system being restored from a check point
> starts with an atomic cpu by default. I think the problem you are facing
> is in initializing a timing CPU. IIRC, the interrupt controller is moved
> from atomic CPU to timing CPU after X number of ticks. You might want to
> try restoring with a timing CPU to begin with (use option
> --restore-cpu-type). But I think you will run in to problem there as
> well if the checkpoint was created using an atomic CPU as the check
> pointed state is a super set of the architectural state and depends on
> the CPU type in use. You might want to create check points using the
> timing CPU it self. -- Nilay On Tue, 3 Apr 2012, Joel Hestness wrote:
>
>>>>>>> Hey guys, I've tried searching around, but I'm having
> trouble finding any help on this. Anyone have insights or pointers? Is
> checkpoint restore supposed to be working?
> ---------------------------------------------------
> joel@vein:~/research/gem5/gem5-latest$ ./build/X86/gem5.debug
> ./configs/example/fs.py --take-checkpoints=5000000000,1000000000000 gem5
> Simulator System. http://gem5.org [1] gem5 is copyrighted software; use
> the --copyright option for details. gem5 compiled Apr 3 2012 12:11:41
> gem5 started Apr 3 2012 18:13:38 gem5 executing on vein command line:
> ./build/X86/gem5.debug ./configs/example/fs.py
> --take-checkpoints=5000000000,1000000000000 warning:
> add_child('terminal'): child 'terminal' already has parent Global
> frequency set at 1000000000000 ticks per second info: kernel located at:
> /home/joel/research/gem5/full_system_files/binaries/x86_64-vmlinux-
> 2.6.28.4-smp 
>>>>>>> 0: rtc: Real-time clock set to Sun Jan 1
> 00:00:00 2012 Listening for com_1 connection on port 3458 warn: Reading
> current count from inactive timer. 0: system.remote_gdb.listener:
> listening for remote gdb #0 on port 7002 info: Entering event queue @ 0.
> Starting simulation... warn: Don't know what interrupt to clear for
> console. warn: instruction 'wbinvd' unimplemented Writing checkpoint
> info: Entering event queue @ 5000000000. Starting simulation... ^Chack:
> be nice to actually delete the event here Exiting @ tick 5559293000
> because user interrupt received joel@vein:~/research/gem5/gem5-latest$
> ./build/X86/gem5.debug ./configs/example/fs.py -r 1 --cpu-type=timing
> gem5 Simulator System. http://gem5.org [2] gem5 is copyrighted software;
> use the --copyright option for details. gem5 compiled Apr 3 2012
> 12:11:41 gem5 started Apr 3 2012 18:15:08 gem5 executing on vein command
> line: ./build/X86/gem5.debug ./configs/example/fs.py -r 1
> --cpu-type=timing warning: add_child('terminal'): child 'terminal'
> already has parent Global frequency set at 1000000000000 ticks per
> second info: kernel located at:
> /home/joel/research/gem5/full_system_files/binaries/x86_64-vmlinux-
> 2.6.28.4-smp 0: rtc: Real-time clock
>>>>>>> tility.cc:171: void
> X86ISA::initCPU(ThreadContext*, int): Assertion `interrupts' failed.*
> *Program aborted at cycle 0* *Aborted*
> --------------------------------------------------- For this test, I'm
> using changeset 8900 with Nilay's port fix patch here:
> http://reviews.gem5.org/r/1102/ [3] The same assertion failure happens
> for ruby_fs.py (and the script that I've derived from ruby_fs.py).
> Thanks! Joel -- Joel Hestness PhD Student, Computer Architecture Dept.
> of Computer Science, University of Texas - Austin
> http://www.cs.utexas.edu/~hestness [4]
> _______________________________________________ gem5-dev mailing list
> [email protected] [5] http://m5sim.org/mailman/listinfo/gem5-dev [6]
> _______________________________________________ gem5-dev mailing list
> gem5-dev@gem
> href="http://m5sim.org/mailman/listinfo/gem5-dev";>http://m5sim.org/mailman/listinfo/gem5-dev
> _______________________________________________ gem5-dev mailing list
> [email protected] [9] http://m5sim.org/mailman/listinfo/gem5-dev
> [10]
>>>> _______________________________________________ gem5-dev
> mailing list [email protected] [11]
> http://m5sim.org/mailman/listinfo/gem5-dev [12]
> _______________________________________________ gem5-dev mailing list
> [email protected] [13] http://m5sim.org/mailman/listinfo/gem5-dev [14]
>> _______________________________________________
>> gem5-dev mailing
> list
>> [email protected]
>> http://m5sim.org/mailman/listinfo/gem5-dev
>
>
>
> Links:
> ------
> [1] http://gem5.org
> [2] http://gem5.org
> [3]
> http://reviews.gem5.org/r/1102/
> [4]
> http://www.cs.utexas.edu/~hestness
> [5] mailto:[email protected]
> [6]
> http://m5sim.org/mailman/listinfo/gem5-dev
> [7]
> mailto:[email protected]
> [8]
> mailto:[email protected]
> [9] mailto:[email protected]
> [10]
> http://m5sim.org/mailman/listinfo/gem5-dev
> [11]
> mailto:[email protected]
> [12]
> http://m5sim.org/mailman/listinfo/gem5-dev
> [13]
> mailto:[email protected]
> [14]
> http://m5sim.org/mailman/listinfo/gem5-dev
> _______________________________________________
> gem5-dev mailing list
> [email protected]
> http://m5sim.org/mailman/listinfo/gem5-dev

_______________________________________________
gem5-dev mailing list
[email protected]
http://m5sim.org/mailman/listinfo/gem5-dev

Reply via email to