config: Enable elastic trace capture and replay in se/fs

This patch adds changes to the configuration scripts to support elastic
tracing and replay.

The patch adds a command line option to enable elastic tracing in SE mode
and FS mode. When enabled the Elastic Trace cpu probe is attached to O3CPU
and a few O3 CPU parameters are tuned. The Elastic Trace probe writes out
both instruction fetch and data dependency traces. The patch also enables
configuring the TraceCPU to replay traces using the SE and FS script.

The replay run is designed to resume from checkpoint using atomic cpu to
restore state keeping it consistent with FS run flow. It then switches to
TraceCPU to replay the input traces.
This commit is contained in:
Radhika Jagtap
2015-12-07 16:42:16 -06:00
parent 8f1ca0a212
commit 9bd5051b60
9 changed files with 200 additions and 2 deletions

View File

@@ -187,6 +187,11 @@ def config_mem(options, system):
cls = get(options.mem_type)
mem_ctrls = []
if options.elastic_trace_en and not issubclass(cls, \
m5.objects.SimpleMemory):
fatal("When elastic trace is enabled, configure mem-type as "
"simple-mem.")
# The default behaviour is to interleave memory channels on 128
# byte granularity, or cache line granularity if larger than 128
# byte. This value is based on the locality seen across a large
@@ -206,6 +211,11 @@ def config_mem(options, system):
options.mem_ranks:
mem_ctrl.ranks_per_channel = options.mem_ranks
if options.elastic_trace_en:
mem_ctrl.latency = '1ns'
print "For elastic trace, over-riding Simple Memory " \
"latency to 1ns."
mem_ctrls.append(mem_ctrl)
subsystem.mem_ctrls = mem_ctrls