History log of /gem5/configs/common/Simulation.py
Revision Date Author Comments
# 13967:755cdc26b48d 14-May-2019 Javier Bueno <javier.bueno@metempsy.com>

configs: Fix duplicate branchPred reference in Simulation.py

Change-Id: I5ef5fb7ebc5fc2a4776adc43643c4df27efc341c
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/18769
Tested-by: kokoro <noreply+kokoro@google.com>
Reviewed-by: Andreas Sandberg <andreas.sandberg@arm.com>
Maintainer: Andreas Sandberg <andreas.sandberg@arm.com>


# 13958:1945df12e5b0 07-Jan-2019 Jairo Balart <jairo.balart@metempsy.com>

config: add an option to list and select indirect branch predictor

Change-Id: I9a855d36de7d95b7785ff8a897899037cea6a3d8
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/15320
Reviewed-by: Andreas Sandberg <andreas.sandberg@arm.com>
Maintainer: Andreas Sandberg <andreas.sandberg@arm.com>
Tested-by: kokoro <noreply+kokoro@google.com>


# 13774:a1be2a0c55f2 25-Feb-2019 Andreas Sandberg <andreas.sandberg@arm.com>

configs: Use absolute import paths

Use absoluate import paths to be Python 3 compatible. This also
imports absolute_import from __future__ to ensure that Python 2.7
behaves the same way as Python 3.

Change-Id: Ica06ed95814e9cd3e768b3e1785075e36f6e56d0
Signed-off-by: Andreas Sandberg <andreas.sandberg@arm.com>
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/16708
Reviewed-by: Jason Lowe-Power <jason@lowepower.com>


# 13731:67cd980cb20f 26-Jan-2019 Andreas Sandberg <andreas.sandberg@arm.com>

configs: Fix Python 3 iterator and exec compatibility issues

Python 2.7 used to return lists for operations such as map and range,
this has changed in Python 3. To make the configs Python 3 compliant,
add explicit conversions from iterators to lists where needed, replace
xrange with range, and fix changes to exec syntax.

This change doesn't fix import paths since that might require us to
restructure the configs slightly.

Change-Id: Idcea8482b286779fc98b4e144ca8f54069c08024
Signed-off-by: Andreas Sandberg <andreas.sandberg@arm.com>
Reviewed-on: https://gem5-review.googlesource.com/c/16002
Reviewed-by: Gabe Black <gabeblack@google.com>


# 13432:6ce67b7e6e44 07-Nov-2018 Pau Cabre <pau.cabre@metempsy.com>

configs: Added an option for choosing branch predictor type

Added the parameter "--bp-type" to set the branch predictor type
Added the parameter "--list-bp-types" to list all the available branch
predictor types

Change-Id: Ia6aae90c784aef359b6d8233c8383cd7a871aca1
Signed-off-by: Pau Cabre <pau.cabre@metempsy.com>
Reviewed-on: https://gem5-review.googlesource.com/c/14015
Reviewed-by: Andreas Sandberg <andreas.sandberg@arm.com>
Reviewed-by: Jason Lowe-Power <jason@lowepower.com>
Maintainer: Andreas Sandberg <andreas.sandberg@arm.com>


# 13357:110926e15f1f 13-Sep-2018 Ciro Santilli <ciro.santilli@arm.com>

config: add --param to fs.py, se.py and fs_bigLITTLE.py

The option allows to set SimObject params from the CLI.

The existing config scripts have a large number of options that simply set
a single SimObject parameter, and many still are not exposed.

This commit allows users to pass arbitrary parameters from the command
line to prevent the need for this kind of trivial option.

Change-Id: Ic4bd36948aca4998d2eaf6369c85d3668efa3944
Reviewed-on: https://gem5-review.googlesource.com/c/12985
Reviewed-by: Andreas Sandberg <andreas.sandberg@arm.com>
Reviewed-by: Jason Lowe-Power <jason@lowepower.com>
Maintainer: Jason Lowe-Power <jason@lowepower.com>


# 12880:cb1fb179e8c8 21-Sep-2017 Jason Lowe-Power <jason@lowepower.com>

configs: Always exit with code 0

Update simulation.py to always exit with code 0 assuming the simulation
exits normally. If the running application has a return code that is non
zero, then print the return code before exiting.

Change-Id: I1983985d50311627574d4364b32ee961ae88e003
Signed-off-by: Jason Lowe-Power <jason@lowepower.com>
Reviewed-on: https://gem5-review.googlesource.com/4880


