gem5/util
Curtis Dunham 87b9da2df4 sim: tag-based checkpoint versioning
This commit addresses gem5 checkpoints' linear versioning bottleneck.
Since development is distributed across many private trees, there exists
a sort of 'race' for checkpoint version numbers: internally a checkpoint
version may be used but then resynchronizing with the external tree causes
a conflict on that version.  This change replaces the linear version number
with a set of unique strings called tags.  Now the only conflicts that can
arise are of tag names, where collisions are much easier to avoid.

The checkpoint upgrader (util/cpt_upgrader.py) upgrades the version
representation, as one would expect. Each tag version implements its
upgrader code in a python file in the util/cpt_upgraders directory
rather than adding a function to the upgrader script itself.

The version tags are stored in the 'Globals' section rather than 'root'
(as the version was previously) because 'Globals' gets unserialized
first and can provide a warning before any other unserialization errors
can occur.
2015-09-02 15:23:30 -05:00
..
batch python: Move various utility classes into a new m5.util package so 2008-06-14 20:19:49 -07:00
ccdrv includes: sort all includes 2011-04-15 10:44:06 -07:00
cpt_upgraders sim: tag-based checkpoint versioning 2015-09-02 15:23:30 -05:00
cxx_config config: Fix checkpoint restore in C++ config example 2014-11-14 03:54:02 -05:00
emacs Make the M5 Emacs C style default to inserting spaces instead 2006-01-30 14:32:00 -05:00
m5 kvm, x86: Adding support for SE mode execution 2014-11-23 18:01:08 -08:00
minorview cpu: `Minor' in-order CPU model 2014-07-23 16:09:04 -05:00
multi dev: add support for multi gem5 runs 2015-07-15 19:53:50 -05:00
pbs python: Move various utility classes into a new m5.util package so 2008-06-14 20:19:49 -07:00
statetrace ARM: Add vfpv3 support to native trace. 2011-05-04 20:38:26 -05:00
stats stats: fix usage of jobfile 2009-07-02 16:48:21 -07:00
streamline config: Update Streamline scripts and configs 2014-09-03 07:43:02 -04:00
systemc config: Fix to SystemC example's event handling 2014-12-02 06:08:09 -05:00
tap includes: sort all includes 2011-04-15 10:44:06 -07:00
term includes: sort all includes 2011-04-15 10:44:06 -07:00
tlm misc: Coupling gem5 with SystemC TLM2.0 2015-08-03 23:08:40 -05:00
vi util: add a vimrc that matches gem5 style guide 2015-07-31 22:53:17 -04:00
checkpoint-tester.py util: add a script for testing checkpointing 2010-07-05 21:39:38 -07:00
checkpoint_aggregator.py util: update checkpoint aggregation script 2013-12-03 10:36:03 -06:00
checktrace.sh Add checktrace.sh. Checks all the ethertrace files in */ethertrace 2005-11-11 18:43:09 -05:00
chkformat Utilities for doing a format check for some elements of proper 2006-12-17 18:58:05 -08:00
compile Nate's utility for compiling m5 2006-12-17 18:58:50 -08:00
cpt_upgrader.py sim: tag-based checkpoint versioning 2015-09-02 15:23:30 -05:00
cscope-index.py cscope-find.py: 2006-11-29 13:17:41 -08:00
decode_inst_trace.py cpu: add support for outputing a protobuf formatted CPU trace 2015-02-16 03:32:38 -05:00
decode_packet_trace.py util: Move packet trace file read to protolib 2014-08-10 05:39:20 -04:00
diff_config.pl Util: Added script to semantically diff two config.ini files 2012-09-25 11:49:40 -05:00
dram_sweep_plot.py util: Enable DRAM sweep to print power and efficiency 2015-08-05 04:36:31 -04:00
encode_packet_trace.py mem: Edit proto Packet and enhance the python script 2014-03-07 15:56:23 -05:00
file_types.py util: added .cl OpenCL extension to file_type.py 2015-07-20 09:15:18 -05:00
find_copyrights.py copyright: Add code for finding all copyright blocks and create a COPYING file 2011-06-02 17:36:07 -07:00
fixwhite Utilities for doing a format check for some elements of proper 2006-12-17 18:58:05 -08:00
gem5img.py Util: Replace mkblankimage.sh with the new gem5img.py. 2011-04-29 04:46:19 -04:00
hgfilesize.py hgfilesize: skip files that have been removed 2012-01-10 22:50:54 -08:00
memtest-soak.py config: Add soak test for memtest.py 2015-03-19 04:06:18 -04:00
minorview.py cpu: `Minor' in-order CPU model 2014-07-23 16:09:04 -05:00
o3-pipeview.py o3: fix tick used for renaming and issue with range selection 2013-02-15 17:40:09 -05:00
on-chip-network-power-area.py util: adds a script for using DSENT 2014-10-11 16:16:00 -05:00
oprofile-top.py Updated Authors from bk prs info 2006-05-31 19:26:56 -04:00
protolib.py util: Move packet trace file read to protolib 2014-08-10 05:39:20 -04:00
qdo Make qdo work with oar. I don't know if this catches every case, but it appears 2007-10-10 23:24:16 -04:00
regress ruby: rename MESI_CMP_directory to MESI_Two_Level 2014-01-04 00:03:33 -06:00
rundiff rundiff: Don't flush stdout until after postcontext is printed. 2009-09-26 10:50:50 -07:00
SConscript Major changes to how SimObjects are created and initialized. Almost all 2007-07-23 21:51:38 -07:00
slicc slicc: Pure python implementation of slicc. 2009-09-22 18:12:39 -07:00
sort_includes.py style: Update the style checker to handle new include order 2015-02-03 14:25:50 -05:00
style.py style: Fix broken m5format command 2015-02-11 10:23:34 -05:00
tracediff tracediff: Check for --debug-flags now instead of --trace-flags. 2011-07-02 22:52:26 -07:00
valgrind-suppressions util: Valgrind suppression addition 2014-04-23 05:18:29 -04:00