> On April 10, 2014, 6:15 p.m., Nilay Vaish wrote: > > Ok, it now seems that we do not require this version and updates > > to the utility script. Since it is optional that the block size > > be unserialized, the earlier checkpoints will not break. For > > those checkpoints, the current block size would be assumed to be > > the block size with which the checkpoint was created. If you > > agree, then I suggest that you eliminate the not required code.
The cpt_upgrader could be used to fix existing checkpoints to permit using old checkpoints with different cache-block sizes. I have already found this useful on many of my existing checkpoints. I made unserializing the block-size optional, because reverting to the old behaviour does not require much code, but nevertheless is broken. If this use case (use checkpoints with different block-size) is too rare to justify incrementing the checkpoint version, let me know and I can revert the version and cpt_upgrader. - Marco ----------------------------------------------------------- This is an automatically generated e-mail. To reply, visit: http://reviews.gem5.org/r/2220/#review5008 ----------------------------------------------------------- On April 3, 2014, 11:44 p.m., Marco Elver wrote: > > ----------------------------------------------------------- > This is an automatically generated e-mail. To reply, visit: > http://reviews.gem5.org/r/2220/ > ----------------------------------------------------------- > > (Updated April 3, 2014, 11:44 p.m.) > > > Review request for Default. > > > Repository: gem5 > > > Description > ------- > > ruby: recorder: Fix (de-)serializing with different cache block-sizes > > Upon aggregating records, serialize system's cache-block size, as the > cache-block size can be different when restoring from a checkpoint. This way, > we can correctly read all records when restoring from a checkpoints, even if > the cache-block size is different. > > Note, that it is only possible to restore from a checkpoint if the > desired cache-block size is smaller or equal to the cache-block size > when the checkpoint was taken; we can split one larger request into > multiple small ones, but it is not reliable to do the opposite. > > > Diffs > ----- > > src/mem/ruby/recorder/CacheRecorder.cc 52c552138ba1 > src/mem/ruby/recorder/CacheRecorder.hh 52c552138ba1 > src/mem/ruby/system/System.cc 52c552138ba1 > src/sim/serialize.hh 52c552138ba1 > util/cpt_upgrader.py 52c552138ba1 > > Diff: http://reviews.gem5.org/r/2220/diff/ > > > Testing > ------- > > Created a Ruby checkpoint with the default config. Restore from checkpoint > with default config (64 byte block-size) and varying block-sizes (32, 16, 8). > > > Thanks, > > Marco Elver > > _______________________________________________ gem5-dev mailing list [email protected] http://m5sim.org/mailman/listinfo/gem5-dev