# 12564:2778478ca882 06-Mar-2018 Gabe Black <gabeblack@google.com>

config: Switch from the print statement to the print function.

Change-Id: I701fa58cfcfa2767ce9ad24da314a053889878d0
Reviewed-on: https://gem5-review.googlesource.com/8762
Reviewed-by: Andreas Sandberg <andreas.sandberg@arm.com>
Reviewed-by: Jason Lowe-Power <jason@lowepower.com>
Reviewed-by: Anthony Gutierrez <anthony.gutierrez@amd.com>
Maintainer: Gabe Black <gabeblack@google.com>


# 12395:322bb93e5f06 09-Nov-2017 Swapnil Haria <swapnilster@gmail.com>

mem-ruby: Support atomic_noncaching acceses in ruby

Ruby has no support for atomic_noncaching accesses, which prevents using
it with kvm-cpu. This patch fixes this by directly forwarding atomic
requests from the ruby port/sequencer to the corresponding directory
based on the destination address of the packet.

Change-Id: I0b4928bfda44fd9e5e48583c51d1ea422800da2d
Reviewed-on: https://gem5-review.googlesource.com/5601
Reviewed-by: Andreas Sandberg <andreas.sandberg@arm.com>
Reviewed-by: Jason Lowe-Power <jason@lowepower.com>
Reviewed-by: Bradford Beckmann <brad.beckmann@amd.com>
Maintainer: Jason Lowe-Power <jason@lowepower.com>
Maintainer: Bradford Beckmann <brad.beckmann@amd.com>


# 12374:df27dd3da16d 02-Dec-2017 Austin Harris <austinharris@utexas.edu>

config: Fix need to set ISA of switch cpus.

Since BaseCPU.createThreads() no longer overrides the BaseCPU.isa
parameter, switch_cpus should have the ISA copied. This fixes a
fatal error in BaseCPU when restoring from a checkpoint.

Change-Id: I4fdcacb76da46bdbe1ce37dcf05c5a6a8a9e5237
Signed-off-by: Austin Harris <austinharris@utexas.edu>
Reviewed-on: https://gem5-review.googlesource.com/6241
Reviewed-by: Jason Lowe-Power <jason@lowepower.com>
Maintainer: Jason Lowe-Power <jason@lowepower.com>


# 11688:725fef71f376 26-Oct-2016 Andreas Hansson <andreas.hansson@arm.com>

config: Break out base options for usage with NULL ISA

This patch breaks out the most basic configuration options into a set
of base options, to allow them to be used also by scripts that do not
involve any ISA, and thus no actual CPUs or devices.

The patch also fixes a few modules so that they can be imported in a
NULL build, and avoid dragging in FSConfig every time Options is
imported.


# 11320:42ecb523c64a 06-Feb-2016 Steve Reinhardt <steve.reinhardt@amd.com>

style: remove trailing whitespace

Result of running 'hg m5style --skip-all --fix-white -a'.


# 11251:a15c86af004a 07-Dec-2015 Radhika Jagtap <radhika.jagtap@ARM.com>

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.


# 10786:ee82c2c30421 14-Apr-2015 Malek Musleh <malek.musleh@gmail.com>

config, cpu: fix progress interval for switched CPUs
This patch ensures that the CPU progress Event is triggered for the new set of
switched_cpus that get scheduled (e.g. during fast-forwarding). it also avoids
printing the interval state if the cpu is currently switched out.

Committed by: Nilay Vaish <nilay@cs.wisc.edu>


# 10757:8a4040874157 23-Mar-2015 Curtis Dunham <Curtis.Dunham@arm.com>

config: Add ability to exit simulation after initialization

When using gem5 as a slave simulator, it will not advance the
clock on its own and depends on the master simulator calling
simulate(). This new option lets us use the Python scripts
to do all the configuration while stopping short of actually
simulating anything.


# 10608:427f988fe6e5 23-Dec-2014 Dam Sunwoo <dam.sunwoo@arm.com>

config: Add options to take/resume from SimPoint checkpoints

More documentation at http://gem5.org/Simpoints

Steps to profile, generate, and use SimPoints with gem5:

1. To profile workload and generate SimPoint BBV file, use the
following option:

--simpoint-profile --simpoint-interval <interval length>

Requires single Atomic CPU and fastmem.
<interval length> is in number of instructions.

2. Generate SimPoint analysis using SimPoint 3.2 from UCSD.
(SimPoint 3.2 not included with this flow.)

