test, arm: Add scripts to test checkpoints

Add a set of scripts to automatically test checkpointing in the
regression framework. The checkpointing tests are similar to the
switcheroo tests, but instead of switching between CPUs, they
checkpoint the system and restore from the checkpoint again. This is
done at regular intervals, typically while booting Linux.

The implementation is fairly straight forward, with the exception that
we have to work around gem5's inability to restore from a checkpoint
after a system has been instantiated. We work around this by forking
off child processes that does the actual simulation and never
instantiate a system in the parent process unless a maximum checkpoint
count is reached (in which case we just simulate the system to
completion in the parent).

Checkpoint testing is currently only enabled 32- and 64-bit ARM
systems using atomic CPUs.

Note: An unfortunate side-effect of forking is that every new process
will overwrite the stats and terminal output from the previous
process. This means that the output directory only contains data from
the last checkpoint.
This commit is contained in:
Andreas Sandberg
2015-03-19 04:06:20 -04:00
parent ecd4bad351
commit 877435950c
12 changed files with 7721 additions and 0 deletions

View File

@@ -322,6 +322,7 @@ if env['TARGET_ISA'] == 'arm':
'o3-timing-checker',
'realview-simple-atomic',
'realview-simple-atomic-dual',
'realview-simple-atomic-checkpoint',
'realview-simple-timing',
'realview-simple-timing-dual',
'realview-o3',
@@ -334,6 +335,7 @@ if env['TARGET_ISA'] == 'arm':
'realview-switcheroo-o3',
'realview-switcheroo-full',
'realview64-simple-atomic',
'realview64-simple-atomic-checkpoint',
'realview64-simple-atomic-dual',
'realview64-simple-timing',
'realview64-simple-timing-dual',