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