3. To take gem5 checkpoints based on SimPoint analysis, use the
following option:

--take-simpoint-checkpoint=<simpoint file path>,<weight file
path>,<interval length>,<warmup length>

<simpoint file> and <weight file> is generated by SimPoint analysis
tool from UCSD. SimPoint 3.2 format expected. <interval length> and
<warmup length> are in number of instructions.

4. To resume from gem5 SimPoint checkpoints, use the following option:

--restore-simpoint-checkpoint -r <N> --checkpoint-dir <simpoint
checkpoint path>

<N> is (SimPoint index + 1). E.g., "-r 1" will resume from SimPoint
#0.


# 10159:ca6f1407f8f8 10-Apr-2014 Gedare Bloom <gedare@rtems.org>

config: add num-work-ids command line option
Adds the parameter --num-work-ids to Options.py and reads the parameter
into the System params in Simulation.py. This parameter enables setting
the number of possible work items to different than 16. Support for this
parameter already exists in src/sim/System.py, so this changeset only
affects the Python config files.

Committed by: Nilay Vaish <nilay@cs.wisc.edu>


# 9867:650fc966ed78 11-Sep-2013 Joel Hestness <jthestness@gmail.com>

config: Initialize and check cpt_starttick

The previous changeset (9816) that fixes the use of max ticks introduced the
variable cpt_starttick, which is used for setting the relative max tick.
Unfortunately, with checkpointing at an instruction count or with simpoints,
the checkpoint tick is not stored conveniently, so to ensure that cpt_starttick
is initialized, set it to 0. Also, if using --rel-max-tick, check the use of
instruction counts or simpoints to warn the user that the max tick setting does
not include the checkpoint ticks.


# 9816:971507cbbe65 18-Jul-2013 Joel Hestness <jthestness@gmail.com>

Configs: Fix up maxtick and maxtime

This patch contains three fixes to max tick options handling in Options.py and
Simulation.py:

1) Since the global simulator frequency isn't bound until m5.instantiate()
is called, the maxtick resolution needs to happen after this call, since
changes to the global frequency will cause m5.simulate() to misinterpret the
maxtick value. Shuffling this also requires tweaking the checkpoint directory
handling to signal the checkpoint restore tick back to run(). Fixing this
completely and correctly will require storing the simulation frequency into
checkpoints, which is beyond the scope of this patch.

2) The maxtick option in Options.py was defaulted to MaxTicks, so the old code
would always skip over the maxtime part of the conditionals at the beginning
of run(). Change the maxtick default to None, and set the maxtick local
variable in run() appropriately.

3) To clarify whether max ticks settings are relative or absolute, split the
maxtick option into separate options, for relative and absolute. Ensure that
these two options and the maxtime option are handled appropriately to set the
maxtick variable in Simulation.py.


# 9793:6e6cefc1db1f 27-Jun-2013 Akash Bagdia <akash.bagdia@arm.com>

sim: Add the notion of clock domains to all ClockedObjects

This patch adds the notion of source- and derived-clock domains to the
ClockedObjects. As such, all clock information is moved to the clock
domain, and the ClockedObjects are grouped into domains.

The clock domains are either source domains, with a specific clock
period, or derived domains that have a parent domain and a divider
(potentially chained). For piece of logic that runs at a derived clock
(a ratio of the clock its parent is running at) the necessary derived
clock domain is created from its corresponding parent clock
domain. For now, the derived clock domain only supports a divider,
thus ensuring a lower speed compared to its parent. Multiplier
functionality implies a PLL logic that has not been modelled yet
(create a separate clock instead).

The clock domains should be used as a mechanism to provide a
controllable clock source that affects clock for every clocked object
lying beneath it. The clock of the domain can (in a future patch) be
controlled by a handler responsible for dynamic frequency scaling of
the respective clock domains.

All the config scripts have been retro-fitted with clock domains. For
the System a default SrcClockDomain is created. For CPUs that run at a
different speed than the system, there is a seperate clock domain
created. This domain incorporates the CPU and the associated
caches. As before, Ruby runs under its own clock domain.

The clock period of all domains are pre-computed, such that no virtual
functions or multiplications are needed when calling
clockPeriod. Instead, the clock period is pre-computed when any
changes occur. For this to be possible, each clock domain tracks its
children.


# 9665:6dbdeee787cc 22-Apr-2013 Andreas Hansson <andreas.hansson@arm.com>

