diff options
author | Marco Elver <marco.elver@ed.ac.uk> | 2014-04-19 09:00:30 -0500 |
---|---|---|
committer | Marco Elver <marco.elver@ed.ac.uk> | 2014-04-19 09:00:30 -0500 |
commit | d9fa950396e8f331bbfb1023348c8c680967b1be (patch) | |
tree | de8a7a5902da5952c70f88d43fd8fc89c496377a /src/mem/ruby/recorder/CacheRecorder.hh | |
parent | 097aadc2cddafdd6433aa8f57b141f0e01222e45 (diff) | |
download | gem5-d9fa950396e8f331bbfb1023348c8c680967b1be.tar.xz |
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 <nilay@cs.wisc.edu>
Diffstat (limited to 'src/mem/ruby/recorder/CacheRecorder.hh')
-rw-r--r-- | src/mem/ruby/recorder/CacheRecorder.hh | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/src/mem/ruby/recorder/CacheRecorder.hh b/src/mem/ruby/recorder/CacheRecorder.hh index 839c4f6b1..2156b0689 100644 --- a/src/mem/ruby/recorder/CacheRecorder.hh +++ b/src/mem/ruby/recorder/CacheRecorder.hh @@ -71,7 +71,8 @@ class CacheRecorder CacheRecorder(uint8_t* uncompressed_trace, uint64_t uncompressed_trace_size, - std::vector<Sequencer*>& SequencerMap); + std::vector<Sequencer*>& SequencerMap, + uint64_t block_size_bytes); void addRecord(int cntrl, const physical_address_t data_addr, const physical_address_t pc_addr, RubyRequestType type, Time time, DataBlock& data); @@ -109,6 +110,7 @@ class CacheRecorder uint64_t m_bytes_read; uint64_t m_records_read; uint64_t m_records_flushed; + uint64_t m_block_size_bytes; }; inline bool |