Options.py (8887:20ea02da9c53) Options.py (8920:99083b5b7ed4)
1# Copyright (c) 2006-2008 The Regents of The University of Michigan
2# All rights reserved.
3#
4# Redistribution and use in source and binary forms, with or without
5# modification, are permitted provided that the following conditions are
6# met: redistributions of source code must retain the above copyright
7# notice, this list of conditions and the following disclaimer;
8# redistributions in binary form must reproduce the above copyright

--- 12 unchanged lines hidden (view full) ---

21# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
22# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
23# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
24# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
25# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
26#
27# Authors: Lisa Hsu
28
1# Copyright (c) 2006-2008 The Regents of The University of Michigan
2# All rights reserved.
3#
4# Redistribution and use in source and binary forms, with or without
5# modification, are permitted provided that the following conditions are
6# met: redistributions of source code must retain the above copyright
7# notice, this list of conditions and the following disclaimer;
8# redistributions in binary form must reproduce the above copyright

--- 12 unchanged lines hidden (view full) ---

21# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
22# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
23# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
24# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
25# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
26#
27# Authors: Lisa Hsu
28
29# system options
30parser.add_option("--cpu-type", type="choice", default="atomic",
31 choices = ["atomic", "timing", "detailed", "inorder",
32 "arm_detailed"],
33 help = "type of cpu to run with")
34parser.add_option("--checker", action="store_true");
35parser.add_option("-n", "--num-cpus", type="int", default=1)
36parser.add_option("--caches", action="store_true")
37parser.add_option("--l2cache", action="store_true")
38parser.add_option("--fastmem", action="store_true")
39parser.add_option("--clock", action="store", type="string", default='2GHz')
40parser.add_option("--num-dirs", type="int", default=1)
41parser.add_option("--num-l2caches", type="int", default=1)
42parser.add_option("--num-l3caches", type="int", default=1)
43parser.add_option("--l1d_size", type="string", default="64kB")
44parser.add_option("--l1i_size", type="string", default="32kB")
45parser.add_option("--l2_size", type="string", default="2MB")
46parser.add_option("--l3_size", type="string", default="16MB")
47parser.add_option("--l1d_assoc", type="int", default=2)
48parser.add_option("--l1i_assoc", type="int", default=2)
49parser.add_option("--l2_assoc", type="int", default=8)
50parser.add_option("--l3_assoc", type="int", default=16)
51parser.add_option("--cacheline_size", type="int", default=64)
52parser.add_option("--ruby", action="store_true")
29import m5
30from m5.defines import buildEnv
31from m5.objects import *
32from Benchmarks import *
53
33
54# Run duration options
55parser.add_option("-m", "--maxtick", type="int", default=m5.MaxTick,
56 metavar="T",
57 help="Stop after T ticks")
58parser.add_option("--maxtime", type="float")
59parser.add_option("-I", "--maxinsts", action="store", type="int", default=None,
60 help="Total number of instructions to simulate (default: run forever)")
61parser.add_option("--work-item-id", action="store", type="int",
62 help="the specific work id for exit & checkpointing")
63parser.add_option("--work-begin-cpu-id-exit", action="store", type="int",
64 help="exit when work starts on the specified cpu")
65parser.add_option("--work-end-exit-count", action="store", type="int",
66 help="exit at specified work end count")
67parser.add_option("--work-begin-exit-count", action="store", type="int",
68 help="exit at specified work begin count")
69parser.add_option("--init-param", action="store", type="int", default=0,
70 help="Parameter available in simulation with m5 initparam")
34def addCommonOptions(parser):
35 # system options
36 parser.add_option("--cpu-type", type="choice", default="atomic",
37 choices = ["atomic", "timing", "detailed", "inorder",
38 "arm_detailed"],
39 help = "type of cpu to run with")
40 parser.add_option("--checker", action="store_true");
41 parser.add_option("-n", "--num-cpus", type="int", default=1)
42 parser.add_option("--caches", action="store_true")
43 parser.add_option("--l2cache", action="store_true")
44 parser.add_option("--fastmem", action="store_true")
45 parser.add_option("--clock", action="store", type="string", default='2GHz')
46 parser.add_option("--num-dirs", type="int", default=1)
47 parser.add_option("--num-l2caches", type="int", default=1)
48 parser.add_option("--num-l3caches", type="int", default=1)
49 parser.add_option("--l1d_size", type="string", default="64kB")
50 parser.add_option("--l1i_size", type="string", default="32kB")
51 parser.add_option("--l2_size", type="string", default="2MB")
52 parser.add_option("--l3_size", type="string", default="16MB")
53 parser.add_option("--l1d_assoc", type="int", default=2)
54 parser.add_option("--l1i_assoc", type="int", default=2)
55 parser.add_option("--l2_assoc", type="int", default=8)
56 parser.add_option("--l3_assoc", type="int", default=16)
57 parser.add_option("--cacheline_size", type="int", default=64)
58 parser.add_option("--ruby", action="store_true")
71
59
72# Checkpointing options
73###Note that performing checkpointing via python script files will override
74###checkpoint instructions built into binaries.
75parser.add_option("--take-checkpoints", action="store", type="string",
76 help="<M,N> will take checkpoint at cycle M and every N cycles thereafter")
77parser.add_option("--max-checkpoints", action="store", type="int",
78 help="the maximum number of checkpoints to drop", default=5)
79parser.add_option("--checkpoint-dir", action="store", type="string",
80 help="Place all checkpoints in this absolute directory")
81parser.add_option("-r", "--checkpoint-restore", action="store", type="int",
82 help="restore from checkpoint <N>")
83parser.add_option("--checkpoint-at-end", action="store_true",
84 help="take a checkpoint at end of run")
85parser.add_option("--work-begin-checkpoint-count", action="store", type="int",
86 help="checkpoint at specified work begin count")
87parser.add_option("--work-end-checkpoint-count", action="store", type="int",
88 help="checkpoint at specified work end count")
89parser.add_option("--work-cpus-checkpoint-count", action="store", type="int",
90 help="checkpoint and exit when active cpu count is reached")
91parser.add_option("--restore-with-cpu", action="store", type="choice",
92 default="atomic", choices = ["atomic", "timing",
93 "detailed", "inorder"],
94 help = "cpu type for restoring from a checkpoint")
60 # Run duration options
61 parser.add_option("-m", "--maxtick", type="int", default=m5.MaxTick,
62 metavar="T", help="Stop after T ticks")
63 parser.add_option("--maxtime", type="float")
64 parser.add_option("-I", "--maxinsts", action="store", type="int",
65 default=None, help="""Total number of instructions to
66 simulate (default: run forever)""")
67 parser.add_option("--work-item-id", action="store", type="int",
68 help="the specific work id for exit & checkpointing")
69 parser.add_option("--work-begin-cpu-id-exit", action="store", type="int",
70 help="exit when work starts on the specified cpu")
71 parser.add_option("--work-end-exit-count", action="store", type="int",
72 help="exit at specified work end count")
73 parser.add_option("--work-begin-exit-count", action="store", type="int",
74 help="exit at specified work begin count")
75 parser.add_option("--init-param", action="store", type="int", default=0,
76 help="""Parameter available in simulation with m5
77 initparam""")
95
78
79 # Checkpointing options
80 ###Note that performing checkpointing via python script files will override
81 ###checkpoint instructions built into binaries.
82 parser.add_option("--take-checkpoints", action="store", type="string",
83 help="<M,N> will take checkpoint at cycle M and every N cycles thereafter")
84 parser.add_option("--max-checkpoints", action="store", type="int",
85 help="the maximum number of checkpoints to drop", default=5)
86 parser.add_option("--checkpoint-dir", action="store", type="string",
87 help="Place all checkpoints in this absolute directory")
88 parser.add_option("-r", "--checkpoint-restore", action="store", type="int",
89 help="restore from checkpoint <N>")
90 parser.add_option("--checkpoint-at-end", action="store_true",
91 help="take a checkpoint at end of run")
92 parser.add_option("--work-begin-checkpoint-count", action="store", type="int",
93 help="checkpoint at specified work begin count")
94 parser.add_option("--work-end-checkpoint-count", action="store", type="int",
95 help="checkpoint at specified work end count")
96 parser.add_option("--work-cpus-checkpoint-count", action="store", type="int",
97 help="checkpoint and exit when active cpu count is reached")
98 parser.add_option("--restore-with-cpu", action="store", type="choice",
99 default="atomic", choices = ["atomic", "timing",
100 "detailed", "inorder"],
101 help = "cpu type for restoring from a checkpoint")
96
102
97# CPU Switching - default switch model goes from a checkpoint
98# to a timing simple CPU with caches to warm up, then to detailed CPU for
99# data measurement
100parser.add_option("-s", "--standard-switch", action="store_true",
101 help="switch from timing CPU to Detailed CPU")
102parser.add_option("-w", "--warmup", action="store", type="int",
103 help="if -s, then this is the warmup period. else, this is ignored",
104 default=5000000000)
105parser.add_option("-p", "--prog-interval", type="int", help="CPU Progress Interval")
106
103
107# Fastforwarding and simpoint related materials
108parser.add_option("-W", "--warmup-insts", action="store", type="int",
109 default=None,
110 help="Warmup period in total instructions (requires --standard-switch)")
111parser.add_option("--bench", action="store", type="string", default=None,
112 help="base names for --take-checkpoint and --checkpoint-restore")
113parser.add_option("-F", "--fast-forward", action="store", type="string",
114 default=None,
115 help="Number of instructions to fast forward before switching")
116parser.add_option("-S", "--simpoint", action="store_true", default=False,
117 help="""Use workload simpoints as an instruction offset for
118--checkpoint-restore or --take-checkpoint.""")
119parser.add_option("--at-instruction", action="store_true", default=False,
120 help="""Treate value of --checkpoint-restore or --take-checkpoint as a
121number of instructions.""")
104 # CPU Switching - default switch model goes from a checkpoint
105 # to a timing simple CPU with caches to warm up, then to detailed CPU for
106 # data measurement
107 parser.add_option("-s", "--standard-switch", action="store_true",
108 help="switch from timing CPU to Detailed CPU")
109 parser.add_option("-w", "--warmup", action="store", type="int",
110 help="if -s, then this is the warmup period. else, this is ignored",
111 default=5000000000)
112 parser.add_option("-p", "--prog-interval", type="int",
113 help="CPU Progress Interval")
114
115 # Fastforwarding and simpoint related materials
116 parser.add_option("-W", "--warmup-insts", action="store", type="int",
117 default=None,
118 help="Warmup period in total instructions (requires --standard-switch)")
119 parser.add_option("--bench", action="store", type="string", default=None,
120 help="base names for --take-checkpoint and --checkpoint-restore")
121 parser.add_option("-F", "--fast-forward", action="store", type="string",
122 default=None,
123 help="Number of instructions to fast forward before switching")
124 parser.add_option("-S", "--simpoint", action="store_true", default=False,
125 help="""Use workload simpoints as an instruction offset for
126 --checkpoint-restore or --take-checkpoint.""")
127 parser.add_option("--at-instruction", action="store_true", default=False,
128 help="""Treat value of --checkpoint-restore or --take-checkpoint as a
129 number of instructions.""")
130
131def addSEOptions(parser):
132 # Benchmark options
133 parser.add_option("-c", "--cmd", default="",
134 help="The binary to run in syscall emulation mode.")
135 parser.add_option("-o", "--options", default="",
136 help="""The options to pass to the binary, use " "
137 around the entire string""")
138 parser.add_option("-i", "--input", default="",
139 help="Read stdin from a file.")
140 parser.add_option("--output", default="",
141 help="Redirect stdout to a file.")
142 parser.add_option("--errout", default="",
143 help="Redirect stderr to a file.")
144
145def addFSOptions(parser):
146 # Simulation options
147 parser.add_option("--timesync", action="store_true",
148 help="Prevent simulated time from getting ahead of real time")
149
150 # System options
151 parser.add_option("--kernel", action="store", type="string")
152 parser.add_option("--script", action="store", type="string")
153 parser.add_option("--frame-capture", action="store_true",
154 help="Stores changed frame buffers from the VNC server to compressed "\
155 "files in the gem5 output directory")
156
157 if buildEnv['TARGET_ISA'] == "arm":
158 parser.add_option("--bare-metal", action="store_true",
159 help="Provide the raw system without the linux specific bits")
160 parser.add_option("--machine-type", action="store", type="choice",
161 choices=ArmMachineType.map.keys(), default="RealView_PBX")
162 # Benchmark options
163 parser.add_option("--dual", action="store_true",
164 help="Simulate two systems attached with an ethernet link")
165 parser.add_option("-b", "--benchmark", action="store", type="string",
166 dest="benchmark",
167 help="Specify the benchmark to run. Available benchmarks: %s"\
168 % DefinedBenchmarks)
169
170 # Metafile options
171 parser.add_option("--etherdump", action="store", type="string", dest="etherdump",
172 help="Specify the filename to dump a pcap capture of the" \
173 "ethernet traffic")