config: Add a mem-type config option to se/fs scripts

This patch enables selection of the memory controller class through a
mem-type command-line option. Behind the scenes, this option is
treated much like the cpu-type, and a similar framework is used to
resolve the valid options, and translate the short-hand description to
a valid class.

The regression scripts are updated with a hardcoded memory class for
the moment. The best solution going forward is probably to get the
memory out of the makeSystem functions, but Ruby complicates things as
it does not connect the memory controller to the membus.


# 9634:37a6fb91f96d 09-Apr-2013 Joel Hestness <jthestness@gmail.com>

Configs: Fix handling of maxtick and take_checkpoints

In Simulation.py, calls to m5.simulate(num_ticks) will run the simulated system
for num_ticks after the current tick. Fix calls to m5.simulate in
scriptCheckpoints() and benchCheckpoints() to appropriately handle the maxticks
variable.


# 9606:0a4b702628bd 22-Mar-2013 Nilay Vaish <nilay@cs.wisc.edu>

config: return exit event instead of cause
changeset: a4739b6f799d made some changes that where an exit event
should have been returned in place of exit cause. This patch corrects
the error.


# 9521:1cd02decbfd3 15-Feb-2013 Andreas Sandberg <Andreas.Sandberg@ARM.com>

config: Move CPU handover logic to m5.switchCpus()

CPU switching consists of the following steps:
1. Drain the system
2. Switch out old CPUs (cpu.switchOut())
3. Change the system timing mode to the mode the new CPUs require
4. Flush caches if switching to hardware virtualization
5. Inform new CPUs of the handover (cpu.takeOverFrom())
6. Resume the system

m5.switchCpus() previously only did step 2 & 5. Since information
about the new processors' memory system requirements is now exposed,
do all of the steps above.

This patch adds automatic memory system switching and flush (if
needed) to switchCpus(). Additionally, it adds optional draining to
switchCpus(). This has the following implications:

* changeToTiming and changeToAtomic are no longer needed, so they have
been removed.

* changeMemoryMode is only used internally, so it is has been renamed
to be private.

* switchCpus requires a reference to the system containing the CPUs as
its first parameter.

WARNING: This changeset breaks compatibility with existing
configuration scripts since it changes the signature of
m5.switchCpus().


# 9520:ea7c03ae2d5e 15-Feb-2013 Andreas Sandberg <Andreas.Sandberg@ARM.com>

config: Cleanup CPU configuration

The CPUs supported by the configuration scripts used to be
hard-coded. This was not ideal for several reasons. For example, the
configuration scripts depend on all CPU models even though only a
subset might have been compiled.

This changeset adds a new module to the configuration scripts that
automatically discovers the available CPU models from the compiled
SimObjects. As a nice bonus, the use of introspection allows us to
automatically generate a list of available CPU models suitable for
printing. This list is augmented with the Python doc string from the
underlying class if available.


# 9518:8faae62af8c3 15-Feb-2013 Andreas Sandberg <Andreas.Sandberg@ARM.com>

cpu: Add CPU metadata om the Python classes

The configuration scripts currently hard-code the requirements of each
CPU. This is clearly not optimal as it makes writing new configuration
scripts painful and adding new CPU models requires existing scripts to
be updated. This patch adds the following class methods to the base
CPU and all relevant CPUs:

* memory_mode -- Return a string describing the current memory mode
(invalid/atomic/timing).

* require_caches -- Does the CPU model require caches?

* support_take_over -- Does the CPU support CPU handover?


# 9494:50da272a1300 10-Feb-2013 Andreas Sandberg <andreas@sandberg.pp.se>

config: Don't call sys.exit in interactive mode in run()

The run() method in Simulation.py used to call sys.exit() when the
simulator exits. This is undesirable when user has requested the
simulator to be run in interactive mode since it causes the simulator
to exit rather than entering the interactive Python environment.


# 9460:5532a1642108 08-Jan-2013 Ali Saidi <saidi@eecs.umich.edu>

config: Fix issue with changeset: a4739b6f799d.


# 9457:a4739b6f799d 08-Jan-2013 LluĂ­s Vilanova <vilanova@ac.upc.edu>

util: add m5_fail op.

Used as a command in full-system scripts helps the user ensure the benchmarks have finished successfully.

For example, one can use:

/path/to/benchmark args || /sbin/m5 fail 1

and thus ensure gem5 will exit with an error if the benchmark fails.


# 9433:34971d2e0019 07-Jan-2013 Andreas Sandberg <Andreas.Sandberg@ARM.com>

