Another reason we don't checkpoint cache state is that it's not useful if the cache configuration of the system you take the checkpoint on is different from the system you want to restore to. (Some differences can be handled, e.g. moving from a larger to a smaller cache with the same # of sets, but others cannot.) Since we often run experiments where we vary cache sizes, we don't bother with this.
If you really do want to checkpoint cache state you could add that capability by writing serialize() and unserialize() methods for the cache object you are using. Steve Lisa Hsu wrote: > Hi Richard, > > Checkpoints do NOT record cache state, so doing it the way you described > will not yield a warm cache. Recording cache state would require so > much time and space it is not worth it. Already, without cache state, > checkpoint files are very large. > > What you want to do is run linux from the beginning with just a > simpleCPU (not a sampler), and dump a checkpoint at the point of your > choice. then, when you begin from the checkpoint, use the sampling CPU, > which will run for a while in cacheCPU (to warmup caches) before > switching to detailed. does that make sense? > > Finally, the m5 switchcpu instruction was never fully implemented. but > m5 i just a custom instruction we have, so that we can do little things > that we want, like drop a checkpoint. details can be found in > m5/util/m5/m5. > > lisa > > > > > On 4/13/06, *Richard R. Zhang* <[EMAIL PROTECTED] > <mailto:[EMAIL PROTECTED]>> wrote: > > Hi Lisa, > Thanks a lot for your help. I have tried the sampler mode and it > seems that the checkpoint works. But I have some > questions about the cache warm up. I change the default warm up > cycles to 1e10, and start the linux from beginning. > The checkpoint is generated when the cache warm up command has > finished. The following is part of my boot script, > which is modified from the original m5 maerts script. > ... > echo -n "waiting for server..." > /usr/bin/netcat -c -l -p 8000 > BINARY=/benchmarks/netperf/netperf > TEST="TCP_MAERTS" > #SHORT_ARGS="-l -100k" > SHORT_ARGS="-l 2" > LONG_ARGS="-k16384,0 -K16384,0 -- -m 65536 -M 65536 -s > 262144 -S 262144" > > SHORT="$BINARY -H $SERVER -t $TEST $SHORT_ARGS" > LONG="$BINARY -H $SERVER -t $TEST $LONG_ARGS" > > echo "starting test..." > echo "netperf warmup" > echo $SHORT > eval $SHORT > > /sbin/m5 ivlb 1 > /sbin/m5 resetstats > /sbin/m5 dumpresetstats 200000000 2000000000 > /sbin/m5 checkpoint 1 0 # Q1 > /sbin/m5 checkpoint 200000000 2000000000 > echo "netperf benchmark" > echo $LONG > eval $LONG > /sbin/m5 exit > > > The checkpoint generated by the command `/sbin/m5 checkpoint 1 0', > shows that the curTick is a 10062394993, just a > little bigger than 1e10. My question is, when I restart the test > from that checkpoint, has the cache warmed up? And > which mode will the m5 be at that time, the cacheCPU mode or > detailedCPU mode? > BTW, would you pls give me a description about the user program > `m5'? I tried to use the `switchcpu' to switch the > cpu mode, but it seemed that the m5 simulator exited when execute > that command. Thanks a lot! > > Best wishes. > > Richard > 2006-04-13 > > > > 发件人: Lisa Hsu > 发送时间: 2006-04-11 22:24:19 > 收件人: zhangrui > 抄送: m5sim-users > 主题: Re: [m5sim-users] Checkpoint usage > > m5 does not support checkpointing in detailed mode - there is just > toooo much state to remember. what we do is generate the checkpoint > in simple CPU, and then beginning running again after the checkpoint > with simple CPU or cacheCPU, and then transition to detailed CPU and > take statistics from that point. > > we usually use cacheCPU in order to warm up a cache system before > going into detailed mode. the number of cycles to do the warmup and > the number of cycles to do the detailed run are defaulted to 1e9 and > 200e6. you can change these values if you wish. > > lisa > > > On 4/11/06, zhangrui <[EMAIL PROTECTED] > <mailto:[EMAIL PROTECTED]>> wrote: > Hi all, > I have a question about the checkpoint usage. > When I use m5 to run netperf maerts test in a detailed full system > mode with the default maerts scripts. I generat > a checkpoint to avoid Linux booting up process. But when I start m5 > with -ECKPT_FILE=<checkpoint dir name> argument, > m5 reports a warning `warn: Not unserializing '': no section found > in checkpoint.'. The messages in client console > show that the simulation process paused when jump to kernel. A few > minute later, m5 reported `panic: PTE GH field != 0' > and exits. > Can m5 support the checkpoint unserialization in detailed full > system mode? If so, how to configure it? I can't find > any document about this. > > Thanks a lot. > > > > > Richard > 2006-04-11 > > > > ------------------------------------------------------- > This SF.Net email is sponsored by xPML, a groundbreaking scripting > language > that extends applications into web and mobile media. Attend the live > webcast > and join the prime developer group breaking into this new coding > territory! > http://sel.as-us.falkag.net/sel?cmd=lnk&kid=110944&bid=241720&dat=121642 > <http://sel.as-us.falkag.net/sel?cmd=lnk&kid=110944&bid=241720&dat=121642> > _______________________________________________ > m5sim-users mailing list > [email protected] > <mailto:[email protected]> > https://lists.sourceforge.net/lists/listinfo/m5sim-users > > ------------------------------------------------------- This SF.Net email is sponsored by xPML, a groundbreaking scripting language that extends applications into web and mobile media. Attend the live webcast and join the prime developer group breaking into this new coding territory! http://sel.as-us.falkag.net/sel?cmd=lnk&kid0944&bid$1720&dat1642 _______________________________________________ m5sim-users mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/m5sim-users
