From d9fa950396e8f331bbfb1023348c8c680967b1be Mon Sep 17 00:00:00 2001 From: Marco Elver Date: Sat, 19 Apr 2014 09:00:30 -0500 Subject: 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. Committed by: Nilay Vaish --- util/cpt_upgrader.py | 8 ++++++++ 1 file changed, 8 insertions(+) (limited to 'util') diff --git a/util/cpt_upgrader.py b/util/cpt_upgrader.py index fac9e07a7..e14274806 100755 --- a/util/cpt_upgrader.py +++ b/util/cpt_upgrader.py @@ -545,6 +545,13 @@ def from_8(cpt): cpt.set(new_sec, 'bootUncacheability', 'false') cpt.set(new_sec, 'num_entries', '0') +# Version 10 adds block_size_bytes to system.ruby +def from_9(cpt): + for sec in cpt.sections(): + if sec == 'system.ruby': + # Use Gem5's default of 64; this should be changed if the to be + # upgraded checkpoints were not taken with block-size 64! + cpt.set(sec, 'block_size_bytes', '64') migrations = [] migrations.append(from_0) @@ -556,6 +563,7 @@ migrations.append(from_5) migrations.append(from_6) migrations.append(from_7) migrations.append(from_8) +migrations.append(from_9) verbose_print = False -- cgit v1.2.3