cpu: Rename defer_registration->switched_out

The defer_registration parameter is used to prevent a CPU from
initializing at startup, leaving it in the "switched out" mode. The
name of this parameter (and the help string) is confusing. This patch
renames it to switched_out, which should be more descriptive.


# 9344:7f966113afd1 02-Nov-2012 Andreas Sandberg <Andreas.Sandberg@arm.com>

python: Rename doDrain()->drain() and make it do the right thing

There is no point in exporting the old drain() method in
Simulate.py. It should only be used internally by doDrain(). This
patch moves the old drain() method into doDrain() and renames
doDrain() to drain().


# 9326:96ae1c545fb5 02-Nov-2012 Andreas Sandberg <Andreas.Sandberg@arm.com>

Partly revert [4f54b0f229b5] and move draining to m5.changeToTiming

Changeset 4f54b0f229b5 removed the call to doDrain in changeToTiming
based on the assumption that the system does not need draining when
running in atomic mode. This is a false assumption since at least the
System class requires the system to be drained before it allows
switching of memory modes. This patch reverts that part of the
changeset.


# 9221:4f54b0f229b5 12-Sep-2012 Joel Hestness <hestness@cs.wisc.edu>

Standard Switch: Drain the system before switching CPUs
When switching from an atomic CPU to any of the timing CPUs, a drain is
unnecessary since no events are scheduled in atomic mode. However, when
trying to switch CPUs starting with a timing CPU, there may be events
scheduled. This change ensures that all events are drained from the system
by calling m5.drain before switching CPUs.


# 9215:a67412670f37 11-Sep-2012 Andreas Hansson <andreas.hansson@arm.com>

Checkpoint: Pass maxtick to avoid undefined variable

This patch fixes a bug in scriptCheckpoints, where maxtick was used
undefined. The bug caused checkpointing by means of --take-checkpoints
to fail.


# 9156:38dd0780322a 21-Aug-2012 Andreas Hansson <andreas.hansson@arm.com>

Checkpoint: Fix broken checkpointing functionality

This patch fixes the checkpointing by ensuring that the directory is
passer to the scriptCheckpoints function, and that the num_checkpoints
is not used before it is initialised.


# 9151:a4faa7dde56c 15-Aug-2012 Anthony Gutierrez <atgutier@umich.edu>

configs: add option for repeatedly switching back-and-forth between cpu types.

This patch adds a --repeat-switch option that will enable repeat core
switching at a user defined period (set with --switch-freq option).
currently, a switch can only occur between like CPU types. inorder CPU
switching is not supported.

*note*
this patch simply allows a config that will perform repeat switching, it
does not fix drain/switchout functionality. if you run with repeat switching
you will hit assertion failures and/or your workload with hang or die.


# 9140:cfd2a8364ea1 06-Aug-2012 Nilay Vaish <nilay@cs.wisc.edu>

Simulation.py: move code related to checkpointing to functions
This patch moves the code related to checkpointing from the run() function to
several different functions. The aim is to make the code more manageable. No
functionality changes are expected, but since the code is kind of unruly, it
is possible that some change might have creeped in.


# 9139:ee038fbbe5d2 06-Aug-2012 Nilay Vaish <nilay@cs.wisc.edu>

Config: change how cpu class is set
This changes the way in which the cpu class while restoring from a checkpoint
is set. Earlier it was assumed if cpu type with which to restore is not same
as the cpu type with the which to run the simulation, then the checkpoint
should be restored with the atomic cpu. This assumption is being dropped. The
checkpoint can now be restored with any cpu type, the default being atomic cpu.


# 9129:b57966a6c512 23-Jul-2012 Andreas Hansson <andreas.hansson@arm.com>

Config: Use clock option in se/fs script and pass to switch_cpus

This patch changes the se and fs script to use the clock option and
not simply set the CPUs clock to 2 GHz. It also makes a minor change
to the assignment of the switch_cpus clock to allow different clocks.


# 8919:c1366a30d5eb 27-Mar-2012 Nilay Vaish <nilay@cs.wisc.edu>

Config: Move setWorkCountOptions() to Simulation.py
The function is presently defined in FSConfig.py, which does not seem to be
the correct place for it.


# 8887:20ea02da9c53 09-Mar-2012 Geoffrey Blake <geoffrey.blake@arm.com>

CheckerCPU: Make CheckerCPU runtime selectable instead of compile selectable

