Hi Alexandru,

I recently added support for checkpointing caches for my work. I basically
just used the checkpointing framework provided my gem5 to serialize and
unserialize caches. It works for simplecpu and looks like you are interested
in simple cpu. Also I only added support for the default lru policy and not
for iic and falru.

I am in middle of something now but if it helps then I can send a patch by
later tonight.

-Abhishek

On Wed, Aug 10, 2011 at 3:56 AM, Iordan Alexandru <[email protected]> wrote:

> Hello
>
> Thank you for your reply.
>
> Is there no way to get a valid checkpoint in a simulation with caches
> enabled? Is there nothing that I can do (hack)?
>
> Alexandru
>
> ------------------------------
> *From:* Ali Saidi <[email protected]>
> *To:* Iordan Alexandru <[email protected]>; gem5 users mailing list <
> [email protected]>
> *Sent:* Tuesday, August 9, 2011 9:31 PM
> *Subject:* Re: [gem5-users] About checkpointing
>
> You can't checkpoint the simulation with caches enabled. Any dirty state in
> the caches isn't saved in the checkpoint.
>
> Ali
>
>
> On Tue, 9 Aug 2011 03:29:47 -0700 (PDT), Iordan Alexandru <
> [email protected]> wrote:
>
>  Hello
>  I have been having problems using the checkpoint feature in GEM5. I tried
> to run a very simple scenario:
>  1. I launched the simulator with the command:
>  ./build/ALPHA_FS/gem5.opt --outdir=test/ configs/example/fs.py -n 2
> --caches --l2cache
>  2. using m5term I created a checkpoint (witch was created with no errors)
> and then I exited the simulation
>  3. I tried to restore using the checkpoint:
>  ./build/ALPHA_FS/gem5.opt --outdir=test/ configs/example/fs.py -n 2
> --caches --l2cache -r 1
>  The message that I got in m5term is the following:
>  ==== m5 slave terminal: Terminal 0 ====
> Unable to handle kernel paging request at virtual address 000000011fd2dd40
> Fixing recursive fault but reboot is needed!
> Unable to handle kernel paging request at virtual address 0000000000000004
> CPU 0 mount(761): Oops 0
> pc = []  ra = []  ps = 0000    Not tainted
> pc is at do_exit+0xf4/0x950
> ra is at do_exit+0x80/0x950
> v0 = 0000000000000007  t0 = 0000000000000004  t1 = fffffc001f4a96d0
> t2 = fffffc000085eca0  t3 = 0000000000000000  t4 = fffffc00008191c0
> t5 = 0000000000000ad7  t6 = 0000000000000031  t7 = fffffc001f354000
> s0 = 0000000000000009  s1 = fffffc001f4a9500  s2 = 0000000000000000
> s3 = 0000000000000000  s4 = 0000000000000000  s5 = 000000011fd2dd40
> s6 = 0000000000000000
> a0 = fffffc001f4a9500  a1 = fffffc000083c108  a2 = ffffffffffffffff
> a3 = 0000000000000000  a4 = 0000000000000008  a5 = 0000000000000009
> t8 = 0000000000000000  t9 = fffffc00006c9534  t10= 0000000000007fff
> t11= 00000000000003ff  pv = fffffc000034f030  at = 0000000000000000
> gp = fffffc000085bf40  sp = fffffc001f357da0
> Trace:
> [] do_page_fault+0x3c0/0x4a0
> [] do_page_fault+0x3ac/0x4a0
> [] entMM+0x9c/0xc0
> [] do_group_exit+0x54/0x100
>
> Code: 402203a1  e4200001  b44400b0  a42a0358  20210004  60004000 40603122
> Fixing recursive fault but reboot is needed!
> Unable to handle kernel paging request at virtual address 0000000000000004
> CPU 0 mount(761): Oops 0
> pc = []  ra = []  ps = 0000    Tainted: G      D
> pc is at do_exit+0xf4/0x950
> ra is at do_exit+0x80/0x950
> v0 = 0000000000000007  t0 = 0000000000000004  t1 = fffffc001f4a96d0
> t2 = fffffc000085eca0  t3 = 0000000000000000  t4 = fffffc00008191c0
> t5 = 0000000000000fed  t6 = 0000000000000031  t7 = fffffc001f354000
> s0 = 000000000000000b  s1 = fffffc001f4a9500  s2 = 0000000000000000
> s3 = fffffc001f357c38  s4 = 0000000000000000  s5 = 0000000000000004
> s6 = 0000000000000000
> a0 = fffffc001f4a9500  a1 = fffffc000083c108  a2 = ffffffffffffffff
> a3 = 0000000000000000  a4 = 0000000000000008  a5 = 0000000000000008
> t8 = 0000000000000000  t9 = fffffc00006c9534  t10= 0000000000007fff
> t11= 00000000000003ff  pv = fffffc000034f030  at = 0000000000000000
> gp = fffffc000085bf40  sp = fffffc001f357b10
> Trace:
> [] die_if_kernel+0x12c/0x130
> [] die_if_kernel+0xd4/0x130
> [] do_page_fault+0x3ac/0x4a0
> [] entMM+0x9c/0xc0
> [] release_console_sem+0x20c/0x310
> [] release_console_sem+0x2b4/0x310
> [] vprintk+0x224/0x530
> [] vprintk+0x224/0x530
> [] do_exit+0x80/0x950
> [] exit_signals+0x0/0x190
> [] do_exit+0xf4/0x950
> [] do_page_fault+0x3c0/0x4a0
> [] do_page_fault+0x3ac/0x4a0
> [] entMM+0x9c/0xc0
> [] do_group_exit+0x54/0x100
>
> Code: 402203a1  e4200001  b44400b0  a42a0358  20210004  60004000 40603122
>  Did I did something wrong here? Do I need to add something in the
> configuration file before I can use the checkpoint feature?
>  Thank you in advance!
>  Alexandru
>
> die_if_kernel recursion detected.
>
>
>
>
>
> _______________________________________________
> gem5-users mailing list
> [email protected]
> http://m5sim.org/cgi-bin/mailman/listinfo/gem5-users
>



-- 
-Abhishek

Graduate Student
Computer Science
University of Virginia

---------------------------------------------------------------------------------------------------------------------
simplicity is the ultimate sophistication
-Leonardo da Vinci
_______________________________________________
gem5-users mailing list
[email protected]
http://m5sim.org/cgi-bin/mailman/listinfo/gem5-users

Reply via email to