Hi, I'm simulating two x86 systems with --dual (server and client). The client (driversys) always ran in atomic CPU mode. When the server (testsys) ran in atomic/timing CPU mode, it can generate checkpoints and restore from checkpoints successfully. However, when checkpoints were generated in atomic/timing CPU mode, and restored from with detailed CPU mode, an error happened.
"gem5.opt: build/X86/dev/net/i8254xGBe.cc:1878: void IGbE::TxDescCache::pktComplete(): Assertion `ip' failed." After some debugging, I figured out the problem. A request is sent from ethernet.dma. When restored from checkpoints with atomic/timing CPU mode, the request went through the following path: ethernet.dma->iobus->iocache(miss)->membus. Then the membus generated some atomic snoop requests, finally, the desired data was obtained in CPU data cache. However, when restored with detailed CPU mode, the request went through the following path: ethernet.dma->iobus->iocache(miss)->membus (without generating snoop requests)->DRAMCtrls0, and the data was obtained from DRAM. But the data is 0, not the desired data in atomic CPU mode. So the assertion error happened. I'm using the latest Gem5 version, the kernel is x86_64-vmlinux-3.2.24 and the ethernet driver is E1000. The benchmark I tested is palmscloud, the command for generating checkpoints is: build/X86/gem5.opt --outdir=CAL/outdir/apache configs/example/fs.py --kernel=x86_64-vmlinux-3.2.24 --disk-image=$HOME/private/gem5/palmscloud/disks/gentoo-s3.img --cpu-type=AtomicSimpleCPU --cpu-clock=4GHz --caches --l1i_size=32kB --l1i_assoc=2 --l1d_size=32kB --l1d_assoc=2 --l2cache --l2_size=1024kB --l2_assoc=16 --mem-size=4096MB --dual --serverbench="CAL/apache" --clientbench="CAL/apache" --checkpoint-dir=CAL/checkpoint/apache The command for restoring checkpoints is: build/X86/gem5.opt --outdir=CAL/outdir/apache configs/example/fs.py --kernel=x86_64-vmlinux-3.2.24 --disk-image=$HOME/private/gem5/palmscloud/disks/gentoo-s3.img --dual --serverbench="CAL/apache" --clientbench="CAL/apache" --checkpoint-dir=CAL/checkpoint/apache -r 1 --restore-with-cpu=DerivO3CPU --cpu-type=DerivO3CPU --cpu-clock=4GHz --caches --l1i_size=32kB --l1i_assoc=2 --l1d_size=32kB --l1d_assoc=2 --l2cache --l2_size=1024kB --l2_assoc=16 --mem-size=4096MB I don't know how to solve the problem, that is, copying the right data to the request when restored in detailed CPU mode. Any help will be appreciated!! Regards, QI
_______________________________________________ gem5-users mailing list [email protected] http://m5sim.org/cgi-bin/mailman/listinfo/gem5-users