Enables the CheckerCPU to be selected at runtime with the --checker option
from the configs/example/fs.py and configs/example/se.py configuration
files. Also merges with the SE/FS changes.


# 8803:f6c5785bc8fd 28-Jan-2012 Gabe Black <gblack@eecs.umich.edu>

SE/FS: Get rid of FULL_SYSTEM in the configs directory


# 8724:7b4d80b26e35 26-Jan-2012 Ronald Dreslinski <rdreslin@umich.edu>

configs: A more realistic configuration of an ARM-like processor


# 8718:062bf3879857 23-Jan-2012 Nilay Vaish <nilay@cs.wisc.edu>

Config: Enable using O3 CPU and Ruby in SE mode


# 8689:ec5f79b99ac3 11-Jan-2012 Nilay Vaish <nilay@cs.wisc.edu>

Config: Add support for restoring using a timing CPU
Currently there is an assumption that restoration from a checkpoint will
happen by first restoring to an atomic CPU and then switching to a timing
CPU. This patch adds support for directly restoring to a timing CPU. It
adds a new option '--restore-with-cpu' which is used to specify the type
of CPU to which the checkpoint should be restored to. It defaults to
'atomic' which was the case before.


# 8649:c3e7a961c727 05-Jan-2012 Nilay Vaish <nilay@cs.wisc.edu>

Config: Add an option of type 'choice' for cpu type
This patch adds a new option for cpu type. This option is of type 'choice'
which is similar to a C++ enum, except that it takes string values as
possible choices. Following options are being removed -- detailed, timing,
inorder.


# 8318:3f37cc5d25bc 23-May-2011 Korey Sewell <ksewell@umich.edu>

configs: missed spot progress-interval change


# 8311:7b42aba8e5f2 20-May-2011 Korey Sewell <ksewell@umich.edu>

configs: cleanup redundant/unused options
maxinsts & max_inst redundant
prog_intvl and profile seem redundant, but profile looks to be unused
add -p option for progress intervals


# 8211:5275c2fbe957 04-Apr-2011 Anthony Gutierrez <atgutier@umich.edu>

Sim: Fix Simulation.py to allow more than 1 core for standard switching.

This patch moves the assignment of testsys.switch_cpus, testsys.switch_cpus_1,
switch_cpu_list, and switch_cpu_list1 outside of the for loop so they are
assigned only once, after switch_cpus and switch_cpus_1 are constructed.


# 7766:1252ec1c8714 17-Nov-2010 Gabe Black <gblack@eecs.umich.edu>

Config: Change misleading "cycle" message to say "tick".

Most of the messages in the config scripts that report a time value already
print "@ tick" followed by the current tick value, but a few were printing
"@ cycle". Since this is a distinction that's frequently confusing to new
users, this changes those message to the more accurate and consistent "@ tick".


# 7534:c76a14014c27 17-Aug-2010 Steve Reinhardt <steve.reinhardt@amd.com>

misc: add some AMD copyright notices
Meant to add these with the previous batch of csets.


# 7531:f5e86115a07a 17-Aug-2010 Steve Reinhardt <steve.reinhardt@amd.com>

sim: fold checkpoint restore code into instantiate()
The separate restoreCheckpoint() call is gone; just pass
the checkpoint dir as an optional arg to instantiate().
This change is a precursor to some more extensive
reworking of the startup code.


# 7530:89b6893554f5 17-Aug-2010 Steve Reinhardt <steve.reinhardt@amd.com>

configs: clean up checkpoint code in Simulation.py
Small change to clean up some redundant code.
Should not have any functional impact.


# 7525:722f2ad014a7 17-Aug-2010 Steve Reinhardt <steve.reinhardt@amd.com>

sim: make Python Root object a singleton
Enforce that the Python Root SimObject is instantiated only
once. The C++ Root object already panics if more than one is
created. This change avoids the need to track what the root
object is, since it's available from Root.getInstance() (if it
exists). It's now redundant to have the user pass the root
object to functions like instantiate(), checkpoint(), and
restoreCheckpoint(), so that arg is gone. Users who use
configs/common/Simulate.py should not notice.


# 7489:26cd0ad262d0 06-Jul-2010 Steve Reinhardt <steve.reinhardt@amd.com>

util: add a script for testing checkpointing
See comments in util/checkpoint-tester.py for details.


# 6776:463aab78c057 18-Nov-2009 Brad Beckmann <Brad.Beckmann@amd.com>

m5: Added option to take a checkpoint at the end of simulation


# 6654:4c84e771cca7 22-Sep-2009 Nathan Binkert <nate@binkert.org>

python: Move more code into m5.util allow SCons to use that code.
Get rid of misc.py and just stick misc things in __init__.py
Move utility functions out of SCons files and into m5.util
Move utility type stuff from m5/__init__.py to m5/util/__init__.py
Remove buildEnv from m5 and allow access only from m5.defines
Rename AddToPath to addToPath while we're moving it to m5.util
Rename read_command to readCommand while we're moving it
Rename compare_versions to compareVersions while we're moving it.


# 6641:59f08019c39a 16-Sep-2009 Korey Sewell <ksewell@umich.edu>

configs: add maxinsts option on command line
-option to allow threads to run to a max_inst_any_thread which is more useful/quicker in a lot of
cases then always having to figure out what tick to run your simulation to.


# 6174:7e5c7412ac89 05-May-2009 Korey Sewell <ksewell@umich.edu>

cpus: fix cpu progress event
this was double scheduling itself (once in constructor and once in cpu code). also add support for stopping / starting
progress events through repeatEvent flag and also changing the interval of the progress event as well


# 6144:e330f7bc22ef 05-May-2009 Korey Sewell <ksewell@umich.edu>

cpus: fix cpu progress event
this was double scheduling itself (once in constructor and once in cpu code). also add support for stopping / starting
progress events through repeatEvent flag and also changing the interval of the progress event as well


# 6107:52a5e1c63380 21-Apr-2009 Steve Reinhardt <steve.reinhardt@amd.com>

Minor tweaks for future Ruby compatibility.


# 5869:acbe11bbfe68 10-Feb-2009 Korey Sewell <ksewell@umich.edu>

Configs: Add support for the InOrder CPU model


# 5822:05ffa2c3c800 30-Jan-2009 Ali Saidi <saidi@eecs.umich.edu>

Errors: Print a URL with a hash of the format string to find more information about an error.


# 5378:7c058e69f257 15-Mar-2008 Ali Saidi <saidi@eecs.umich.edu>

Simpoints: Fix regression bug/Don't set process.simpoint, if simpoint doesn't exist


# 5371:dce5a8655829 29-Feb-2008 Lisa Hsu <hsul@eecs.umich.edu>

Error out if -s is used without --caches (instead of saying you must specify a
CPU).


# 5370:b16ec4d7e77c 29-Feb-2008 Ali Saidi <saidi@eecs.umich.edu>

Configs: Make sure options don't conflict


# 5369:9358355117b0 28-Feb-2008 Ali Saidi <saidi@eecs.umich.edu>

Configs: Fix some bugs we introduced in the simpoints code


# 5361:e379019a1abd 27-Feb-2008 Rick Strong <rstrong@cs.ucsd.edu>

Configs: Make using Simpoints easier with some config files that support them easily


# 5353:487d6f3291d7 22-Feb-2008 Vilas Sridharan <vilas.sridharan@gmail.com>

add instruction count fast forwaing and max instruction options


# 5347:f15b21a5bd2e 14-Feb-2008 Ali Saidi <saidi@eecs.umich.edu>

Configs: Change Simulation.py to return a subclass of the CPU models rather than the original class. Without this changes elsewhere in the config script (e.g. the DriveSys frequency can change the TestSys frequency.


# 5311:9ed42a2315ae 18-Dec-2007 Ali Saidi <saidi@eecs.umich.edu>

Checkpointing: Fix a bug in the simulation script when restoring without standard switch and change some ifs to work with the default port since every port is now connected to something.


# 5211:f7412cfae319 03-Nov-2007 Ali Saidi <saidi@eecs.umich.edu>

Checkpoint: Use checkpoint_dir, if that is not set use outdir (-d), and if that isn't set use cwd.


# 5185:d970c1ec39c9 25-Oct-2007 Ali Saidi <saidi@eecs.umich.edu>

Checkpoints: Change Simulation.py to not go crazy if the simulation ends before the number of checkpoints requested are created.


# 5073:1916291dcfda 12-Sep-2007 Ali Saidi <saidi@eecs.umich.edu>

Checkpointing: Fix directory regex


# 5072:ff0e3c84a1de 12-Sep-2007 Ali Saidi <saidi@eecs.umich.edu>

Checkpointing: Force drain/resume when switching a CPU


# 4167:ce5d0f62f13b 06-Mar-2007 Nathan Binkert <binkertn@umich.edu>

Move all of the parameters of the Root SimObject so they are
directly configured by python. Move stuff from root.(cc|hh) to
core.(cc|hh) since it really belogs there now.
In the process, simplify how ticks are used in the python code.


# 3999:ba54519a7a92 30-Jan-2007 Ali Saidi <saidi@eecs.umich.edu>

fix some checkpointing annoyances
-m works as you think it should
Ctrl-C actually ends the simulation now


# 3681:129a68314264 26-Nov-2006 Kevin Lim <ktlim@umich.edu>

Include check for making sure caches are enabled.


# 3631:cebd6af96efd 09-Nov-2006 Kevin Lim <ktlim@umich.edu>

Merge ktlim@zizzer:/bk/newmem
into zamp.eecs.umich.edu:/z/ktlim2/clean/newmem-busfix


# 3514:b166ee5dce91 09-Nov-2006 Kevin Lim <ktlim@umich.edu>

Clean up config scripts to not have to worry about attaching a cache only to the TimingCPU. Now the Atomic CPU works with caches.

configs/common/Simulation.py:
Atomic CPU now works properly with caches, so we don't have to do extra parsing to hook up caches only to the timing CPU.

However the O3CPU must always use caches, so a check for that must still exist.

Also change the switch_cpus to be placed at the system level, now that Steve changed how the IntrController gets its CPU.
configs/example/fs.py:
configs/example/se.py:
Atomic CPU now handles caches.


# 3511:8cb26619b6ec 08-Nov-2006 Lisa Hsu <hsul@eecs.umich.edu>

simplify maxtick parsing in both the python and the c++.

configs/common/Simulation.py:
simplify maxtick code a little bit - instead of checking for -1, just set it at MaxTick.
src/python/m5/__init__.py:
make a new m5 param called MaxTick.
src/sim/host.hh:
fix the M5 def. of MaxTick
src/sim/main.cc:
Simplify the MaxTick/num_cycles parsing within main.cc


# 3509:ff94a3eda992 08-Nov-2006 Lisa Hsu <hsul@eecs.umich.edu>

change to os.path.join like nate wanted.


# 3481:14362d3b0756 01-Nov-2006 Lisa Hsu <hsul@eecs.umich.edu>

factor some more commone code and enable going from checkpoint into arbitrary CPU with or without caches.

configs/common/Simulation.py:
enable going from checkpoint into arbitrary CPU with or without caches.


# 3480:c1ec938d2920 01-Nov-2006 Lisa Hsu <hsul@eecs.umich.edu>

make it so that you can do a standard switch without the caches option. this will have only the o3 cpu have a cache, rather than timing (warmup) + o3 have cache.


# 3478:b2372d54182c 01-Nov-2006 Lisa Hsu <hsul@eecs.umich.edu>

change name of 2nd switch_cpu so that ckpt recovery with multiple cpus doens't get confused.


# 3477:eaf445891a4e 31-Oct-2006 Kevin Lim <ktlim@umich.edu>

Fix up configs.

configs/common/Simulation.py:
Remove mem parameter.
configs/example/se.py:
Remove debug output that got included in my other push.


# 3448:bb2632fa57dc 30-Oct-2006 Lisa Hsu <hsul@eecs.umich.edu>

se.py, fs.py:
import Caches
Simulation.py:
Fix typo - L2Cache --> L1Cache

configs/common/Simulation.py:
Fix typo - L2Cache --> L1Cache
configs/example/fs.py:
configs/example/se.py:
import Caches


# 3447:258e3c319f6f 30-Oct-2006 Lisa Hsu <hsul@eecs.umich.edu>

ensure that there is a "/" between the cptdir and the cpt.%d.


# 3445:5c5f90f5506c 30-Oct-2006 Lisa Hsu <hsul@eecs.umich.edu>

decouple the switch option from the warmup period option - parsing was confused otherwise, oops.


# 3410:ef75e2c78b2d 30-Oct-2006 Lisa Hsu <hsul@eecs.umich.edu>

add some comments and make the warmup period in a switchover parameterizable.

configs/common/Options.py:
make the warmup period in a standard switch part of the option.
configs/common/Simulation.py:
add some comments and also make the warmup period an option.


# 3395:49e674f2fb5d 27-Oct-2006 Lisa Hsu <hsul@eecs.umich.edu>

factor out common run code from se.py and fs.py.

configs/example/fs.py:
factor out common code.
configs/example/se.py:
factor out common code