13780:9a730759a97f |
18-Mar-2019 |
Ryan Gambord <gambordr@oregonstate.edu> |
util: Build m5 with -no-pie flag
Added -no-pie flag to link /util/m5 to support newer versions of GCC that enable PIE by default. Tested for backwards compatibility with GCC 4.3, which, only warns for the unrecognized flag.
Change-Id: I4b6df593936346b9d3e2fe29a5d85dde78b7cc5e Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/17429 Reviewed-by: Gabe Black <gabeblack@google.com> Reviewed-by: Jason Lowe-Power <jason@lowepower.com> Maintainer: Jason Lowe-Power <jason@lowepower.com> |
13776:ed8701a0d4e1 |
16-Mar-2019 |
Ryan Gambord <gambordr@oregonstate.edu> |
util: changed shebang on gem5img.py to python2.7
Change-Id: Id1a2112ce940bf6721609e2637d925d35e5ded8a Signed-off-by: Ryan Gambord <gambordr@oregonstate.edu> Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/17408 Reviewed-by: Jason Lowe-Power <jason@lowepower.com> Maintainer: Jason Lowe-Power <jason@lowepower.com> |
13759:9941fca869a9 |
16-Oct-2018 |
Giacomo Gabrielli <giacomo.gabrielli@arm.com> |
arch-arm,cpu: Add initial support for Arm SVE
This changeset adds initial support for the Arm Scalable Vector Extension (SVE) by implementing: - support for most data-processing instructions (no loads/stores yet); - basic system-level support.
Additional authors: - Javier Setoain <javier.setoain@arm.com> - Gabor Dozsa <gabor.dozsa@arm.com> - Giacomo Travaglini <giacomo.travaglini@arm.com>
Thanks to Pau Cabre for his contribution of bugfixes.
Change-Id: I1808b5ff55b401777eeb9b99c9a1129e0d527709 Signed-off-by: Giacomo Gabrielli <giacomo.gabrielli@arm.com> Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/13515 Reviewed-by: Andreas Sandberg <andreas.sandberg@arm.com> Maintainer: Andreas Sandberg <andreas.sandberg@arm.com> |
13744:c375fb19c372 |
01-Mar-2019 |
Gabe Black <gabeblack@google.com> |
util, tlm: Fix a memory error in the SCMasterPort class.
In the b_transport method of the SCMasterPort class, there is a check which determines whether the packet being sent to gem5 should be deleted once the call to sendAtomic returns. This was deleting the packet if extension was *not* nullptr.
This check should delete the packet if the extension *is* nullptr. The reasoning is that the extension will equal nullptr if there was no gem5 packet in an extension and a new one needed to be allocated. If there was an extension, ie if extension is not nullptr, then that's where the packet came from which therefore doesn't belong to us. In that case, we need to leave it alone and let its owner clean it up.
With the check reversed, this method will either leak allocated packets it should delete, or delete packets it shouldn't that someone else will likely try to use later.
Change-Id: I61578d910be6e5085b9fc0ddaa82468b1ac68578 Reviewed-on: https://gem5-review.googlesource.com/c/16949 Reviewed-by: Jason Lowe-Power <jason@lowepower.com> Maintainer: Gabe Black <gabeblack@google.com> |
13728:7e41155b588a |
20-Feb-2019 |
Gabe Black <gabeblack@google.com> |
systemc: Update the systemc example to use m5.systemc for sc_main.
Change-Id: I431d3f2c18964bac1a3f19eacfffd49cd6e50fa2 Reviewed-on: https://gem5-review.googlesource.com/c/16569 Maintainer: Gabe Black <gabeblack@google.com> Reviewed-by: Andreas Sandberg <andreas.sandberg@arm.com> |
13672:2969e4d5abf4 |
12-Feb-2019 |
Andreas Sandberg <andreas.sandberg@arm.com> |
python: Replace orderdict with collections.OrderedDict
Python 2.7 and newer has support for ordered dictionaries in the standard library. Remove this custom class.
Change-Id: I4b720405aa3c4ce8d5c0b401eefe744a85ac3a3e Signed-off-by: Andreas Sandberg <andreas.sandberg@arm.com> Reviewed-on: https://gem5-review.googlesource.com/c/16362 Reviewed-by: Giacomo Travaglini <giacomo.travaglini@arm.com> Reviewed-by: Jason Lowe-Power <jason@lowepower.com> |
13540:da30e62884ee |
10-Jan-2019 |
Andrea Mondelli <andrea.mondelli@ucf.edu> |
misc: updated shabang for python script
The default python on MacOS doesn’t have an alias to python2. The official python version supported in gem5 is Python2.7.
This patch updates the shabang according to the version required in gem5.
Change-Id: I9533c0f7858b5b3cab0ef101be1ee5cd718105b0 Reviewed-on: https://gem5-review.googlesource.com/c/15375 Maintainer: Andreas Sandberg <andreas.sandberg@arm.com> Reviewed-by: Jason Lowe-Power <jason@lowepower.com> Reviewed-by: Andreas Sandberg <andreas.sandberg@arm.com> |
13498:f6fb1bbfa39e |
17-Dec-2018 |
Nikos Nikoleris <nikos.nikoleris@arm.com> |
systemc: Allow specific functions to shadow the base class method
sc_in::bind and sc_core::sc_object::print shadow their respective base class method. This change adds the necessary declarations to inform the compiler that this is intentional.
Change-Id: I8c6bc0f05aa568630783db63d52be90f4ea4748c Signed-off-by: Nikos Nikoleris <nikos.nikoleris@arm.com> Reviewed-on: https://gem5-review.googlesource.com/c/15135 Reviewed-by: Gabe Black <gabeblack@google.com> Maintainer: Gabe Black <gabeblack@google.com> |
13464:91ff528106b4 |
26-Nov-2018 |
Gabe Black <gabeblack@google.com> |
util: Add the scons configuration cache to .gitignore for util/tlm.
Change-Id: Ife31e1bbf862d10bbe8e2c0fa36c8c168cfafa84 Reviewed-on: https://gem5-review.googlesource.com/c/14656 Reviewed-by: Matthias Jung <jungma@eit.uni-kl.de> Maintainer: Gabe Black <gabeblack@google.com> |
13463:cbfe45f18909 |
21-Nov-2018 |
Gabe Black <gabeblack@google.com> |
systemc: Update the gem5-within-systemc README to mention USE_SYSTEMC.
When linking with an external systemc host, the native gem5 systemc API should be disabled to avoid linking conflicts.
Change-Id: If7f9b3718fcdbdab5ebc9ef52e746f6bf9f2fb9c Reviewed-on: https://gem5-review.googlesource.com/c/14520 Reviewed-by: Matthias Jung <jungma@eit.uni-kl.de> Maintainer: Gabe Black <gabeblack@google.com> |
13391:f298f7d04903 |
06-Nov-2018 |
Gabe Black <gabeblack@google.com> |
systemc: Fix some paths in the tlm SCons(script|struct).
The code in util/systemc was moved into a subdirectory recently. The scons support here referred to it, and needed to be updated.
Change-Id: Ib457d9bdafb2bba5058e6ecf99b9d33b3072c5b3 Reviewed-on: https://gem5-review.googlesource.com/c/13955 Reviewed-by: Jason Lowe-Power <jason@lowepower.com> Maintainer: Jason Lowe-Power <jason@lowepower.com> |
13373:962c151f213c |
10-Oct-2018 |
Gabe Black <gabeblack@google.com> |
util: Add some examples for using systemc code within gem5.
These examples have comments inside them that explain what they do. There's also a README file which explains how to use the examples generally, and at a high level what each one does.
Change-Id: I223963dc1c190289986b2ee5705910dbcad4a4c9 Reviewed-on: https://gem5-review.googlesource.com/c/13376 Reviewed-by: Gabe Black <gabeblack@google.com> Maintainer: Gabe Black <gabeblack@google.com> |
13372:28982dc45b17 |
10-Oct-2018 |
Gabe Black <gabeblack@google.com> |
util: Move the existing systemc example into a subdirectory.
This example is for how to embed gem5 within systemc and make it use the systemc event queue. This used to be the only method of using gem5 and systemc together, but now that there are other options, it's ambiguous to have it as the only thing in the util/systemc directory.
This change moves it into a gem5_within_systemc subdirectory which clearly shows what type of integration that example corresponds with.
Change-Id: I426d68ccb618397d820bef492cbb1ff8ef4a979b Reviewed-on: https://gem5-review.googlesource.com/c/13375 Reviewed-by: Gabe Black <gabeblack@google.com> Maintainer: Gabe Black <gabeblack@google.com> |
13103:ff21402d84f2 |
18-Sep-2018 |
Kevin Brodsky <kevin.brodsky@arm.com> |
util: Do not use $(PWD) in Makefiles
644e8cdf5ee7 ("util: Move the m5ops.h file to a shared directory") added include/ to the include path for m5 Makefiles, based on $(PWD): $(PWD)/../../include.
Unfortunately, this breaks when using `make -C <path>`, as -C does not move PWD accordingly. The fix is simply to remove $(PWD), as a relative path is just fine here.
Change-Id: Ia046c29761363b6670e52c52a604c7e70a6a305a Signed-off-by: Kevin Brodsky <kevin.brodsky@arm.com> Signed-off-by: Ciro Santilli <ciro.santilli@arm.com> Reviewed-by: Ciro Santilli <ciro.santilli@arm.com> Reviewed-by: Andreas Sandberg <andreas.sandberg@arm.com> Reviewed-on: https://gem5-review.googlesource.com/12844 Reviewed-by: Jason Lowe-Power <jason@lowepower.com> Maintainer: Jason Lowe-Power <jason@lowepower.com> |
12893:3813d345cbac |
05-Feb-2018 |
Brandon Potter <brandon.potter@amd.com> |
util: add util/maint/show_changes_by_file.py tool
The script diffs an upstream branch and a feature branch to find all files which have been changed between the branches. It then searches for all the corresponding changesets and binds them to the files in the output.
The tool's output resembles the following:
/path/to/file/ filename git-hash git-hash filename git-hash
/path/to/file/ filename git-hash
Change-Id: Icd67953748f38dad984488c5445313eaa56fa202 Reviewed-on: https://gem5-review.googlesource.com/7861 Reviewed-by: Brandon Potter <Brandon.Potter@amd.com> Maintainer: Brandon Potter <Brandon.Potter@amd.com> |
12886:cba9b724a357 |
03-Aug-2017 |
Sean Wilson <spwilson2@wisc.edu> |
tests: Add test for the m5-exit instruction.
Change-Id: I92a589b267ce659b6fbcf710043436b84fcb1c63 Signed-off-by: Sean Wilson <spwilson2@wisc.edu> Reviewed-on: https://gem5-review.googlesource.com/4423 Maintainer: Jason Lowe-Power <jason@lowepower.com> Reviewed-by: Anthony Gutierrez <anthony.gutierrez@amd.com> |
12771:75508af5d8dc |
22-May-2018 |
Tuan Ta <qtt2@cornell.edu> |
tests,style: add RISC-V assembly tests
This patch adds a subset (rv64*) of RISC-V assembly tests. The original riscv-test project can be found here: https://github.com/riscv/riscv-tests. The riscv-test project is under the BSD license (https://github.com/riscv/riscv-tests/blob/master/LICENSE) and is maintained separately from gem5 project.
The tests have been slightly modified to work in gem5 SE mode:
(1) Removed a trap handler used in riscv-tests for bare-metal systems
(2) Instead of throwing an exception, the tests call the exit syscall with the exit code of - '0' if SUCCESS - Failed test case's number (non-zero) if FAILURE The exit code can be captured after a simuation completes.
In addition to original RISC-V assembly tests, this patch adds several assembly tests specifically for AMO, LR, SC and system calls. Those tests target a multi-core system.
(1) rv64uamt: multi-threaded tests for A-extension instructions
(2) rv64samt: multi-threaded tests for clone and futex system calls
This patch also makes the style checker ignore RISC-V assembly test directory. The assembly tests are maintained in an external project that does not follow the gem5 coding conventions.
Please find more details in the README file included in this patch.
Change-Id: Id1015d9a2c6c7d0341fa8b81483289e5f0bfcec0 Reviewed-on: https://gem5-review.googlesource.com/6703 Reviewed-by: Jason Lowe-Power <jason@lowepower.com> Maintainer: Jason Lowe-Power <jason@lowepower.com> |
12749:223c83ed9979 |
04-Jun-2018 |
Giacomo Travaglini <giacomo.travaglini@arm.com> |
misc: Using smart pointers for memory Requests
This patch is changing the underlying type for RequestPtr from Request* to shared_ptr<Request>. Having memory requests being managed by smart pointers will simplify the code; it will also prevent memory leakage and dangling pointers.
Change-Id: I7749af38a11ac8eb4d53d8df1252951e0890fde3 Signed-off-by: Giacomo Travaglini <giacomo.travaglini@arm.com> Reviewed-by: Andreas Sandberg <andreas.sandberg@arm.com> Reviewed-on: https://gem5-review.googlesource.com/10996 Reviewed-by: Nikos Nikoleris <nikos.nikoleris@arm.com> Maintainer: Nikos Nikoleris <nikos.nikoleris@arm.com> |
12643:359e0eff17a3 |
27-Mar-2018 |
Pau Cabre <pau.cabre@metempsy.com> |
util,arch-arm: Update gen_arm_fs_files.py to use new kernel repos
Now it is using the kernels on https://gem5.googlesource.com/arm
Change-Id: I765f2b8ee48cfd7175e5b17a65db3bf612570c68 Signed-off-by: Pau Cabre <pau.cabre@metempsy.com> Reviewed-on: https://gem5-review.googlesource.com/9481 Reviewed-by: Andreas Sandberg <andreas.sandberg@arm.com> Maintainer: Andreas Sandberg <andreas.sandberg@arm.com> |
12464:a02f2484c710 |
09-Dec-2017 |
Hanhwi Jang <jang.hanhwi@gmail.com> |
util: Implement Lua module for m5ops.
This module allows m5ops to be executed in Lua programs. To compile it (in util/m5): The following command generates Lua moduel, gem5OpLua.so.
make -f Makefile.<arch> gem5OpLua.so
To use it: First, put gem5OpLua.so in Lua library search path. Then, import the module and execute the m5op function.
Example usage, creating a checkpoint.
m5 = require("gem5OpLua") m5.do_checkpoint(0, 0)
Change-Id: Icc18a1fb6c050afeb1cf4558fbdc724fb26a90e2 Reviewed-on: https://gem5-review.googlesource.com/6541 Reviewed-by: Andreas Sandberg <andreas.sandberg@arm.com> Maintainer: Andreas Sandberg <andreas.sandberg@arm.com> |
12459:e1484770f671 |
09-Jan-2018 |
Hanhwi Jang <jang.hanhwi@gmail.com> |
util: Implement PIC version of m5ops for X86.
Using m5ops for X86 in shared objects requires PIC for the m5ops. Typically, the PIC version is used to make m5op interfaces to other languages like python and lua.
Change-Id: I2463904c13ea8b839d0386d3c743d8dad1e1e6bc Reviewed-on: https://gem5-review.googlesource.com/7261 Reviewed-by: Jason Lowe-Power <jason@lowepower.com> Maintainer: Jason Lowe-Power <jason@lowepower.com> |
12447:abcca2211632 |
17-Jan-2018 |
Andreas Sandberg <andreas.sandberg@arm.com> |
util: Add an option to specify paths in list_changes.py
Add an option to restrict change lists to changes that touch one or more subdirectories in the source tree.
Change-Id: Id4e34fe300fdc3657505e2e188c727e583bcf611 Signed-off-by: Andreas Sandberg <andreas.sandberg@arm.com> Reviewed-by: Sudhanshu Jha <sudhanshu.jha@arm.com> Reviewed-on: https://gem5-review.googlesource.com/7461 Reviewed-by: Brandon Potter <Brandon.Potter@amd.com> |
12439:c8f064aeb43a |
06-Oct-2017 |
Earl Ou <shunhsingou@google.com> |
util/m5: add Android.mk
Add Android.mk so we can build m5 tool in Android tree.
Change-Id: I7023130bd3ce5e015b8f7c41941eafb4611da8cb Reviewed-on: https://gem5-review.googlesource.com/7363 Reviewed-by: Jason Lowe-Power <jason@lowepower.com> Maintainer: Gabe Black <gabeblack@google.com> |
12424:51b6cee2e203 |
08-Dec-2017 |
Hanhwi Jang <jang.hanhwi@gmail.com> |
util: Add the missing wakecpu m5op in X86.
Change-Id: I74876a4638ad37308ecdb0ef68513a968fac8787 Reviewed-on: https://gem5-review.googlesource.com/6501 Reviewed-by: Jason Lowe-Power <jason@lowepower.com> Maintainer: Gabe Black <gabeblack@google.com> |
12334:e0ab29a34764 |
30-Nov-2017 |
Gabe Black <gabeblack@google.com> |
misc: Rename misc.(hh|cc) to logging.(hh|cc)
These files aren't a collection of miscellaneous stuff, they're the definition of the Logger interface, and a few utility macros for calling into that interface (panic, warn, etc.).
Change-Id: I84267ac3f45896a83c0ef027f8f19c5e9a5667d1 Reviewed-on: https://gem5-review.googlesource.com/6226 Reviewed-by: Brandon Potter <Brandon.Potter@amd.com> Maintainer: Gabe Black <gabeblack@google.com> |
12269:7aa513567d8b |
21-Jun-2017 |
Radhika Jagtap <radhika.jagtap@arm.com> |
util: Add script to plot DRAM low power sweep
This change adds a script to generate graphs from the stats file output by the configuration script low_power_sweep.py.
The graphs show stacked bars for time spent and energy consumed wherein each component of the stacked bar represents a DRAM power state (Idle, Refresh, Active, Active Power-down, Precharge Power-down and Self-refresh). The script generates one plot per delay value. It also generates a pdf (--pdf option) in which the graphs are laid out such that you can easily compare how the increasing delay and other swept params affect the resulting energy.
Change-Id: Id80b0947bfde27e11e5505b23a3adb30f793a43f Reviewed-by: Wendy Elsasser <wendy.elsasser@arm.com> Reviewed-on: https://gem5-review.googlesource.com/5727 Reviewed-by: Andreas Sandberg <andreas.sandberg@arm.com> Maintainer: Andreas Sandberg <andreas.sandberg@arm.com> |
12257:2fd1a9598a75 |
16-Oct-2017 |
Andreas Sandberg <andreas.sandberg@arm.com> |
util: Remove support for hg patches in patch creation script
Simplify the patch creation helper script by removing support for automatic conversion to Mercurial's patch format. We no longer use Mercurial as a primary repository, so this support is not likely to be needed again.
Change-Id: I83f6efb9ccaee9c548b33257a4d6128153750c76 Signed-off-by: Andreas Sandberg <andreas.sandberg@arm.com> Reviewed-by: Nikos Nikoleris <nikos.nikoleris@arm.com> Reviewed-by: Curtis Dunham <curtis.dunham@arm.com> Reviewed-on: https://gem5-review.googlesource.com/5162 Reviewed-by: Gabe Black <gabeblack@google.com> |
12256:a100657644ee |
18-Sep-2017 |
Andreas Sandberg <andreas.sandberg@arm.com> |
util: Optionally search entire history when listing changes
The helper script to list changes currently only looks at the changes between a branch point and two heads. This helps performance, but sometimes misclassifies changes that exist both in the upstream branch before the branch point and in a feature branch. Such changes should normally not exist, but can be the product of an incorrect rebase.
This change adds an option to the helper script to search the entire upstream repo history when determining the set of upstream changes. When this option is provided, the script lists the changes that exist upstream before the branch point and in the feature branch as "Incorrectly rebased changes".
Change-Id: I4cb72cea2152c49d0317dc43613be94a0a2de1e5 Signed-off-by: Andreas Sandberg <andreas.sandberg@arm.com> Reviewed-by: Nikos Nikoleris <nikos.nikoleris@arm.com> Reviewed-by: Curtis Dunham <curtis.dunham@arm.com> Reviewed-on: https://gem5-review.googlesource.com/5161 |
12220:0cb6ee49bde1 |
03-Oct-2017 |
Andreas Sandberg <andreas.sandberg@arm.com> |
util: Filter out the For-Upstream commit message tag
Some internal review flows, e.g. the flow used by ARM Research, uses the For-Upstream tag to indicate that a change has been approved for upstream. This tag isn't meaningful outside of the internal review system. Remove it automatically when running the maintainer script to prepare patches to be posted upstream.
Change-Id: Ie3745d0e8ad7a1bfddc5ec68ff3e6ff3f91ca8d8 Signed-off-by: Andreas Sandberg <andreas.sandberg@arm.com> Reviewed-by: Curtis Dunham <curtis.dunham@arm.com> Reviewed-on: https://gem5-review.googlesource.com/5141 Reviewed-by: Jason Lowe-Power <jason@lowepower.com> Maintainer: Jason Lowe-Power <jason@lowepower.com> |
12213:e0083524df0c |
04-Oct-2017 |
Gabe Black <gabeblack@google.com> |
misc: Use a Makefile to ensure util/packet_pb2.py is up to date.
Rather than just ensuring that packet_pb2.py is available in general, use a Makefile to ensure that it's also up to date in case packet.proto has changed.
Also, remove a check that ensures that the protobuf module is available, since python will complain if it needs it and can't find it.
Finally, remove a comment which talks about manually regenerating the packet_pb2.py module, something that hasn't been necessary for a while, even with the old version of this code.
Change-Id: I40c5c1f577e6d7ad1af9a209309a1eb92f073317 Reviewed-on: https://gem5-review.googlesource.com/5005 Reviewed-by: Andreas Sandberg <andreas.sandberg@arm.com> Maintainer: Andreas Sandberg <andreas.sandberg@arm.com> |
12212:1ae8dc8fdb97 |
04-Oct-2017 |
Gabe Black <gabeblack@google.com> |
misc: When building packet_pb2.py, don't assume a particular CWD.
Allow the script to be run from anywhere, and compute the paths relative to where the script is. The script is assumed to be in util.
Change-Id: I8500ef959f2ff8119540c956f2b27789c96de60e Reviewed-on: https://gem5-review.googlesource.com/5004 Reviewed-by: Andreas Sandberg <andreas.sandberg@arm.com> Maintainer: Andreas Sandberg <andreas.sandberg@arm.com> |
12211:149c9225b7d6 |
04-Oct-2017 |
Gabe Black <gabeblack@google.com> |
misc: Make decode_packet_trace.py print the new master ID fields.
Those fields are "repeated" which means they can appear zero times, which they will in older style traces.
Change-Id: Ib6ff4aab521332cf1405549d0d6e922c51c12f32 Reviewed-on: https://gem5-review.googlesource.com/5003 Reviewed-by: Andreas Sandberg <andreas.sandberg@arm.com> Maintainer: Andreas Sandberg <andreas.sandberg@arm.com> |
12210:4c6eb3ea3e1a |
04-Oct-2017 |
Gabe Black <gabeblack@google.com> |
misc: Small style fix in _EncodeVarint32.
Added spaces around the '|' operator.
Change-Id: I5cb82b98e7d2769605cde141f76a62a6e3c6570d Reviewed-on: https://gem5-review.googlesource.com/5002 Reviewed-by: Andreas Sandberg <andreas.sandberg@arm.com> Maintainer: Andreas Sandberg <andreas.sandberg@arm.com> |
12209:2c8d30e495ab |
04-Oct-2017 |
Gabe Black <gabeblack@google.com> |
misc: Rename the (De|En)codeVarint function _(De|En)codeVarint32.
DecodeVarint implicitly truncates its inputs to 32 bits, and that should be obvious from its name, and so not a surprise to the caller. EncodeVarint also has the suffix added for consistency. Both functions are only used in protolib.py, so add a _ to make it private (in the python sense) to the module.
Change-Id: I835295717bb51672351b963fe1227ed619836f22 Reviewed-on: https://gem5-review.googlesource.com/5001 Reviewed-by: Andreas Sandberg <andreas.sandberg@arm.com> Maintainer: Andreas Sandberg <andreas.sandberg@arm.com> |
12208:621c3f3f80f2 |
04-Oct-2017 |
Gabe Black <gabeblack@google.com> |
misc: Fix the indentation in DecodeVarint in util/protolib.py.
The DecodeVarint was, as a comment describes, lifted from google.protobuf.internal.decoder. Unfortunately, the relative indentation of some lines was changed, changing what scope they fell under. This changed the behavior of the function, breaking it for multibyte and negative values.
This change restores the correct indentation and fixes the function's behavior.
Change-Id: If645649506b0fe5a617b37a8202c9ca1c57aaf15 Reviewed-on: https://gem5-review.googlesource.com/5000 Reviewed-by: Andreas Sandberg <andreas.sandberg@arm.com> Maintainer: Andreas Sandberg <andreas.sandberg@arm.com> |
12207:a0836f380313 |
28-Sep-2017 |
Matthias Jung <jungma@eit.uni-kl.de> |
tlm: Elastic Trace Example with L2 Cache Added
The SystemC TLM examples already include an example setup for elastic traces. However, in the provided examples the L2 cache is omitted. This patch provides an additionall example, which also includes an L2 cache on the gem5 side.
Change-Id: I49e9fa074b60007694abff37663f0400caf72099 Reviewed-on: https://gem5-review.googlesource.com/4900 Reviewed-by: Jason Lowe-Power <jason@lowepower.com> Reviewed-by: Christian Menard <christian.menard@tu-dresden.de> Maintainer: Jason Lowe-Power <jason@lowepower.com> |
12198:976c5b5db147 |
15-Sep-2017 |
Gabe Black <gabeblack@google.com> |
misc: Make the m5 utilities writefile command accept a host path.
When the writefile command is given one command line argument, it's treated as the name of the file in the simulation and on the host. When there are two arguments, the first is the filename in the simulation, and the second is the name on the host.
Change-Id: I402925a9ff89665bee9910fb18b7f8b06b8f7d35 Reviewed-on: https://gem5-review.googlesource.com/4850 Reviewed-by: Jason Lowe-Power <jason@lowepower.com> Maintainer: Gabe Black <gabeblack@google.com> |
12183:a097b7c2d9b6 |
17-Aug-2017 |
Matthias Jung <jungma@eit.uni-kl.de> |
tlm: Don't set SystemC time resolution
Some simulators already set the time resolution of SystemC. By coupling gem5 by means of SystemC with an other tool this can lead to problems: When the resolution is set twice the simulation will not work. Therefore, the line is changed to an assertion that checks if the time resolution of the SystemC simulation is set to gem5's value of 1ps.
Change-Id: I8aafab9dd593eb4697a3c7f69ce181fd9cdd05c4 Reviewed-on: https://gem5-review.googlesource.com/4520 Reviewed-by: Paul Rosenfeld <prosenfeld@micron.com> Reviewed-by: Jason Lowe-Power <jason@lowepower.com> Maintainer: Jason Lowe-Power <jason@lowepower.com> |
12162:94167ea67e6f |
01-Aug-2017 |
Andreas Sandberg <andreas.sandberg@arm.com> |
style: Add shared gem5 headers to the style checker
Teach the style checker about common headers living in gem5/. These should be included after any global library headers (e.g., C headers or STL headers), but before the normal gem5 headers.
Change-Id: I322f841420e361c16314be8fa4cbd1e86d2bfa9f Signed-off-by: Andreas Sandberg <andreas.sandberg@arm.com> Reviewed-on: https://gem5-review.googlesource.com/4300 Reviewed-by: Jason Lowe-Power <jason@lowepower.com> |
12161:af903f47f028 |
27-Jul-2017 |
Andreas Sandberg <andreas.sandberg@arm.com> |
util: Move m5op.h to the shared include directory
The header file with C declarations for m5ops is sometimes needed by code outside of the util/m5 directory. Move this file to the shared include directory and factor out flags to a generic asm header. Note that applications that need to call m5ops still need to link with libm5.a or implement their own trampolines.
Change-Id: I36a3f459ed71593e38b869dc2b1302c810f92276 Signed-off-by: Andreas Sandberg <andreas.sandberg@arm.com> Reviewed-by: Jose Marinho <jose.marinho@arm.com> Reviewed-on: https://gem5-review.googlesource.com/4265 Reviewed-by: Gabe Black <gabeblack@google.com> Reviewed-by: Jason Lowe-Power <jason@lowepower.com> |
12160:c282cb504275 |
27-Jul-2017 |
Andreas Sandberg <andreas.sandberg@arm.com> |
util, m5: Use consistent naming for m5op C symbols
Rename m5op C symbols to be prefixed all lower case, separated by underscore, and prefixed by m5. This avoids potential name clashes for short names such as arm.
Change-Id: Ic42f94d8a722661ef96c151d627e31eeb2e51490 Signed-off-by: Andreas Sandberg <andreas.sandberg@arm.com> Reviewed-by: Jose Marinho <jose.marinho@arm.com> Reviewed-on: https://gem5-review.googlesource.com/4264 Reviewed-by: Gabe Black <gabeblack@google.com> Reviewed-by: Jason Lowe-Power <jason@lowepower.com> |
12157:c27b548bad70 |
27-Jul-2017 |
Andreas Sandberg <andreas.sandberg@arm.com> |
util: Move the m5ops.h file to a shared directory
The header file m5ops.h contains a list of constants that should be shared between the simulator and utilities. Move this header file to a new top-level directory for shared files and rename constants to make them suitable for inclusion in the main simulator.
The structure of the shared include directory is as follows:
include/gem5: Files that can be included from C code. include/gem5/asm: Files that can be included from assembly code. asm/generic/: Files that aren't guest ISA specific asm/${isa}/: Files that are guest ISA specific
Change-Id: I1aa511057bcaa80cc2d566109ff26581558c4a41 Signed-off-by: Andreas Sandberg <andreas.sandberg@arm.com> Reviewed-by: Jose Marinho <jose.marinho@arm.com> Reviewed-on: https://gem5-review.googlesource.com/4261 Reviewed-by: Jason Lowe-Power <jason@lowepower.com> |
12123:b98591aca0a9 |
03-Jul-2017 |
Pau Cabre <pau.cabre@metempsy.com> |
util,arch-arm: Added python script to generate ARM FS binaries
This python script builds the bootloaders, kernels and DTBs for the VExpress_GEM5_V1 (aarch32/aarch64), VExpress_EMM and VExpress_EMM64 platforms (it checkouts some linux kernel repositories when needed).
This is the result of this e-mail thread in gem5-dev mailing list: http://www.mail-archive.com/gem5-dev@gem5.org/msg22406.html
Change-Id: Ida8f9b974f7188f48be8f84f14828a1973d6d256 Signed-off-by: Pau Cabre <pau.cabre@metempsy.com> Reviewed-on: https://gem5-review.googlesource.com/3945 Reviewed-by: Jason Lowe-Power <jason@lowepower.com> Reviewed-by: Andreas Sandberg <andreas.sandberg@arm.com> Maintainer: Andreas Sandberg <andreas.sandberg@arm.com> |
12053:014d6270849b |
01-Jun-2017 |
Gabe Black <gabeblack@google.com> |
misc: Fix building the m5tap utility.
Use printf instead of cprintf to avoid having to have .o files from gem5. Stop disabling optimization. Placate the style checker by rearranging the header include order. Include some missing standard headers. Switch from the deprecated -I- gcc option to using -iquote. Make the "program" variable a const char *. When checking the return value of getopt, don't check against the char c which may mask the -1 return value. Instead, store the return value in an int, and then later cast it to a char when it's actually consumed.
Change-Id: Ibec51927d0cdbd98db8e53081be2c4931e20333c Reviewed-on: https://gem5-review.googlesource.com/3600 Reviewed-by: Nathan Binkert <nate@binkert.org> Maintainer: Nathan Binkert <nate@binkert.org> |
12048:a280e9bc358d |
23-May-2017 |
Christian Menard <christian.menard@tu-dresden.de> |
misc: check address range in the SystemC example
Using a wrong offset or memory size may lead to segmentation faults. This patch adds an address range check and produces an error message.
Change-Id: I79a72c05879266daf61a83367fe4ae386d1958a4 Reviewed-on: https://gem5-review.googlesource.com/3482 Maintainer: Jason Lowe-Power <jason@lowepower.com> Reviewed-by: Jason Lowe-Power <jason@lowepower.com> Reviewed-by: Matthias Jung <jungma@eit.uni-kl.de> |
12047:8b269268312c |
22-May-2017 |
Christian Menard <christian.menard@tu-dresden.de> |
misc: Reorder sources in util/tlm and rewrite build scripts
* Use one SConstruct to build everything instead of one SConstruct for each example. * Introduce SConscripts for sub-directories. * Build in 'build' instead of the source tree. * Build and link to SystemC from the ext/systemc directory. This ensures that SystemC does not need to be installed on the host and avoids possible issues caused by an incompatible SystemC build. * Update the README and add some minor fixes
Change-Id: I641ed94f542626864fb7af499ad1be8fd4ad929f Reviewed-on: https://gem5-review.googlesource.com/3480 Reviewed-by: Matthias Jung <jungma@eit.uni-kl.de> Reviewed-by: Jason Lowe-Power <jason@lowepower.com> Maintainer: Jason Lowe-Power <jason@lowepower.com> |
12043:55cd1129e41b |
23-Feb-2017 |
Gedare Bloom <gedare@rtems.org> |
util: generate fully qualified paths for cscope
Change-Id: I318c185b117b9608110544526fbaaa3fdcdeb8bc Signed-off-by: Gedare Bloom <gedare@rtems.org> Reviewed-on: https://gem5-review.googlesource.com/3260 Reviewed-by: Jason Lowe-Power <jason@lowepower.com> Maintainer: Jason Lowe-Power <jason@lowepower.com> |
12023:272819f230c0 |
15-May-2017 |
Brandon Potter <brandon.potter@amd.com> |
style: fix line lengths and include ordering
The style checker complains about line length and ordering for these files. This fix should make these two files kosher.
Change-Id: I822a0518a98d9e379a543d2017e90c4e9666a58d Reviewed-on: https://gem5-review.googlesource.com/3380 Reviewed-by: Jason Lowe-Power <jason@lowepower.com> Maintainer: Brandon Potter <Brandon.Potter@amd.com> |
12009:3345827969f5 |
02-May-2017 |
Andreas Sandberg <andreas.sandberg@arm.com> |
style: Treat PyBind headers as Python headers
Some PyBind11 headers need to include Python.h. This means that we need to include PyBind11 headers before any standard library headers. Enforce this by applying the Python.hh rules for anything in pybind11/.
Change-Id: Id175a4f613960a17f84f98b81bfd02806e905d5a Signed-off-by: Andreas Sandberg <andreas.sandberg@arm.com> Reviewed-by: Nikos Nikoleris <nikos.nikoleris@arm.com> Reviewed-by: Curtis Dunham <curtis.dunham@arm.com> Reviewed-on: https://gem5-review.googlesource.com/3120 Reviewed-by: Jason Lowe-Power <jason@lowepower.com> Reviewed-by: Tony Gutierrez <anthony.gutierrez@amd.com> |
12007:a881be42f745 |
02-Dec-2016 |
Andreas Sandberg <andreas.sandberg@arm.com> |
util, arm: Support mmapped m5ops on aarch64
Add support for memory-mapped m5ops in the aarch64 version of the m5 utility. To enable support for memory-mapped m5ops, compile the tool with the define M5OP_ADDR set to the base of the m5op PA range.
Change-Id: I13e21e48536b9849bf4081411b66b2f350f7a8ac Signed-off-by: Andreas Sandberg <andreas.sandberg@arm.com> Reviewed-by: Curtis Dunham <curtis.dunham@arm.com> Reviewed-by: Nikos Nikoleris <nikos.nikoleris@arm.com> Reviewed-on: https://gem5-review.googlesource.com/2966 |
12003:bbe320b2f604 |
26-Apr-2017 |
Andreas Sandberg <andreas.sandberg@arm.com> |
util: Correctly handle short writes in m5 (read|exec)file
The m5 tool has subcommands that writes a file to the simulated file system. The implementation of this command currently doesn't check the return value from write, which leads to compiler warnings and potentially incorrect behavior. Add the necessary checks.
Change-Id: If558534d3245aa24cf15edf06bd0af4c6ba3908c Signed-off-by: Andreas Sandberg <andreas.sandberg@arm.com> Reviewed-by: Nikos Nikoleris <nikos.nikoleris@arm.com> Reviewed-on: https://gem5-review.googlesource.com/2962 Reviewed-by: Jason Lowe-Power <jason@lowepower.com> Reviewed-by: Gabe Black <gabeblack@google.com> |
12002:3f51adda9470 |
08-May-2017 |
Andreas Sandberg <andreas.sandberg@arm.com> |
util: Add the m5_loadsymbol pseudo op to the m5 tool
Change-Id: Ib8bf4eac77170db8b2bf44796fd9d46b02217d03 Signed-off-by: Andreas Sandberg <andreas.sandberg@arm.com> Reviewed-on: https://gem5-review.googlesource.com/3122 Reviewed-by: Jason Lowe-Power <jason@lowepower.com> Reviewed-by: Gabe Black <gabeblack@google.com> |
12001:a1fd8e5dc7a6 |
26-Apr-2017 |
Andreas Sandberg <andreas.sandberg@arm.com> |
util: Fix incorrect use of m5_loadsymbol
It seems like the m5 utility incorrectly called m5_loadsymbol instead of m5_addsymbol. Judging by the signature of the loadsymbol command, the expected behavior is to add a new symbol to gem5's symbol table. This is behavior is implemented by m5_addsymbol.
Change-Id: I83b61c48d6f8d7b1e8b57d884dfca00481c83c3a Signed-off-by: Andreas Sandberg <andreas.sandberg@arm.com> Reviewed-by: Curtis Dunham <curtis.dunham@arm.com> Reviewed-on: https://gem5-review.googlesource.com/2961 Reviewed-by: Gabe Black <gabeblack@google.com> |
12000:78958c36af12 |
02-May-2017 |
Paul Rosenfeld <prosenfeld@micron.com> |
misc: fix build failure in cxx_config example
Fix a missing header in the cxx_config example which is used as a simple example of using libgem5.so without python.
Change-Id: I758bfe42ba735ce0c7eaedd49b94a130e3bd21e3 Reviewed-on: https://gem5-review.googlesource.com/3000 Reviewed-by: Andreas Sandberg <andreas.sandberg@arm.com> Reviewed-by: Jason Lowe-Power <jason@lowepower.com> Reviewed-by: Curtis Dunham <curtis.dunham@arm.com> Reviewed-by: Matthias Jung <jungma@eit.uni-kl.de> Maintainer: Andreas Sandberg <andreas.sandberg@arm.com> |
11998:a54cbbb635b9 |
26-Apr-2017 |
Andreas Sandberg <andreas.sandberg@arm.com> |
util: Fix incorrect return type in m5 writefile
Change-Id: Ic24a1c3c1488e970ed27bb6b99262d201f535384 Signed-off-by: Andreas Sandberg <andreas.sandberg@arm.com> Reviewed-by: Curtis Dunham <curtis.dunham@arm.com> Reviewed-on: https://gem5-review.googlesource.com/2960 Reviewed-by: Gabe Black <gabeblack@google.com> |
11971:9573d7d7811a |
23-Mar-2017 |
Éder F. Zulian <zulian@eit.uni-kl.de> |
misc: minor fix for the gem5-SystemC/TLM coupling.
This patch has a minor fix for the coupling between gem5 and SystemC-TLM.
It also fixes some typos in the related documentation.
Change-Id: I894568729b8ebdacc5b81c9f46e8f9d137da210f Reviewed-on: https://gem5-review.googlesource.com/2480 Reviewed-by: Jason Lowe-Power <jason@lowepower.com> Maintainer: Jason Lowe-Power <jason@lowepower.com> |
11941:764760d6c535 |
31-Jan-2017 |
Curtis Dunham <Curtis.Dunham@arm.com> |
arm, dev: refactor GIC Pl390 GICD_ITARGETSRn handling
The aforementioned registers (Interrupt Processor Targets Registers) are banked per-CPU, but are read-only. This patch eliminates the per-CPU storage of these values that are simply computed.
Change-Id: I52cafc2f58e87dd54239a71326c01f4923544689 Reviewed-by: Andreas Sandberg <andreas.sandberg@arm.com> Reviewed-on: https://gem5-review.googlesource.com/2442 Maintainer: Andreas Sandberg <andreas.sandberg@arm.com> Reviewed-by: Weiping Liao <weipingliao@google.com> |
11922:0b284e4322fc |
07-Mar-2017 |
Andreas Sandberg <andreas.sandberg@arm.com> |
util: Add a tool to list outgoing/incoming changes
Add a small Python script that uses Gerrit's Change-Id: tags to list incoming and outgoing changes.
Change-Id: Iea1757b2d64a57a4c7b4e47718cfcaa725a99615 Signed-off-by: Andreas Sandberg <andreas.sandberg@arm.com> Reviewed-by: Sascha Bischoff <sascha.bischoff@arm.com> Reviewed-on: https://gem5-review.googlesource.com/2329 Reviewed-by: Jason Lowe-Power <jason@lowepower.com> Maintainer: Jason Lowe-Power <jason@lowepower.com> |
11835:8ab6738c5f66 |
14-Feb-2017 |
Curtis Dunham <Curtis.Dunham@arm.com> |
sim: allow forward dependencies in checkpoint upgraders
The notion of forward dependencies is just expressing the same dependency but at the other end of the dependency edge, i.e. at the dependee rather than the depender. As there is no more 'power' here, it's strictly a convenience feature for handling dependencies with tags that are not in the upstream repository.
Change-Id: Ic7c68de6aff4094aaa12de62cdf690a5dc65ccb5 Reviewed-by: Andreas Sandberg <andreas.sandberg@arm.com> |
11834:29f0d1d70282 |
14-Feb-2017 |
Curtis Dunham <Curtis.Dunham@arm.com> |
sim: add support for checkpoint downgrading
This commit supports the use case of transitioning tags and their associated checkpoint rewrites out of use for whatever reason. Just replace the upgrader() method with a downgrader() method that performs the appropriate inverse operation.
The tag name is still used, but only in this negative, 'zombie' state, as it will be removed from the tags in the checkpoint and gem5 binary.
Change-Id: If9d26cccfe8449e026762b1a72f0c2ae5a9cf2d7 Reviewed-by: Andreas Sandberg <andreas.sandberg@arm.com> |
11832:4d1f9823013a |
13-Feb-2017 |
Christian Menard <Christian.Menard@tu-dresden.de> |
misc: Clean up and complete the gem5<->SystemC-TLM bridge [6/10]
The current TLM bridge only provides a Slave Port that allows the gem5 world to send request to the SystemC world. This patch series refractors and cleans up the existing code, and adds a Master Port that allows the SystemC world to send requests to the gem5 world.
This patch: * Update the README |
11828:36b064696175 |
10-Feb-2017 |
Jason Lowe-Power <jason@lowepower.com> |
misc: Update #!env calls for python to explicit version
In some newer Linux distributions, env python default to Python 3.0. This patch explicitly uses "python2" instead of just "python" for all scripts that use #!
Reported-by: Sanchayan Maity <maitysanchayan@gmail.com> Signed-off-by: Jason Lowe-Power <jason@lowepower.com> |
11826:b20a1364e019 |
09-Feb-2017 |
Christian Menard <Christian.Menard@tu-dresden.de> |
misc: Clean up and complete the gem5<->SystemC-TLM bridge [10/10]
The current TLM bridge only provides a Slave Port that allows the gem5 world to send request to the SystemC world. This patch series refractors and cleans up the existing code, and adds a Master Port that allows the SystemC world to send requests to the gem5 world.
This patch: * Add callbacks for the Gem5SimControl that are called at before and * after simulate()
Reviewed at http://reviews.gem5.org/r/3799/
Signed-off-by: Jason Lowe-Power <jason@lowepower.com> |
11825:2a5b4e334f7d |
09-Feb-2017 |
Christian Menard <Christian.Menard@tu-dresden.de> |
misc: Clean up and complete the gem5<->SystemC-TLM bridge [9/10]
The current TLM bridge only provides a Slave Port that allows the gem5 world to send request to the SystemC world. This patch series refractors and cleans up the existing code, and adds a Master Port that allows the SystemC world to send requests to the gem5 world.
This patch: * Pay for the header delay that the gem5 XBar annotates to packets.
Reviewed at http://reviews.gem5.org/r/3798/
Signed-off-by: Jason Lowe-Power <jason@lowepower.com> |
11824:9487cdff1bc3 |
09-Feb-2017 |
Christian Menard <Christian.Menard@tu-dresden.de> |
misc: Clean up and complete the gem5<->SystemC-TLM bridge [8/10]
The current TLM bridge only provides a Slave Port that allows the gem5 world to send request to the SystemC world. This patch series refractors and cleans up the existing code, and adds a Master Port that allows the SystemC world to send requests to the gem5 world.
This patch: * bugfix: The BEGIN_RESP also needs to be handled when END_REQ was * skipped and '&trans == blockingRequest && phase == tlm::BEGIN_RESP' evaluates to true.
Reviewed at http://reviews.gem5.org/r/3797/
Signed-off-by: Jason Lowe-Power <jason@lowepower.com> |
11823:77ab27b06d62 |
09-Feb-2017 |
Christian Menard <Christian.Menard@tu-dresden.de> |
misc: Clean up and complete the gem5<->SystemC-TLM bridge [7/10]
The current TLM bridge only provides a Slave Port that allows the gem5 world to send request to the SystemC world. This patch series refractors and cleans up the existing code, and adds a Master Port that allows the SystemC world to send requests to the gem5 world.
This patch: * Implement 'pipe through' for gem5 Packets (see explanation below)
Basically, this patch ensures that all transactions that originated in the gem5 world are converted back to the original packet when entering the gem5 world. So far, this only worked for packets that are responded to by a SyctemC component (e.g. when a gem5 CPU sends a request to a SystemC memory). By implementing the 'pipe through' this patch ensures, that packets that are responded to by a gem5 component (e.g. when a gem5 CPU sends a request to a gem5 memory via a SystemC interconnect) are handled properly.
Reviewed at http://reviews.gem5.org/r/3796/
Signed-off-by: Jason Lowe-Power <jason@lowepower.com> |
11822:9018cadf6c87 |
09-Feb-2017 |
Christian Menard <Christian.Menard@tu-dresden.de> |
misc: Clean up and complete the gem5<->SystemC-TLM bridge [5/10]
Changeset 11798:3a490c57058d --------------------------- misc: Clean up and complete the gem5<->SystemC-TLM bridge [5/10]
The current TLM bridge only provides a Slave Port that allows the gem5 world to send request to the SystemC world. This patch series refractors and cleans up the existing code, and adds a Master Port that allows the SystemC world to send requests to the gem5 world.
This patch: * Introduce transactor modules that represent the gem5 ports in the * SystemC world. * Update the SimControl module and let it keep track of the gem5 ports.
Reviewed at http://reviews.gem5.org/r/3775/
Signed-off-by: Jason Lowe-Power <jason@lowepower.com> |
11821:39b0a51c9e76 |
09-Feb-2017 |
Christian Menard <Christian.Menard@tu-dresden.de> |
misc: Clean up and complete the gem5<->SystemC-TLM bridge [4/10]
The current TLM bridge only provides a Slave Port that allows the gem5 world to send request to the SystemC world. This patch series refractors and cleans up the existing code, and adds a Master Port that allows the SystemC world to send requests to the gem5 world.
This patch: * Move common code of the example to a common directory. Move the cli * parsing from the SimControl module to a separate example object. Add * comments describing the Gem5SimControl module.
Testing Done: Examples compile and run.
Reviewed at http://reviews.gem5.org/r/3695/
Signed-off-by: Jason Lowe-Power <jason@lowepower.com> |
11820:3de6ee321c3e |
09-Feb-2017 |
Christian Menard <Christian.Menard@tu-dresden.de> |
misc: Clean up and complete the gem5<->SystemC-TLM bridge [3/10]
The current TLM bridge only provides a Slave Port that allows the gem5 world to send request to the SystemC world. This patch series refractors and cleans up the existing code, and adds a Master Port that allows the SystemC world to send requests to the gem5 world.
This patch: * Simplify the Slave Port by using a simple_initiator_socket.
Testing Done: Example applications are still running.
Reviewed at http://reviews.gem5.org/r/3686/
Signed-off-by: Jason Lowe-Power <jason@lowepower.com> |
11819:bd67524751ee |
09-Feb-2017 |
Christian Menard <Christian.Menard@tu-dresden.de> |
misc: Clean up and complete the gem5<->SystemC-TLM bridge [2/10]
The current TLM bridge only provides a Slave Port that allows the gem5 world to send request to the SystemC world. This patch series refractors and cleans up the existing code, and adds a Master Port that allows the SystemC world to send requests to the gem5 world.
This patch: * Add the Master Port. Add an example application that isslustrates its * use.
Testing Done: A simple example application consisting of a TLM traffic generator and a gem5 memory is part of the patch.
Reviewed at http://reviews.gem5.org/r/3528/
Signed-off-by: Jason Lowe-Power <jason@lowepower.com> |
11818:f12963cb9dc2 |
09-Feb-2017 |
Christian Menard <Christian.Menard@tu-dresden.de> |
misc: Clean up and complete the gem5<->SystemC-TLM bridge [1/10]
The current TLM bridge only provides a Slave Port that allows the gem5 world to send request to the SystemC world. This patch series refractors and cleans up the existing code, and adds a Master Port that allows the SystemC world to send requests to the gem5 world.
This patch: * Restructure the existing sources in preparation of the addition of the * new Master Port. * Refractor names to allow for distinction of the slave and master port. * Replace the Makefile by a SConstruct.
Testing Done: The examples provided in util/tlm (now util/tlm/examples/slave_port) still compile and run error free.
Reviewed at http://reviews.gem5.org/r/3527/
Signed-off-by: Jason Lowe-Power <jason@lowepower.com> |
11816:2191b87e3b47 |
09-Feb-2017 |
Christian Menard <Christian.Menard@tu-dresden.de> |
misc: fix includes in util/systemc
This fixes compilation errors with clang on OS X.
Reviewed at http://reviews.gem5.org/r/3807/
Signed-off-by: Jason Lowe-Power <jason@lowepower.com> |
11814:c6a6fed4bf6c |
09-Feb-2017 |
Christian Menard <Christian.Menard@tu-dresden.de> |
misc: Implement the Base SystemC Module as an sc_channel.
Implementing the Module as an sc_channel allows derived classes to provide SystemC interfaces. Other SystemC modules can connect to these interfaces. This meachanism can be used to control gem5 and acces gem5 components from within arbitrary SystemC moduels. Since sc_channel is derived from sc_module, this patch does not break compatibility with existing code.
Signed-off-by: Jason Lowe-Power <jason@lowepower.com> |
11808:f254d8a17da9 |
07-Feb-2017 |
Andreas Sandberg <andreas.sandberg@arm.com> |
style: Force Python.h to be included before main header
Python's header files set various compiler macros (e.g., _XOPEN_SOURCE) unconditionally. This triggers preprocessor warnings that end up being treated as errors. The Python integration manual [1] strongly recommends that Python.h is included before any system header. The style guide used to mandate that Python.h is included first in any file that needs it. This requirement was changed to always include a source file's main header first, which ended up triggering these errors.
This change updates the style checker to always include Python.h before the main header file.
[1] https://docs.python.org/2/extending/extending.html
Change-Id: Id6a4f7fc64a336a8fd26691a0ca682abeb1d1579 Signed-off-by: Andreas Sandberg <andreas.sandberg@arm.com> Reviewed-by: Nikos Nikoleris <nikos.nikoleris@arm.com> Reviewed-by: Jason Lowe-Power <jason@lowepower.com> Reviewed-by: Pierre-Yves PĂ©neau <pierre-yves.peneau@lirmm.fr> |
11805:8702d8dc2def |
27-Jan-2017 |
Paul Rosenfeld <prosenfeld@micon.com> |
misc: Add support for switching multiple cores in SystemC
This patch adds a '-n' flag to the gem5 SystemC driver which allows multiple CPUs to be switched out to a new CPU. Primarily this involves appending CPU numbers to the objects searched for in the config manager if there are multiple CPUs in the system.
Note that an equivalent change should be made to the util/cxx_config driver, but I wanted to get input on this first before making the same change over there
Signed-off-by: Jason Lowe-Power <jason@lowepower.com> |
11792:494ab5474716 |
09-Jan-2017 |
Matthias Jung <jungma@eit.uni-kl.de> |
misc: fixes deprecated sc_time function for SystemC 2.3.1
The non-standard sc_time constructors
- sc_time( uint64, bool scale ) - sc_time( double, bool scale )
have been deprecated in SystemC 2.3.1 and a warning is issued when being used. Insted the new 'sc_time::from_value' function is used to omit the warning message.
Signed-off-by: Jason Lowe-Power <jason@lowepower.com> |
11791:ac5237fa4230 |
09-Jan-2017 |
Matthias Jung <jungma@eit.uni-kl.de> |
misc: Documentation Update
Updates for READMEs of /util/cxx_config, /util/systemc, /util/tlm. Some minor corrections, mostly with respect to MAC/OSX
Signed-off-by: Jason Lowe-Power <jason@lowepower.com> |
11786:6639b188ac11 |
03-Jan-2017 |
Andreas Sandberg <andreas.sandberg@arm.com> |
util: Add maintainer tools to create upstream patches
This changeset adds a maintainer script, create_patches.sh, that can be used to prepare for upstream from a git repository. The script can be used to generate patches in Mercurial or git format. The commit messages in the exported patches are all filtered, see upstream_msg_filter.sed, to ensure that irrelevant meta data isn't included in the upstream commit.
Kudos to Curtis Dunham and Nikos Nikoleris for reviews and usability enhancements for earlier versions of this patch.
Change-Id: Ia4cd089a32834b5e046ef58c0a173ca285b77bca Signed-off-by: Andreas Sandberg <andreas.sandberg@arm.com> Reviewed-by: Curtis Dunham <curtis.dunham@arm.com> Reviewed-by: Nikos Nikoleris <nikos.nikoleris@arm.com> Reviewed-by: Jason Lowe-Power <jason@lowepower.com> |
11776:ed89cb178ecd |
19-Dec-2016 |
Curtis Dunham <Curtis.Dunham@arm.com> |
dist, dev: fix etherswitch upgrade script
The aforementioned upgrader in [1] assumes every option in [system] has a delimiting '.', and also seems to do its rewriting work a bit too unconditionally. Most checkpoints in the wild don't have this device, in which case this script should be a safe no-op.
[1] 2aa4d7b dist, dev: Fixed the packet ordering in etherswitch
Change-Id: Icfd0350985109df1628eb9ab864cda42c54060a8 Reviewed-by: Gabor Dozsa <gabor.dozsa@arm.com> |
11768:5b80960dcf08 |
19-Dec-2016 |
Curtis Dunham <Curtis.Dunham@arm.com> |
arm: update AArch{64,32} register mappings
Change-Id: Idaaaeb3f7b1a0bdbf18d8e2d46686c78bb411317 Reviewed-by: Andreas Sandberg <andreas.sandberg@arm.com> |
11730:08ab68477ea0 |
30-Nov-2016 |
Alec Roelke <ar4jc@virginia.edu> |
riscv: [Patch 8/5] Added some regression tests to RISC-V
This patch is the eighth patch in a series adding RISC-V to gem5, and third of the bonus patches to the original series of five. It adds some regression tests to RISC-V.
Regression tests included: - se/00.hello - se/02.insttest (split into several binaries which are not included due to large size)
The tests added to 00.insttest will need to be build manually; to facilitate this, a Makefile is included. The required toolchain and compiler (riscv64-unknown-elf-gcc) can be built from the riscv-tools GitHub repository at https://github.com/riscv/riscv-tools.
Note that because EBREAK only makes sense when gdb is running or while in FS mode, it is not included in the linux-rv64i insttest. ERET is not included because it does not make sense in SE mode and, in fact, causes a panic by design.
Note also that not every system call is tested in linux-rv64i; of the ones defined in linux/process.hh, some have been given numbers but not definitions for the toolchain, or are merely stubs that always return 0. Of the ones that do work properly, only a subset are tested due to similar functionality.
Signed-off by: Alec Roelke
Signed-off by: Jason Lowe-Power <jason@lowepower.com> |
11717:27622f94fdcc |
25-Nov-2016 |
Andreas Sandberg <andreas.sandberg@arm.com> |
style: Add options to select checkers and apply fixes
Add an option, --checker/-c, to style.py that selects individual style checkers to apply. When this option isn't specified, the script defaults to all available style checkers. The option may be specified multiple times to run multiple style checkers.
The option, --fix/-f, can be specified to automatically fix style violations.
Change-Id: Id7597fba6b65cecfa17a88b1c87c8a4c8315af59 Signed-off-by: Andreas Sandberg <andreas.sandberg@arm.com> Reviewed-by: Andreas Hansson <andreas.hansson@arm.com> |
11716:95a34c2188f2 |
25-Nov-2016 |
Rekai Gonzalez Alberquilla <rekai.gonzalezalberquilla@arm.com> |
util: git pre-commit hook to check staged files
This patch updates the git-pre-commit hook to check the files as they will be after the commit, instead of as they are currently, this way we prevent the undesired situation: - unstylish modification of a file - stage said file for commit - try to commit and fail due to style - fix style, forgetting staging changes - try to commit and fail, as although the changes staged are not styly, the current content of the file is.
Change-Id: I5cc3f783375d9e4162e310e176103ebbf0a59023 Reviewed-by: Andreas Sandberg <andreas.sandberg@arm.com> [andreas.sandberg@arm.com: Rebased ontop of latest gem5] |
11706:7339a92fffb5 |
17-Nov-2016 |
Andreas Hansson <andreas.hansson@arm.com> |
tests, ruby: Move rubytests from ALPHA (linux) to NULL (none)
This patch avoids compiling ALPHA six times as part of running 'util/regress', and instead relis on NULL with different protocols to run the rubytest. All we need is the memory system, so there is really no need to compile the ISA over and over again.
The one downside is the removal of running 'hello' for the variuos ALPHA and protocol combinations, but if this is a concern we should rather beef up the synthetic tests for the variuos protocols. |
11703:08b78e0a3717 |
26-Oct-2016 |
Michael LeBeane <michael.lebeane@amd.com> |
dev: Add m5 op to toggle synchronization for dist-gem5. This patch adds the ability for an application to request dist-gem5 to begin/ end synchronization using an m5 op. When toggling on sync, all nodes agree on the next sync point based on the maximum of all nodes' ticks. CPUs are suspended until the sync point to avoid sending network messages until sync has been enabled. Toggling off sync acts like a global execution barrier, where all CPUs are disabled until every node reaches the toggle off point. This avoids tricky situations such as one node hitting a toggle off followed by a toggle on before the other nodes hit the first toggle off. |
11686:4a86763c0b30 |
15-Oct-2016 |
Shawn Rosti <shawn.rosti@gmail.com> |
arm: Fix for ARM's Streamline conversion script
tracked down issue with ARM's version of gem5 using the "cluster" name. The public/github version of ARM Gem5 does not use the "cluster" naming mechanism.
Signed-off-by: Dam Sunwoo <dam.sunwoo@arm.com> Signed-off-by: Jason Lowe-Power <jason@lowepower.com> |
11592:92509f1b24f7 |
03-Aug-2016 |
Jason Lowe-Power <powerjg@cs.wisc.edu> |
style: Make the style fixers safe
Adds a wrapper to the fix functions of the verifiers. This wrapper first copies the original file to a backup file, then performs the fix. If an error occurs, the backup file is used to restore the original file.
Also fixed a line-length error in verifiers.py |
11590:1a70f8188580 |
02-Aug-2016 |
Curtis Dunham <Curtis.Dunham@arm.com> |
arm: bank GIC registers per CPU
Updated according to GICv2 documentation.
Change-Id: I5d926d1abf665eecc43ff0f7d6e561e1ee1c390a Reviewed-by: Andreas Sandberg <andreas.sandberg@arm.com> |
11567:560d7fbbddd1 |
21-Jul-2016 |
Mitch Hayenga <mitch.hayenga@arm.com> |
cpu: Add SMT support to MinorCPU
This patch adds SMT support to the MinorCPU. Currently RoundRobin or Random thread scheduling are supported.
Change-Id: I91faf39ff881af5918cca05051829fc6261f20e3 |
11554:adafd259839e |
01-Jul-2016 |
Matthias Jung <jungma@eit.uni-kl.de> |
misc: SystemC Elastic Trace Player Example.
This patch adds an example configuration for elastic trace playing into the SystemC world, similar to the already existing traffic generator example in /util/tlm.
Committed by Jason Lowe-Power <jason@lowepower.com> |
11553:602835f8dc9d |
01-Jul-2016 |
Christian Menard <Christian.Menard@tu-dresden.de> |
misc: fix a compile error due to incompability with SystemC 2.3.1
This patch fixes an ambigous call compile error
Committed by Jason Lowe-Power <jason@lowepower.com> |
11550:d2e815b98287 |
01-Jul-2016 |
Abdul Mutaal Ahmad <abdul.mutaal@gmail.com> |
misc: Separate stats file for SystemC-gem5 co-simulation
In previous versions of systemC-gem5 coupling statistics were not updated for the systemc-gem5 simulation. systemC-gem5 simulation only need the previously built config.ini file and normal gem5 simulation has to be run once to generate config.ini file. Thus stats.txt inside the m5out folder is redundant for systemC-gem5 simulation. A new stats file is now generated with the all the statistics for systemC-gem5 simulation. This will also resolve the stats issue in tlm-sysmtemC simulation.
Committed by Jason Lowe-Power <jason@lowepower.com> |
11549:4e5e087419df |
01-Jul-2016 |
Andreas Sandberg <andreas.sandberg@arm.com> |
style: Fix incorrect references style verifiers
The style checker for spacing around control statements (ControlSpace) and the whitespace checker (Whitespace) didn't refer to some of their configuration variables correctly. This changeset fixes those issues.
Reported-by: Jason Lowe-Power <power.jg@gmail.com> |
11541:3d518944f0cc |
20-Jun-2016 |
Gabor Dozsa <gabor.dozsa@arm.com> |
style: catch trailing white spaces in make and dts files
Change-Id: I2a4f1893919660e51599902b972a6f3f5717e305 Reviewed-by: Andreas Sandberg <andreas.sandberg@arm.com> |
11533:2aa4d7bd47ec |
08-Jun-2016 |
Mohammad Alian <m.alian1369@gmail.com> |
dist, dev: Fixed the packet ordering in etherswitch
This patch fixes the order that packets gets pushed into the output fifo of etherswitch. If two packets arrive at the same tick to the etherswitch, we sort and push them based on their source port id. In dist-gem5 simulations, if there is no ordering inforced while two packets arrive at the same tick, it can lead to non-deterministic simulations
Committed by Jason Lowe-Power <power.jg@gmail.com> |
11510:b539c1a6e597 |
02-Jun-2016 |
Gabor Dozsa <gabor.dozsa@arm.com> |
style: remove extra newline from white space verifier fix method
Change-Id: I7bce7d1cb04efe20d31445eb67ea5ffd2a4a41f4 Reviewed-by: Andreas Sandberg <andreas.sandberg@arm.com> |
11509:d7e83588e5bc |
02-Jun-2016 |
Gabor Dozsa <gabor.dozsa@arm.com> |
style: respect per verifier ignores for git commit
Change-Id: Id00379bdb17594e627ee49c077fb75f499ea550e Reviewed-by: Andreas Sandberg <andreas.sandberg@arm.com> |
11508:46e5f3bf7f17 |
02-Jun-2016 |
Andreas Sandberg <andreas.sandberg@arm.com> |
style: Move the last bits of file_types.py to the style package
The commit that refactored the style checkers into a new Python package (style: Refactor the style checker as a Python package) accidentally left a fragment of file_types.py in the old location (util/style.py). This was caused by a race between the commit that moved the file and Nate's commit that added a copyright header to the file.
This commit moves the last fragment (the copyright header) and removes the old file.
Signed-off-by: Andreas Sandberg <andreas.sandberg@arm.com> |
11468:e7d41fcc291a |
28-Apr-2016 |
Curtis Dunham <Curtis.Dunham@arm.com> |
style: ignore test data in style checks
Change-Id: If797eaf3842b5c1604942bb60f091800ee814a2a Reviewed-by: Andreas Sandberg <andreas.sandberg@arm.com> |
11467:e2ac1018d3aa |
28-Apr-2016 |
Curtis Dunham <Curtis.Dunham@arm.com> |
style: respect ignores for git commit
Previously it ignored the ignores for git but not Mercurial.
Change-Id: I178fe879ebd268e863063eb9e30ec87e8ac8faec Reviewed-by: Andreas Sandberg <andreas.sandberg@arm.com> |
11466:4ab31d6afa5e |
28-Apr-2016 |
Curtis Dunham <Curtis.Dunham@arm.com> |
style: improve compatibility with old git versions
Older versions of git need the '=' to connect --diff-filter to its argument.
Change-Id: Ic62057567db061684be88a7c2d80a6a5d4c11dcf |
11465:256ddcabe5e6 |
28-Apr-2016 |
Andreas Sandberg <andreas.sandberg@arm.com> |
style: Don't include diff context in git style hook
The git style hook currently includes a few lines of diff context when determining changed regions. This is undesirable as this triggers false positives when modifying existing files with a lot of style violations. This change sets the amount of context to 0, which is the default value when requesting staged regions from the git helper.
Change-Id: Ibe03123e329ea0241281e104183a68d6c495b190 Signed-off-by: Andreas Sandberg <andreas.sandberg@arm.com> Reviewed-by: Nathanael Premillieu <nathanael.premillieu@arm.com> |
11449:4511f239d1ba |
18-Apr-2016 |
Andreas Sandberg <andreas.sandberg@arm.com> |
style: Fix Python 2.6 compatibility
The style checker code needs to disable autojunk when diffing source files using Python's difflib. Support for this was only introduced in Python 2.7, which leads to a TypeError exception on older Python version. This changeset adds a fallback mechanism for old Python versions. |
11445:a89bc3bc9f1e |
15-Apr-2016 |
Abdul Mutaal Ahmad <abdul.mutaal@gmail.com> |
misc: Bugfix in TLM memInhibit Command
memInhibitAsserted() has been removed from packet.hh. This change has been reflected in TLM based SystemC memory. This patch also adds a number of panics asserting the SystemC memory only sees requests it expects.
Committed by Jason Lowe-Power <power.jg@gmail.com> |
11444:219c5fe8fa0e |
14-Apr-2016 |
Mohammad Alian <m.alian1369@gmail.com> |
dist: config file for distributed switch
Distributed gem5 is the result of the convergence effort between multi-gem5 and pd-gem5. It relies on the base multi-gem5 infrastructure for packet forwarding, synchronisation and checkpointing but combines those with the elaborated network switch model from pd-gem5. |
11437:210624864179 |
07-Apr-2016 |
Victor Garcia <victor.garcia@arm.com> |
mem: Add Program Counter to MemTraceProbe |
11411:2201a8c86538 |
30-Mar-2016 |
Andreas Sandberg <andreas.sandberg@arm.com> |
arm: Clean up m5ops assembly library
The m5ops assembly library contains a lot of repetitive code. This changeset adds two macros, FOREACH_M5OP and FOREACH_M5_ANNOTATION, to m5ops.h that simplify architecture-specific implementations. The ARM and ARMv8 m5op implementations have been updated to use the new macros.
Signed-off-by: Andreas Sandberg <andreas.sandberg@arm.com> Reviewed-by: Curtis Dunham <curtis.dunham@arm.com> |
11410:e51095583654 |
30-Mar-2016 |
Andreas Sandberg <andreas.sandberg@arm.com> |
style: Change maximum line length to 79 characters
The old style guide used to mandate 78 characters as the maximum line length to accommodate traditional diffs on 80-column terminals. This is an uncommon use case and it has therefore been decided (see email thread on gem5-dev [1]) that a maximum length of 79-characters makes more sense.
[1] http://comments.gmane.org/gmane.comp.emulators.m5.devel/29789
Signed-off-by: Andreas Sandberg <aandreas.sandberg@arm.com> Reviewed-by: Brandon Potter <brandon.potter@amd.com> |
11409:72f80dd8b194 |
30-Mar-2016 |
Andreas Sandberg <andreas.sandberg@arm.com> |
style: Add a style checker that doesn't depend on Mercurial
The current style checker script, hgstyle.py, assumes that it is being run from Mercurial. This means that it depends on the Mercurial Python libraries, which aren't necessarily present if using git. This changeset adds a new style checker script, style.py, that has been designed to be run from the command line.
The script has support for detecting which revision control system is used and is able to query both git and Mercurial for changes. This enables the script to operate on modified regions and/or all of the modified files in the repository.
Signed-off-by: Andreas Sandberg <andreas.sandberg@arm.com> Reviewed-by: Curtis Dunham <curtis.dunham@arm.com> Reviewed-by: Steve Reinhardt <steve.reinhardt@amd.com> |
11408:cb18b6551499 |
30-Mar-2016 |
Andreas Sandberg <andreas.sandberg@arm.com> |
scons: Automatically install the git style hook
Add a check in the main SConscript that installs the git pre-commit hook in util/ if git is used.
Signed-off-by: Andreas Sandberg <andreas.sandberg@arm.com> Reviewed-by: Curtis Dunham <curtis.dunham@arm.com> [andreas.sandberg@arm.com: Cleanups suggested by Steve] Reviewed-by: Steve Reinhardt <steve.reinhardt@amd.com> |
11407:e6cc41b0a03c |
30-Mar-2016 |
Andreas Sandberg <andreas.sandberg@arm.com> |
style: Add a git pre-commit hook
Add a git pre-commit hook that verifies that files that are about to be committed. Since git stages changes into an index and the index contains the changes that will be committed, the style checker only looks at the state of files in the index.
Signed-off-by: Andreas Sandberg <andreas.sandberg@arm.com> Reviewed-by: Nikos Nikoleris <nikos.nikoleris@arm.com> Reviewed-by: Curtis Dunham <curtis.dunham@arm.com> Reviewed-by: Steve Reinhardt <steve.reinhardt@amd.com> |
11406:dd204e5baba7 |
30-Mar-2016 |
Andreas Sandberg <andreas.sandberg@arm.com> |
style: Add repository helper functions
Add an AbstractRepo class and implementations for git and Mercurial that provide a common interface to query repository status for style checkers. The class defines the interfaces to list modified files that are about to be committed and methods to identify changed regions.
Signed-off-by: Andreas Sandberg <andreas.sandberg@arm.com> Reviewed-by: Nikos Nikoleris <nikos.nikoleris@arm.com> Reviewed-by: Curtis Dunham <curtis.dunham@arm.com> Reviewed-by: Steve Reinhardt <steve.reinhardt@amd.com> |
11405:bcec568e403c |
30-Mar-2016 |
Andreas Sandberg <andreas.sandberg@arm.com> |
style: Remove style validators
Style validators provide a subset of the style verifier functionality and are only exposed through the "hg m5format" command. This functionality seems to be both redundant and unused.
Signed-off-by: Andreas Sandberg <andreas.sandberg@arm.com> |
11404:72b399971cbc |
30-Mar-2016 |
Andreas Sandberg <andreas.sandberg@arm.com> |
style: Add a control character checker
Add a style checker that verifies that source code doesn't contain non-printable (control) characters. The only allowed control characters are:
* 0x0a / \n: New line * 0x09 / \t: Tab (the whitespace checker enforces no-tabs for C/C++ files)
Signed-off-by: Andreas Sandberg <andreas.sandberg@arm.com> Reviewed-by: Brandon Potter <brandon.potter@amd.com> |
11403:e8949ea6961f |
30-Mar-2016 |
Andreas Sandberg <andreas.sandberg@arm.com> |
style: Refactor the style checker as a Python package
Refactor the style checker into a Python module that can be reused by command line tools that integrate with git. In particular:
* Create a style package in util * Move style validators from style.py to the style/validators.py. * Move style verifiers from style.py to the style/verifiers.py. * Move utility functions (sort_includes, region handling, file_types) into the style package * Move generic code from style.py to style/style.py.
Signed-off-by: Andreas Sandberg <andreas.sandberg@arm.com> Reviewed-by: Curtis Dunham <curtis.dunham@arm.com> Reviewed-by: Steve Reinhardt <steve.reinhardt@amd.com> |
11402:ac9e1a3bed79 |
30-Mar-2016 |
Andreas Sandberg <andreas.sandberg@arm.com> |
style: Change include sorter to yield one line at a time
The include sorter class normally yields one string per line and relies on the caller to merge lines into a block of text separated by newlines. However, there are cases when this isn't true. This makes diffing using Python's difflib hard. This changeset updates the include sorter to never do this and always yield one line at a time.
Signed-off-by: Andreas Sandberg <andreas.sandberg@arm.com> Reviewed-by: Curtis Dunham <curtis.dunham@arm.com> Reviewed-by: Steve Reinhardt <steve.reinhardt@amd.com> |
11401:55f9a21e34b4 |
30-Mar-2016 |
Andreas Sandberg <andreas.sandberg@arm.com> |
scons, style: Rename style.py to hgstyle.py
The Mercurial style checker extensions are currently stored in style.py. This is not ideal since they won't work with other version control systems. This changeset renames style.py to hgstyle.py and adds upgrade code to scons that automatically updates the hooks in hgrc.
Signed-off-by: Andreas Sandberg <andreas.sandberg@arm.com> Reviewed-by: Nikos Nikoleris <nikos.nikoleris@arm.com> Reviewed-by: Curtis Dunham <curtis.dunham@arm.com> Reviewed-by: Nathanael Premillieu <nathananel.premillieu@arm.com> Reviewed-by: Steve Reinhardt <steve.reinhardt@amd.com> |
11400:21ce6f5d4613 |
30-Mar-2016 |
Andreas Sandberg <andreas.sandberg@arm.com> |
style: Remove unsupported style.py commands
Remove the unsupported style.py subcommands (fixwhite, chkwhite), which leaves the chkformat command as the only remaining command. Since the script now only supports one command, remove the sub-command support altogether.
Signed-off-by: Andreas Sandberg <andreas.sandberg@arm.com> Reviewed-by: Nikos Nikoleris <nikos.nikoleris@arm.com> Reviewed-by: Curtis Dunham <curtis.dunham@arm.com> Reviewed-by: Nathanael Premillieu <nathananel.premillieu@arm.com> |
11398:5f487c387e2e |
29-Mar-2016 |
Andreas Sandberg <andreas.sandberg@arm.com> |
copyright: Update copyright in sort_includes.py
The following changes introduced substantial changes to sort_includes.py: - hg:84b4d6af0ecc - util: Fix state leakage in ... - hg:e2f9644a7738 - style: Update the style checker to handle new ...
Since the file didn't include a copyright header at the time, I never added the correct ARM copyright notice. This changeset adds the correct copyright notice.
Signed-off-by: Andreas Sandberg <andreas.sandberg@arm.com> |
11397:29f3f2fe9286 |
29-Mar-2016 |
Nathan Binkert <nate@binkert.org> |
copyright: add copyright missing from files I created |
11396:ddfc7795d8f8 |
24-Mar-2016 |
Andreas Sandberg <andreas.sandberg@arm.com> |
style: Strip newline when checking lines
The style checker incorrectly includes newlines when checking lines of code, which effectively decreases the column limit by 1. This changeset strips the newline character from before calling line checkers.
Change-Id: I0a8c7707ece57d782d11cc86db4b8064db291ce0 Signed-off-by: Andreas Sandberg <andreas.sandberg@arm.com> |
11372:a5c8f7deb099 |
16-Mar-2016 |
Gabor Dozsa <gabor.dozsa@arm.com> |
misc: Fix argument handling for m5 initparam util |
11368:2fd64ea0a7cb |
08-Mar-2016 |
Andreas Hansson <andreas.hansson@arm.com> |
configs: Add a lat_mem_rd style test script
This patch adds a config script that broadly replicates the behaviour of lat_mem_rd. The test is based on traffic generators, and as such we simply randomise addresses in increasingly large ranges, and play them back using the trace functionality of the traffic generator.
The test script is accompanied by a post-processing and visualisation script. At the moment no configurability is added to tweak the memory hierarchy, but a follow on patch could easily extend the functionality. |
11358:cd41493e8b7e |
29-Feb-2016 |
Prakash Ramrakhyani <prakash.ramrakhyani@arm.com> |
util: update Java JNI interface to m5ops
Synchronize with ab19693da "pseudo inst,util: Add optional key to initparam pseudo instruction" |
11351:bfc1285c61eb |
24-Feb-2016 |
Matteo Andreozzi <Matteo.Andreozzi@arm.com> |
cpu: TraceGen fix for tick frequency check
Bug fix for check on protobuf file frequency being different than global frequency.
The ASCII encoder script is also fixed, and the example trace used in the regressions is updated. |
11323:98e8aa1585a7 |
06-Feb-2016 |
Steve Reinhardt <steve.reinhardt@amd.com> |
util: fix apparent statetrace bug
In the process of trying to eliminate boolean comparisons, I ran across this statement that appears to be a bug (should have been an assignment). |
11322:01b16bab6675 |
06-Feb-2016 |
Steve Reinhardt <steve.reinhardt@amd.com> |
util: added line length and boolean comparison style checkers
Added checkers for line length and boolean comparisons (== true/== false) to the style script. |
11321:02e930db812d |
06-Feb-2016 |
Steve Reinhardt <steve.reinhardt@amd.com> |
style: fix missing spaces in control statements
Result of running 'hg m5style --skip-all --fix-control -a'. |
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'. |
11319:7ca84595249c |
06-Feb-2016 |
Steve Reinhardt <steve.reinhardt@amd.com> |
util: clean up and extend style checker
Added a new Verifier object to check for and fix spacing between if/while/for and following paren.
Restructured Verifier class to make it easier to add new subclasses, particularly by using a global list of verifiers to auto-generate command line options and simplify the invocation loop. |
11318:abd21524cc71 |
06-Feb-2016 |
Steve Reinhardt <steve.reinhardt@amd.com> |
util: delete old unused style-checking scripts
The functions in these scripts were apparently folded into style.py but the old scripts were orphaned without being deleted. Get rid of them so their existence is no longer confusing. |
11308:7d8836fd043d |
19-Jan-2016 |
Tony Gutierrez <anthony.gutierrez@amd.com> |
gpu-compute: AMD's baseline GPU model |
11291:9d2364203316 |
07-Jan-2016 |
Gabor Dozsa <gabor.dozsa@arm.com> |
config: Updates for distributed gem5 simulations |
11290:1640dd68b0a4 |
07-Jan-2016 |
Gabor Dozsa <gabor.dozsa@arm.com> |
dev: Distributed Ethernet link for distributed gem5 simulations
Distributed gem5 (abbreviated dist-gem5) is the result of the convergence effort between multi-gem5 and pd-gem5 (from Univ. of Wisconsin). It relies on the base multi-gem5 infrastructure for packet forwarding, synchronisation and checkpointing but combines those with the elaborated network switch model from pd-gem5. |
11289:ab19693da8c9 |
07-Jan-2016 |
Gabor Dozsa <gabor.dozsa@arm.com> |
pseudo inst,util: Add optional key to initparam pseudo instruction
The key parameter can be used to read out various config parameters from within the simulated software. |
11257:39c4dcba7131 |
18-Sep-2015 |
Karthik Sangaiah <karthik.sangaiah@arm.com> |
dev, arm: Add gem5 extensions to support more than 8 cores
Previous ARM-based simulations were limited to 8 cores due to limitations in GICv2 and earlier. This changeset adds a set of gem5-specific extensions that enable support for up to 256 cores.
When the gem5 extensions are enabled, the GIC uses CPU IDs instead of a CPU bitmask in the GIC's register interface. To OS can enable the extensions by setting bit 0x200 in ICDICTR.
This changeset is based on previous work by Matt Evans. |
11253:daf9f91b11e9 |
07-Dec-2015 |
Radhika Jagtap <radhika.jagtap@ARM.com> |
cpu: Support virtual addr in elastic traces
This patch adds support to optionally capture the virtual address and asid for load/store instructions in the elastic traces. If they are present in the traces, Trace CPU will set those fields of the request during replay. |
11252:18bb597fc40c |
07-Dec-2015 |
Radhika Jagtap <radhika.jagtap@ARM.com> |
cpu: Create record type enum for elastic traces
This patch replaces the booleans that specified the elastic trace record type with an enum type. The source of change is the proto message for elastic trace where the enum is introduced. The struct definitions in the elastic trace probe listener as well as the Trace CPU replace the boleans with the proto message enum.
The patch does not impact functionality, but traces are not compatible with previous version. This is preparation for adding new types of records in subsequent patches. |
11250:3db78b2af869 |
07-Dec-2015 |
Radhika Jagtap <radhika.jagtap@ARM.com> |
util: Add decode and encode scripts for elastic traces
This patch adds python scripts to parse a protobuf encoded O3CPU elastic trace and convert it to a text file output and vice versa. |
11242:8b3c0bd14c01 |
04-Dec-2015 |
Bjoern A. Zeeb <baz21@cam.ac.uk> |
util: term: drop CC from Makefile
With clang there are systems without gcc being installed anymore and we should not rely on that. This patch drops CC so that system's default compiler is invoked.
Committed by: Nilay Vaish <nilay@cs.wisc.edu> |
11241:50a9d73b12d9 |
04-Dec-2015 |
Abdul Mutaal Ahmad <abdul.mutaal@gmail.com> |
util: DrainManager/Checkpoint changes in SystemC coupling
Due to changes in Drain Manager, the lastest systemc coupling doesn't work. The code for handling Checkpoint has been modified and it is now compatiable with new drain manager.
Testing is being done on systemC coupling. It needs more testing to verify checkpointing feature.
Committed by: Nilay Vaish <nilay@cs.wisc.edu> |
11227:2659b1903b0f |
10-Sep-2015 |
Andrew Bardsley <Andrew.Bardsley@arm.com> |
sim: Update C++ config example to match SystemC example
Update the use of the drain manager, and checkpointing to match changes to gem5 since the example was written. |
11223:2981e399c816 |
22-Nov-2015 |
Andreas Hansson <andreas.hansson@arm.com> |
config: Minor fixes to the DRAM utilisation sweep |
11153:20bbfe5b2b86 |
30-Sep-2015 |
Curtis Dunham <Curtis.Dunham@arm.com> |
base: remove Trace::enabled flag
The DTRACE() macro tests both Trace::enabled and the specific flag. This change uses the same administrative interface for enabling/disabling tracing, but masks the SimpleFlags settings directly. This eliminates a load for every DTRACE() test, e.g. DPRINTF. |
11150:a8a64cca231b |
30-Sep-2015 |
Mitch Hayenga <mitch.hayenga@arm.com> |
isa,cpu: Add support for FS SMT Interrupts
Adds per-thread interrupt controllers and thread/context logic so that interrupts properly get routed in SMT systems. |
11125:f918d72dbc02 |
25-Sep-2015 |
Andreas Hansson <andreas.hansson@arm.com> |
util: Fix minor issues in DRAM sweep scripts
This patch fixes a few issues in the sweep scripts, bringing them up-to-date with the latest memory configs and options. |
11100:0e980afb1b63 |
15-Sep-2015 |
Abdul Mutaal Ahmad <abdul.mutaal@gmail.com> |
misc: Bugfix for Freezing Terminal in SystemC Simulation
If the terminal was used in the SystemC or TLM simulations the simulation gets in a deadlock state. This is because of the Event queue gets locked while servicing the async events leading to event queue deadlock. This was solved by locking the queue at the beginning of service of async events.
Committed by: Nilay Vaish <nilay@cs.wisc.edu> |
11099:69fb77726e9e |
15-Sep-2015 |
Abdul Mutaal Ahmad <abdul.mutaal@gmail.com> |
misc: Bugfix in TLM integration regarding CleanEvict Command The CleanEvict command was not considered in /util/tlm/sc_port.cc this could lead to a simulator crash. This issue is solved by ignoring this special command type.
Committed by: Nilay Vaish <nilay@cs.wisc.edu> |
11090:f37a6b82f98f |
11-Sep-2015 |
Andreas Sandberg <andreas.sandberg@arm.com> |
dev, arm: Rewrite the HDLCD controller
Rewrite the HDLCD controller to use the new DMA engine and pixel pump. This fixes several bugs in the current implementation:
* Broken/missing interrupt support (VSync, underrun, DMA end) * Fragile resolution changes (changing resolutions used to cause assertion errors). * Support for resolutions with a width that isn't divisible by 32. * The pixel clock can now be set dynamically.
This breaks checkpoint compatibility. Checkpoints can be upgraded with the checkpoint conversion script. However, upgraded checkpoints won't contain the state of the current frame. That means that HDLCD controllers restoring from a converted checkpoint immediately start drawing a new frame (i.e, expect timing differences). |
11077:fae097742b7e |
02-Sep-2015 |
Curtis Dunham <Curtis.Dunham@arm.com> |
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. |
11000:913585a4189a |
05-Aug-2015 |
Andreas Hansson <andreas.hansson@arm.com> |
util: Enable DRAM sweep to print power and efficiency
This patch enhances the functionality of the DRAM sweep script to not only plot the bandwidth utilisation, but also total power and power efficiency. To do so, a command-line switch is added, and a bit more data extracted from the stats. |
10993:4e27d8806403 |
04-Aug-2015 |
Matthias Jung <jungma@eit.uni-kl.de> |
misc: Coupling gem5 with SystemC TLM2.0 Transaction Level Modeling (TLM2.0) is widely used in industry for creating virtual platforms (IEEE 1666 SystemC). This patch contains a standard compliant implementation of an external gem5 port, that enables the usage of gem5 as a TLM initiator component in SystemC based virtual platforms. Both TLM coding paradigms loosely timed (b_transport) and aproximately timed (nb_transport) are supported.
Compared to the original patch a TLM memory manager was added. Furthermore, the transaction object was removed and for each TLM payload a PacketPointer that points to the original gem5 packet is added as an TLM extension. For event handling single events are now created.
Committed by: Nilay Vaish <nilay@cs.wisc.edu> |
10958:30c2e8004c0a |
20-Jul-2015 |
Brad Beckmann <Brad.Beckmann@amd.com> |
util: added .cl OpenCL extension to file_type.py |
10957:c6c28616a57c |
20-Jul-2015 |
Brad Beckmann <Brad.Beckmann@amd.com> |
util: added .mk makefile extension to file_types.py |
10952:fca6a566f057 |
31-Jul-2015 |
Anthony Gutierrez <atgutier@umich.edu> |
util: add a vimrc that matches gem5 style guide |
10930:ddc3d96d6313 |
24-Jul-2015 |
Brandon Potter <brandon.potter@amd.com> |
base: refactor process class (specifically FdMap and friends)
This patch extends the previous patch's alterations around fd_map. It cleans up some of the uglier code in the process file and replaces it with a more concise C++11 version. As part of the changes, the FdMap class is pulled out of the Process class and receives its own file. |
10923:5fe05690d03d |
15-Jul-2015 |
Gabor Dozsa <gabor.dozsa@arm.com> |
dev: add support for multi gem5 runs
Multi gem5 is an extension to gem5 to enable parallel simulation of a distributed system (e.g. simulation of a pool of machines connected by Ethernet links). A multi gem5 run consists of seperate gem5 processes running in parallel (potentially on different hosts/slots on a cluster). Each gem5 process executes the simulation of a component of the simulated distributed system (e.g. a multi-core board with an Ethernet NIC).
The patch implements the "distributed" Ethernet link device (dev/src/multi_etherlink.[hh.cc]). This device will send/receive (simulated) Ethernet packets to/from peer gem5 processes. The interface to talk to the peer gem5 processes is defined in dev/src/multi_iface.hh and in tcp_iface.hh.
There is also a central message server process (util/multi/tcp_server.[hh,cc]) which acts like an Ethernet switch and transfers messages among the gem5 peers.
A multi gem5 simulations can be kicked off by the util/multi/gem5-multi.sh wrapper script.
Checkpoints are supported by multi-gem5. The checkpoint must be initiated by a single gem5 process. E.g., the gem5 process with rank 0 can take a checkpoint from the bootscript just before it invokes 'mpirun' to launch an MPI test. The message server process will notify all the other peer gem5 processes and make them take a checkpoint, too (after completing a global synchronisation to ensure that there are no inflight messages among gem5). |
10879:3946aa272087 |
03-Jul-2015 |
Andreas Hansson <andreas.hansson@arm.com> |
util: Remove DRAMPower trace script
This script is deprecated and DRAMPower is now properly integrated with the controller model. |
10861:9141d87c7f71 |
01-Jun-2015 |
Curtis Dunham <Curtis.Dunham@arm.com> |
sim, arm: add checkpoint upgrader for d02b45a5
The insertion of CONTEXTIDR_EL2 in the ARM miscellaneous registers obsoletes old checkpoints. |
10750:30efc3828bb4 |
19-Mar-2015 |
Andreas Hansson <andreas.hansson@arm.com> |
config: Add soak test for memtest.py
This patch adds a random option to memtest.py which allows the user to easily test valid random tree topologies. The patch also adds a wrapper script to run soak tests using the newly introduced option.
We also adjust the progress interval and progress limit check to make the output less noisy, and avoid false positives.
Bring on the pain. |
10695:ef2c71a5f02e |
16-Feb-2015 |
Ali Saidi <Ali.Saidi@ARM.com> |
cpu: add support for outputing a protobuf formatted CPU trace
Doesn't support x86 due to static instruction representation. |
10692:ab81a0feab55 |
11-Feb-2015 |
Andreas Sandberg <Andreas.Sandberg@ARM.com> |
style: Fix broken m5format command
The m5format command didn't actually work due to parameter handling issues and missing language detection. This changeset fixes those issues and cleans up some of the code to shared between the style checker and the format checker. |
10691:65da28dee7cf |
11-Feb-2015 |
Andreas Sandberg <Andreas.Sandberg@ARM.com> |
style: Fix incorrect style checker option name
The style used to support the option -w to automatically fix white space issues. However, this option was actually wired up to fix all styles issues the checker encountered. This changeset cleans up the code that handles automatic fixing and adds an option to fix all issues, and separate options for white spaces and include ordering. |
10674:e2f9644a7738 |
03-Feb-2015 |
Andreas Sandberg <Andreas.Sandberg@ARM.com> |
style: Update the style checker to handle new include order
As of August 2014, the gem5 style guide mandates that a source file's primary header is included first in that source file. This helps to ensure that the header file does not depend on include file ordering and avoids surprises down the road when someone tries to reuse code.
In the new order, include files are grouped into the following blocks: * Primary header file (e.g., foo.hh for foo.cc) * Python headers * C system/stdlib includes * C++ stdlib includes * Include files in the gem5 source tree
Just like before, include files within a block are required to be sorted in alphabetical order.
This changeset updates the style checker to enforce the new order. |
10578:997be6ba467e |
02-Dec-2014 |
Andrew Bardsley <Andrew.Bardsley@arm.com> |
config: Fix to SystemC example's event handling
This patch fixes checkpoint restore in the SystemC hosting example by handling early PollEvent events correctly before any EventQueue events are posted.
The SystemC event queue handler (SCEventQueue) reports an error if the event loop is entered with no Events posted. It is possible for this to happen after instantiate due to PollEvent events. This patch separates out `external' events into a different handler in sc_module.cc to prevent the error from occurring.
This fix also improves the event handling of asynchronous events by:
1) Making asynchronous events 'catch up' gem5 time to SystemC time to avoid the appearance that events have been lost while servicing an asynchronous event that schedules an event loop exit event
2) Add an in_simulate data member to Module to allow the event loop to check whether events should be processed or deferred until the next time Module::simulate is entered
3) Cancel pending events around the entry/exit of the event loop in Module::simulate
4) Moving the state initialisation of the example entirely into run to correct a problem with early events in checkpoint restore.
It is still possible to schedule asynchronous events (and talk PollQueue actions) while simulate is not running. This behaviour may stil cause some problems. |
10577:5d7af9fa9809 |
02-Dec-2014 |
Andrew Bardsley <Andrew.Bardsley@arm.com> |
config: SystemC Gem5Control top level additions
This patch cleans up a few style issues and adds a few capabilities to the SystemC top level 'Gem5Control/Gem5System' mechanism. These include:
1) A space to store/retrieve a version string for a model 2) A mechanism for registering functions to be called at the end of elaboration to perform simulation setup tasks in SystemC 3) Adding setGDBRemotePort to the Gem5Control 4) Changing the sc_set_time_resolution behaviour to instead check that the SystemC time resolution is already acceptable |
10553:c1ad57c53a36 |
23-Nov-2014 |
Alexandru Dutu <alexandru.dutu@amd.com> |
kvm, x86: Adding support for SE mode execution This patch adds methods in KvmCPU model to handle KVM exits caused by syscall instructions and page faults. These types of exits will be encountered if KvmCPU is run in SE mode. |
10538:1a9e235cab09 |
14-Nov-2014 |
Andrew Bardsley <Andrew.Bardsley@arm.com> |
config: Fix checkpoint restore in C++ config example
This patch fixes the checkpoint restore option in the example of C++ configuration (util/cxx_config).
The fix introduces a call to config_manager->startup() (which calls startup on all SimObjects managed by that manager) to replicate the loop of SimObject::startup calls in src/python/m5/simulate.py::simulate guarded by need_startup. As util/cxx_config/main.cc is a C++ analogue of src/python/mt/simulate.py, it should make a similar set of calls. |
10477:16fd06ecdb64 |
16-Oct-2014 |
Andrew Bardsley <Andrew.Bardsley@arm.com> |
sim: SystemC hosting
This patch hosts gem5 onto SystemC scheduler. There's already an upstream review board patch that does something similar but this patch ...:
1) is less obtrusive to the existing gem5 code organisation. It's divided into the 'generic' preparatory patches (already submitted) and this patch which affects no existing files
2) does not try to exactly track the gem5 event queue with notifys into SystemC and so doesn't requive the event queue to be modified for anything other than 'out of event queue' scheduling events
3) supports debug logging with SC_REPORT
The patch consists of the files: util/systemc/ sc_gem5_control.{cc,hh} -- top level objects to use to instantiate gem5 Systems within larger SystemC test harnesses as sc_module objects sc_logger.{cc,hh} -- logging support sc_module.{cc,hh} -- a separated event loop specific to SystemC stats.{cc,hh} -- example Stats handling for the sample top level main.{cc,hh} -- a sample top level
On the downside this patch is only currently functional with C++ configuration at the top level.
The above sc_... files are indended to be compiled alongside gem5 (as a library, see main.cc for a command line and util/systemc/README for more details.)
The top-level system instantiation in sc_gem5_control.{cc,hh} provides two classes: Gem5Control and Gem5System
Gem5Control is a simulation control class (from which a singleton object should be created) derived from Gem5SystemC::Module which carries the top level simulation control interface for gem5. This includes hosting a system-building configuration file and instantiating the Root object from that file.
Gem5System is a base class for instantiating renamed gem5 Systems from the config file hosted by the Gem5Control object. In use, a SystemC module class should be made which represents the desired, instantiable gem5 System. That class's instances should create a Gem5System during their construction, set the parameters of that system and then call instantiate to build that system. If this is all carried out in the sc_core::sc_module-derived classes constructor, the System's external ports will become children of that module and can then be recovered by name using sc_core:: sc_find_object.
It is intended that this interface is used with dlopen. To that end, the header file sc_gem5_control.hh includes no other header files from gem5 (and so can be easily copied into another project). The classes Gem5System and Gem5Control have all their member functions declared `virtual' so that those functions can be called through the vtable acquired by building the top level Gem5Control using dlsym(..., "makeGem5Control") and `makeSystem' on the Gem5Control. |
10458:64809024b924 |
16-Oct-2014 |
Andreas Hansson <andreas.hansson@arm.com> |
config: Add the ability to read a config file using C++ and Python
This patch adds the ability to load in config.ini files generated from gem5 into another instance of gem5 built without Python configuration support. The intended use case is for configuring gem5 when it is a library embedded in another simulation system.
A parallel config file reader is also provided purely in Python to demonstrate the approach taken and to provided similar functionality for as-yet-unknown use models. The Python configuration file reader can read both .ini and .json files.
C++ configuration file reading:
A command line option has been added for scons to enable C++ configuration file reading: --with-cxx-config
There is an example in util/cxx_config that shows C++ configuration in action. util/cxx_config/README explains how to build the example.
Configuration is achieved by the object CxxConfigManager. It handles reading object descriptions from a CxxConfigFileBase object which wraps a config file reader. The wrapper class CxxIniFile is provided which wraps an IniFile for reading .ini files. Reading .json files from C++ would be possible with a similar wrapper and a JSON parser.
After reading object descriptions, CxxConfigManager creates SimObjectParam-derived objects from the classes in the (generated with this patch) directory build/ARCH/cxx_config
CxxConfigManager can then build SimObjects from those SimObjectParams (in an order dictated by the SimObject-value parameters on other objects) and bind ports of the produced SimObjects.
A minimal set of instantiate-replacing member functions are provided by CxxConfigManager and few of the member functions of SimObject (such as drain) are extended onto CxxConfigManager.
Python configuration file reading (configs/example/read_config.py):
A Python version of the reader is also supplied with a similar interface to CxxConfigFileBase (In Python: ConfigFile) to config file readers.
The Python config file reading will handle both .ini and .json files.
The object construction strategy is slightly different in Python from the C++ reader as you need to avoid objects prematurely becoming the children of other objects when setting parameters.
Port binding also needs to be strictly in the same port-index order as the original instantiation. |
10449:f4ff359c61ff |
11-Oct-2014 |
Nilay Vaish <nilay@cs.wisc.edu> |
util: adds a script for using DSENT This patch adds a python script that processes the configuration and the statistics file from a simulation run. Configuration and activity of network routers and links obtained from this processing is fed to DSENT via its Python interface. DSENT then computes the area and the power consumption of these network components. The script outputs these quantities to the console. |
10354:2d6d7a056a38 |
03-Sep-2014 |
Dam Sunwoo <dam.sunwoo@arm.com> |
config: Update Streamline scripts and configs
Updated the stat_config.ini files to reflect new structure.
Moved to a more generic stat naming scheme that can easily handle multiple CPUs and L2s by letting the script replace pre-defined # symbols to CPU or L2 ids.
Removed the previous per_switch_cpus sections. Still can be used by spelling out the stat names if necessary. (Resuming from checkpoints no longer use switch_cpus. Only fast-forwarding does.) |
10338:8bee5f4edb92 |
29-Apr-2014 |
Curtis Dunham <Curtis.Dunham@arm.com> |
arm: use condition code registers for ARM ISA
Analogous to ee049bf (for x86). Requires a bump of the checkpoint version and corresponding upgrader code to move the condition code register values to the new register file. |
10323:5169ebd26163 |
03-Sep-2014 |
Andreas Hansson <andreas.hansson@arm.com> |
mem: Add utility script to plot DRAM efficiency sweep
This patch adds basic functionality to quickly visualise the output from the DRAM efficiency script. There are some unfortunate hacks needed to communicate the needed information from one script to the other, and we fall back on (ab)using the simout to do this.
As part of this patch we also trim the efficiency sweep to stop at 512 bytes as this should be sufficient for all forseeable DRAMs. |
10294:b58f6afe14c5 |
26-Aug-2014 |
Andreas Sandberg <Andreas.Sandberg@ARM.com> |
style: Add support for a style ignore list and ignore ext/
There are some directories within the repository where we don't want to enforce our coding style. Specifically, we don't want the style hooks to warn whenever we update external code in the ext/ directory. |
10293:62c95c428a3d |
26-Aug-2014 |
Andreas Sandberg <Andreas.Sandberg@ARM.com> |
style: Fixup strange semantics in hg m5style
The 'hg m5style' command had some rather strange semantics. When called without arguments, it applied the style checker to all added files and modified regions of modified files. However, when providing a list of files, it used that list as an ignore list instead of specifically checking those files.
This patch makes the m5style command behave more like other Mercurial commands where the arguments are used to specify which files to work on instead of which files to ignore. |
10285:6cb378bad253 |
05-Feb-2014 |
Curtis Dunham <Curtis.Dunham@arm.com> |
sim: bump checkpoint version for multiple event queues
This patch adds a fix for older checkpoints before support for multiple event queues were added in changeset 2cce74fe359e. The change in checkpoint version should really hav ebeen part of the aforementioned changeset. |
10275:84b4d6af0ecc |
13-Aug-2014 |
Andreas Sandberg <Andreas.Sandberg@ARM.com> |
util: Fix state leakage in the SortIncludes style verifier
There are cases where the state of a SortIncludes object gets messed up and leaks between invocations/files. This typically happens when a file ends with an include block (dump_block() gets called at the end of __call__). In this case, the state of the class is not reset between files. This bug manifests itself as ghost includes that leak between files when applying the style hooks.
This changeset adds a reset at the beginning of the __call__ method which ensures that the class is always in a clean state when processing a new file. |
10269:82773ace39fa |
10-Aug-2014 |
Radhika Jagtap <radhika.jagtap@ARM.com> |
util: Move packet trace file read to protolib
This patch moves the code for opening an input protobuf packet trace into a function defined in the protobuf library. This is because the code is commonly used in decode scripts and is independent of the src protobuf message. |
10259:ebb376f73dd2 |
23-Jul-2014 |
Andrew Bardsley <Andrew.Bardsley@arm.com> |
cpu: `Minor' in-order CPU model
This patch contains a new CPU model named `Minor'. Minor models a four stage in-order execution pipeline (fetch lines, decompose into macroops, decompose macroops into microops, execute).
The model was developed to support the ARM ISA but should be fixable to support all the remaining gem5 ISAs. It currently also works for Alpha, and regressions are included for ARM and Alpha (including Linux boot).
Documentation for the model can be found in src/doc/inside-minor.doxygen and its internal operations can be visualised using the Minorview tool utils/minorview.py.
Minor was designed to be fairly simple and not to engage in a lot of instruction annotation. As such, it currently has very few gathered stats and may lack other gem5 features.
Minor is faster than the o3 model. Sample results:
Benchmark | Stat host_seconds (s) ---------------+--------v--------v-------- (on ARM, opt) | simple | o3 | minor | timing | timing | timing ---------------+--------+--------+-------- 10.linux-boot | 169 | 1883 | 1075 10.mcf | 117 | 967 | 491 20.parser | 668 | 6315 | 3146 30.eon | 542 | 3413 | 2414 40.perlbmk | 2339 | 20905 | 11532 50.vortex | 122 | 1094 | 588 60.bzip2 | 2045 | 18061 | 9662 70.twolf | 207 | 2736 | 1036 |
10250:9f5e9bdc2f27 |
01-Jul-2014 |
Radhika Jagtap <radhika.jagtap@ARM.com> |
util: Add DVFS perfLevel to checkpoint upgrade script
This patch updates the checkpoint upgrader script. It adds the _perfLevel variable in the clock domain and voltage domain simObjects used for DVFS. |
10248:72277952d444 |
30-Jun-2014 |
Andreas Hansson <andreas.hansson@arm.com> |
mem: DRAMPower trace formatting script
This patch adds a first version of a script that processes the debug output and generates a command trace for DRAMPower. This is work in progress and is intended as a snapshot of ongoing work at this point.
The longer term plan is to link in DRAMPower as a library and have one instance of the model per rank, and instantiate it based on a struct passed from gem5. Each command will then be a call to the model and no parsing of traces will be necessary. |
10237:b2850bdcec07 |
09-Jun-2014 |
Joel Hestness <jthestness@gmail.com> |
Util: Do not style check symlinks
The style checker used to traverse symlinks if they pointed to files, which can result in style checker failure if the pointed-to file doesn't exist. This style check is actually unnecessary, since symlinks either point to other files that are already style checked, or files outside gem5, which shouldn't be checked. Skip symlinks. |
10185:dc565194a1cd |
09-May-2014 |
Eric Van Hensbergen <eric.vanhensbergen@arm.com> |
arm: Add Makefile for aarch64 build of util/m5 |
10179:e30d66a1e550 |
23-Apr-2014 |
Mitch Hayenga <mitch.hayenga@arm.com> |
util: Valgrind suppression addition
Adds a suppression rule to util/valgrind-suppressions due to a minor bug present in zlib that has no impact on simulation. |
10163:e8608cdddae2 |
19-Apr-2014 |
Marco Elver <marco.elver@ed.ac.uk> |
ruby: recorder: Fix (de-)serializing with different cache block-sizes
Upon aggregating records, serialize system's cache-block size, as the cache-block size can be different when restoring from a checkpoint. This way, we can correctly read all records when restoring from a checkpoints, even if the cache-block size is different.
Note, that it is only possible to restore from a checkpoint if the desired cache-block size is smaller or equal to the cache-block size when the checkpoint was taken; we can split one larger request into multiple small ones, but it is not reliable to do the opposite.
Committed by: Nilay Vaish <nilay@cs.wisc.edu> |
10151:2434d2fa50b6 |
01-Apr-2014 |
Anthony Gutierrez <atgutier@umich.edu> |
arm: fix typos in makefile for ARM m5 util and link statically
1) fixes a typo for clean target libgemOpJni.so -> libgem5OpJni.so 2) addes jni_gem5Op.h to clean since it is added during make 3) links the m5 utility statically since it won't work on some images otherwise |
10132:894ec19274e9 |
23-Mar-2014 |
Andreas Hansson <andreas.hansson@arm.com> |
util: Add support for detection of gzipped packet traces
This patch adds support for automatically detecting a gzipped packet trace, thus accepting either a compressed or uncompressed trace. |
10107:524afa92d940 |
07-Mar-2014 |
Radhika Jagtap <radhika.jagtap@ARM.com> |
mem: Edit proto Packet and enhance the python script
This patch changes the decode script to output the optional fields of the proto message Packet, namely id and flags. The flags field is set by the communication monitor.
The id field is useful for CPU trace experiments, e.g. linking the fetch side to decode side. It had to be renamed because it clashes with a built in python function id() for getting the "identity" of an object.
This patch also takes a few common function definitions out from the multiple scripts and adds them to a protolib python module. |
10065:58bf21ca88de |
18-Feb-2014 |
Andreas Hansson <andreas.hansson@arm.com> |
util: Enhance the error messages for packet encode/decode
This patch adds a more verbose error message when the Python protobuf module cannot be loaded. |
10037:5cac77888310 |
24-Jan-2014 |
ARM gem5 Developers |
arm: Add support for ARMv8 (AArch64 & AArch32)
Note: AArch64 and AArch32 interworking is not supported. If you use an AArch64 kernel you are restricted to AArch64 user-mode binaries. This will be addressed in a later patch.
Note: Virtualization is only supported in AArch32 mode. This will also be fixed in a later patch.
Contributors: Giacomo Gabrielli (TrustZone, LPAE, system-level AArch64, AArch64 NEON, validation) Thomas Grocutt (AArch32 Virtualization, AArch64 FP, validation) Mbou Eyole (AArch64 NEON, validation) Ali Saidi (AArch64 Linux support, code integration, validation) Edmund Grimley-Evans (AArch64 FP) William Wang (AArch64 Linux support) Rene De Jong (AArch64 Linux support, performance opt.) Matt Horsnell (AArch64 MP, validation) Matt Evans (device models, code integration, validation) Chris Adeniyi-Jones (AArch64 syscall-emulation) Prakash Ramrakhyani (validation) Dam Sunwoo (validation) Chander Sudanthi (validation) Stephan Diestelhorst (validation) Andreas Hansson (code integration, performance opt.) Eric Van Hensbergen (performance opt.) Gabe Black |
10016:dffa80408656 |
24-Jan-2014 |
Dam Sunwoo <dam.sunwoo@arm.com> |
util: updated Streamline flow to support ARM DS-5 v5.17 protocol
The previous flow supported ARM DS-5 v5.13 protocol. |
10007:94d286db85c1 |
04-Jan-2014 |
Nilay Vaish <nilay@cs.wisc.edu> |
ruby: rename MESI_CMP_directory to MESI_Two_Level
This is because the next patch introduces a three level hierarchy. |
9991:51e683db5ab1 |
03-Dec-2013 |
Nilay Vaish <nilay@cs.wisc.edu> |
util: update checkpoint aggregation script The checkpoint aggregation script had become outdated due to numerous changes to checkpoints over the past couple of years. This updates the script. It now supports aggregation for x86 architecture instead of alpha. Also a couple of new options have been added that specify the size of the memory file to be created and whether or not the memory file should be compressed. |
9959:ad4564da49b5 |
31-Oct-2013 |
Chander Sudanthi <chander.sudanthi@arm.com> |
ARM: add support for TEEHBR access
Thumb2 ARM kernels may access the TEEHBR via thumbee_notifier in arch/arm/kernel/thumbee.c. The Linux kernel code just seems to be saving and restoring the register. This patch adds support for the TEEHBR cp14 register. Note, this may be a special case when restoring from an image that was run on a system that supports ThumbEE. |
9956:6f2b525b8f16 |
31-Oct-2013 |
Geoffrey Blake <Geoffrey.Blake@arm.com> |
dev: Fix race conditions in IDE device on newer kernels
Newer linux kernels and distros exercise more functionality in the IDE device than previously, exposing 2 races. The first race is the handling of aborted DMA commands would immediately report the device is ready back to the kernel and cause already in flight commands to assert the simulator when they returned and discovered an inconsitent device state. The second race was due to the Status register not being handled correctly, the interrupt status bit would get stuck at 1 and the driver eventually views this as a bad state and logs the condition to the terminal. This patch fixes these two conditions by making the device handle aborted commands gracefully and properly handles clearing the interrupt status bit in the Status register. |
9949:7890c22dad25 |
31-Oct-2013 |
Ali Saidi <Ali.Saidi@ARM.com> |
arm: fix m5ops binary for ARM and add m5fail.
Changes to make m5ops work under virtualization seemed to break them working with non-virtualized systems and the recently added m5 fail command makes the m5op binary not compile. For now remove the code for virtualization. |
9935:cc9dc514036e |
17-Oct-2013 |
Dam Sunwoo <dam.sunwoo@arm.com> |
util: Streamline .apc project convertsion script
This Python script generates an ARM DS-5 Streamline .apc project based on gem5 run. To successfully convert, the gem5 runs needs to be run with the context-switch-based stats dump option enabled (The guest kernel also needs to be patched to allow gem5 interrogate its task information.) See help for more information. |
9898:2935441b0870 |
29-Sep-2013 |
Andreas Sandberg <andreas@sandberg.pp.se> |
x86: Add support for m5ops through a memory mapped interface
In order to support m5ops in virtualized environments, we need to use a memory mapped interface. This changeset adds support for that by reserving 0xFFFF0000-0xFFFFFFFF and mapping those to the generic IPR interface for m5ops. The mapping is done in the X86ISA::TLB::finalizePhysical() which means that it just works for all of the CPU models, including virtualized ones. |
9850:87d6b41749e9 |
04-Sep-2013 |
Andreas Hansson <andreas.hansson@arm.com> |
arch: Resurrect the NOISA build target and rename it NULL
This patch makes it possible to once again build gem5 without any ISA. The main purpose is to enable work around the interconnect and memory system without having to build any CPU models or device models.
The regress script is updated to include the NULL ISA target. Currently no regressions make use of it, but all the testers could (and perhaps should) transition to it. |
9843:1ddfb0679c75 |
21-Aug-2013 |
Steve Reinhardt <steve.reinhardt@amd.com> |
util/regress: set --no-lto on regressions
See comment for motivation. |
9821:afa9f7f4ee46 |
14-Aug-2013 |
Anthony Gutierrez <atgutier@umich.edu> |
arm: use -march when compiling m5op_arm.S
Using arm-linux-gnueabi-gcc 4.7.3-1ubuntu1 on Ubuntu 13.04 to compiled the m5 binary yields the error:
m5op_arm.S: Assembler messages: m5op_arm.S:85: Error: selected processor does not support ARM mode `bxj lr'
For each of of the SIMPLE_OPs. Apparently, this compiler doesn't like the interworking of these code types for the default arch. Adding -march=armv7-a makes it compile. Another alternative that I found to work is replacing the bxj lr instruction with mov pc, lr, but I don't know how that affects the KVM stuff and if bxj is needed. |
9818:ebd7d3e04b5f |
07-Aug-2013 |
Nilay Vaish <nilay@cs.wisc.edu> |
x86: add tlb checkpointing This patch adds checkpointing support to x86 tlb. It upgrades the cpt_upgrader.py script so that previously created checkpoints can be updated. It moves the checkpoint version to 6. |
9706:fbb19814adbc |
30-May-2013 |
Andreas Hansson <andreas.hansson@arm.com> |
util: Auto generate the packet proto definitions
This patch simplifies the usage of the packet trace encoder/decoder by attempting to automatically generating the packet proto definitions in case they cannot be found. |
9687:22e9258c06bb |
14-May-2013 |
Andreas Sandberg <andreas@sandberg.pp.se> |
arm: Add support for the m5fail pseudo-op |
9686:13a4419f09c5 |
14-May-2013 |
Andreas Sandberg <andreas@sandberg.pp.se> |
arm: Fix compilation error in m5 utility
Changeset 5ca6098b9560 accidentally broke the m5 utility. This changeset adds the missing co-processor call used to trigger the pseudo-op in ARM mode and fixes an alignment issue that caused some pseudo-ops to leave thumb mode. |
9685:eb075b2b925a |
07-May-2013 |
Andreas Sandberg <andreas@sandberg.pp.se> |
arm: Make libm5 a dependency of the m5 utility
The m5 utility wasn't relinked properly since libm5.a wasn't a dependency of the utility. This changeset addresses that issue. |
9660:5ca6098b9560 |
22-Apr-2013 |
Andreas Sandberg <Andreas.Sandberg@ARM.com> |
kvm: Add support for pseudo-ops on ARM
This changeset adds support for m5 pseudo-ops when running in kvm-mode. Unfortunately, we can't trap the normal gem5 co-processor entry in KVM (it doesn't seem to be possible to trap accesses to non-existing co-processors). We therefore use BZJ instructions to cause a trap from virtualized mode into gem5. The BZJ instruction is becomes a normal branch to the gem5 fallback code when running in simulated mode, which means that this patch does not need to change the ARM ISA-specific code.
Note: This requires a patched host kernel. |
9617:c503acb59e51 |
26-Mar-2013 |
Andreas Hansson <andreas.hansson@arm.com> |
util: Add a utility script for decoding packet traces
This patch adds a simple Python script that reads the protobuf-encoded packet traces (not gzipped), and prints them to an ASCII trace file.
The script can also be used as a template for other packet output formats. |
9616:e37965a0b604 |
26-Mar-2013 |
Andreas Hansson <andreas.hansson@arm.com> |
util: Add a utility script for encoding packet traces
This patch adds a simple Python script that reads a simple ASCII trace format and encodes it as protobuf output compatible with the traffic generator.
The script can also be used as a template for other packet input formats that should be converted to the gem5 packet protobuf format. |
9607:a54a4ef0f51d |
25-Mar-2013 |
Andreas Sandberg <andreas@sandberg.pp.se> |
x86: Revert [02321b16685f] which breaks m5ops on x86
Changeset 02321b16685f added m5_writefile to m5op_x86.S a second time, which causes a compilation error on when compiling for x86. This changeset reverts that changeset and fixes the error. |
9527:68154bc0e0ea |
15-Feb-2013 |
Matt Horsnell <Matt.Horsnell@arm.com> |
o3: fix tick used for renaming and issue with range selection
Fixes the tick used from rename: - previously this gathered the tick on leaving rename which was always 1 less than the dispatch. This conflated the decode ticks when back pressure built in the pipeline. - now picks up tick on entry.
Added --store_completions flag: - will additionally display the store completion tail in the viewer. - this highlights periods when large numbers of stores are outstanding (>16 LSQ blocking)
Allows selection by tick range (previously this caused an infinite loop) |
9458:02321b16685f |
08-Jan-2013 |
LluĂs Vilanova <vilanova@ac.upc.edu> |
util: add writefile to m5 util program for x86 |
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. |
9451:f56816facd25 |
07-Jan-2013 |
Andreas Sandberg <Andreas.Sandberg@ARM.com> |
util: Fix stack corruption in the m5 util
The number of arguments specified when calling parse_int_args() in do_exit() is incorrect. This leads to stack corruption since it causes writes past the end of the ints array. |
9431:8bb372a49e1b |
07-Jan-2013 |
Andreas Sandberg <Andreas.Sandberg@ARM.com> |
arm: Remove the register mapping hack used when copying TCs
In order to see all registers independent of the current CPU mode, the ARM architecture model uses the magic MISCREG_CPSR_MODE register to change the register mappings without actually updating the CPU mode. This hack is no longer needed since the thread context now provides a flat interface to the register file. This patch replaces the CPSR_MODE hack with the flat register interface. |
9425:a24092160ec7 |
07-Jan-2013 |
Andreas Sandberg <Andreas.Sandberg@ARM.com> |
arch: Move the ISA object to a separate section
After making the ISA an independent SimObject, it is serialized automatically by the Python world. Previously, this just resulted in an empty ISA section. This patch moves the contents of the ISA to that section and removes the explicit ISA serialization from the thread contexts, which makes it behave like a normal SimObject during serialization.
Note: This patch breaks checkpoint backwards compatibility! Use the cpt_upgrader.py utility to upgrade old checkpoints to the new format. |
9351:4229aedfdd09 |
03-Nov-2012 |
Lluis Vilanova <vilanova@ac.upc.edu> |
x86, util: add m5_writefile to m5op_x86.S
Committed by: Nilay Vaish |
9333:b037944e4908 |
08-Oct-2012 |
James Clarkson <james.clarkson@arm.com> |
m5: Expose m5 pseudo-instructions to C/C++ via a static library
Updated the util/m5/Makefile.arm so that m5op_arm.S is used to create a static library - libm5.a. Allowing users to insert m5 psuedo-instructions into their applications for fine-grained checkpointing, switching cpus or dumping statistics. e.g.
#include <m5op.h>
void foo(){ ... m5_reset_stats(<delay>,<period>) m5_work_begin(<workid>,<threadid>); ... m5_work_end(<workid>,<threadid>); m5_dump_stats(<delay>,<period>); } |
9332:ae2a5329ce96 |
02-Nov-2012 |
Dam Sunwoo <dam.sunwoo@arm.com> |
ARM: dump stats and process info on context switches
This patch enables dumping statistics and Linux process information on context switch boundaries (__switch_to() calls) that are used for Streamline integration (a graphical statistics viewer from ARM). |
9293:df7c3f99ebca |
15-Oct-2012 |
Andreas Hansson <andreas.hansson@arm.com> |
Mem: Separate the host and guest views of memory backing store
This patch moves all the memory backing store operations from the independent memory controllers to the global physical memory. The main reason for this patch is to allow address striping in a future set of patches, but at this point it already provides some useful functionality in that it is now possible to change the number of memory controllers and their address mapping in combination with checkpointing. Thus, the host and guest view of the memory backing store are now completely separate.
With this patch, the individual memory controllers are far simpler as all responsibility for serializing/unserializing is moved to the physical memory. Currently, the functionality is more or less moved from AbstractMemory to PhysicalMemory without any major changes. However, in a future patch the physical memory will also resolve any ranges that are interleaved and properly assign the backing store to the memory controllers, and keep the host memory as a single contigous chunk per address range.
Functionality for future extensions which involve CPU virtualization also enable the host to get pointers to the backing store. |
9257:04dfa1898882 |
25-Sep-2012 |
Sascha Bischoff <sascha.bischoff@arm.com> |
Util: Added script to semantically diff two config.ini files
This script (util/diff_config.pl) takes two config.ini files and compares them. It highlights value changes, as well as displaying which parts are unique to a specific config.ini file. This is useful when trying to replicate an earlier experiment and when trying to make small changes to an existing configuration. |
9252:f350fac86d0f |
25-Sep-2012 |
Djordje Kovacevic <djordje.kovacevic@arm.com> |
CPU: Add abandoned instructions to O3 Pipe Viewer |
9192:0fd64ccb4c93 |
07-Sep-2012 |
Ali Saidi <Ali.Saidi@ARM.com> |
ARM: Fix the compiler and platform identification for building on ARM. |
9191:54423643dd88 |
07-Sep-2012 |
Ali Saidi <Ali.Saidi@ARM.com> |
ARM: fix m5 op binary to properly convert 64bit operands |
9188:b91e4bec7a76 |
07-Sep-2012 |
Djordje Kovacevic <Djordje.Kovacevic@arm.com> |
CPU: O3-PipeView.py doesn't display the end of timelines. Insts' timeline that stretches over multiple lines doesn't always get printed. |
9135:64d4c9d8a384 |
27-Jul-2012 |
Nathanael Premillieu <npremill@irisa.fr> |
util: Fix issues with style checker. |
9081:bbb0132f0369 |
29-Jun-2012 |
Matt Evans <matt.evans@arm.com> |
Style: Make style.py's invalid warning print which file caused the infraction. |
9056:0e38b529c387 |
05-Jun-2012 |
Ali Saidi <Ali.Saidi@ARM.com> |
cpt: update some comments in the checkpoint migration script |
9048:950298f29140 |
05-Jun-2012 |
Ali Saidi <Ali.Saidi@ARM.com> |
sim: Provide a framework for detecting out of data checkpoints and migrating them. |
8987:a5add07e066c |
10-May-2012 |
Ali Saidi <Ali.Saidi@ARM.com> |
ARM: Update m5op assembly for thumb compilation. |
8969:b9f4e3884951 |
26-Apr-2012 |
Nilay Vaish <nilay@cs.wisc.edu> |
util/regress: Add the missing comma in the list of builds |
8968:6d11b01e2c53 |
25-Apr-2012 |
Nilay Vaish <nilay@cs.wisc.edu> |
Regression: Add a test for x86 timing full system ruby simulation |
8816:c80758736323 |
07-Feb-2012 |
Gabe Black <gblack@eecs.umich.edu> |
m5=>gem5: Make the regression script build gem5.* instead of m5.* |
8814:f0fcb53bed25 |
05-Feb-2012 |
Gabe Black <gblack@eecs.umich.edu> |
Regressions: Fix the regress script when "all" is used.
When the "all" test is specified, the "tests" list should have two elements in it, "quick" and "long", not a single element "quick,long". The later would be appropriate as the default for one of the command line options which are split at commas, but at that point "tests" should already be a list. |
8811:be4990a2c764 |
02-Feb-2012 |
Andreas Hansson <andreas.hansson@arm.com> |
Regression: Update the regress script after SE/FS merge
This patch updates the regress script to reflect the merge of the SE/FS builds and the new structure of the test directories. It adds a "mode" flag to the script, that defaults to both se and fs. |
8734:79592b2b1d55 |
31-Jan-2012 |
Dam Sunwoo <dam.sunwoo@arm.com> |
util: implements "writefile" gem5 op to export file from guest to host filesystem
Usage: m5 writefile <filename>
File will be created in the gem5 output folder with the identical filename. Implementation is largely based on the existing "readfile" functionality. Currently does not support exporting of folders. |
8680:508bbec99e58 |
11-Jan-2012 |
Nathan Binkert <nate@binkert.org> |
hgfilesize: skip files that have been removed |
8659:78f27ef5e919 |
09-Jan-2012 |
Ali Saidi <Ali.Saidi@ARM.com> |
ARM: Add support for initparam m5 op |
8652:104bd212ae41 |
06-Jan-2012 |
Nathan Binkert <nate@binkert.org> |
hooks: Add a hook to limit the size of any individual file |
8583:d182a475a668 |
24-Sep-2011 |
Steve Reinhardt <steve.reinhardt@amd.com> |
style.py: don't die on empty files |
8547:5979b029bbb4 |
13-Sep-2011 |
Prakash Ramrakhyani <prakash.ramrakhyani@arm.com> |
gem5ops: Implement Java JNI for gem5Ops
These ops allow gem5 ops to be called from within java programs like the following: import jni.gem5Op;
public class HelloWorld {
public static void main(String[] args) { gem5Op gem5 = new gem5Op(); System.out.println("Rpns0:" + gem5.rpns()); System.out.println("Rpns1:" + gem5.rpns()); }
static { System.loadLibrary("gem5OpJni"); } }
When building you need to make sure classpath include gem5OpJni.jar: javac -classpath $CLASSPATH:/path/to/gem5OpJni.jar HelloWorld.java
and when running you need to make sure both the java and library path are set: java -classpath $CLASSPATH:/path/to/gem5OpJni.jar -Djava.library.path=/path/to/libgem5OpJni.so HelloWorld |
8471:18e560ba1539 |
15-Jul-2011 |
Giacomo Gabrielli <Giacomo.Gabrielli@arm.com> |
O3: Create a pipeline activity viewer for the O3 CPU model.
Implemented a pipeline activity viewer as a python script (util/o3-pipeview.py) and modified O3 code base to support an extra trace flag (O3PipeView) for generating traces to be used as inputs by the tool. |
8445:1b4b9c05ad2b |
03-Jul-2011 |
Gabe Black <gblack@eecs.umich.edu> |
tracediff: Check for --debug-flags now instead of --trace-flags. |
8355:89071b71691e |
17-Jun-2011 |
Ali Saidi <Ali.Saidi@ARM.com> |
ARM: Cleanup m5ops usage of r0 and r1 a bit. |
8354:26be660e365a |
17-Jun-2011 |
Gedare Bloom <gedare@gwmail.gwu.edu> |
ARM: Add m5ops and related support for workbegin() and workend() to ARM ISA. |
8333:c1a07ecb6619 |
02-Jun-2011 |
Nathan Binkert <nate@binkert.org> |
copyright: Add code for finding all copyright blocks and create a COPYING file
The end of the COPYING file was generated with: % python ./util/find_copyrights.py configs src system tests util
Update -C command line option to spit out COPYING file |
8326:8b0eee09deaf |
25-May-2011 |
Nathan Binkert <nate@binkert.org> |
style: Make the style hook work in directories other than the root. |
8319:6a49ac49fd67 |
23-May-2011 |
Steve Reinhardt <steve.reinhardt@amd.com> |
util/regress: make default action a more thorough regression
Changed the --variants option to --test-variants and added a new --compile-variants option for variants that are only compiled (not tested). The former still defaults to 'opt' and the latter defaults to 'debug,fast'.
Also changed the behavior when no tests are specified from just compiling to running the 'quick' tests.
As a result, a plain 'util/regress' invocation will now compile (but not test) the debug and fast builds, and compile and run the quick regressions on the opt build. This should be the default set of tests that are run before committing. Since the nightly regressions use this same script, this will also be the new nightly regression behavior.
Test-only regressions can still be done by setting --compile=''. Compile-only regressions can be done by setting --test=''. |
8271:1d3733d3acee |
04-May-2011 |
Ali Saidi <Ali.Saidi@ARM.com> |
ARM: Add vfpv3 support to native trace. |
8265:7939dd0c4ff2 |
29-Apr-2011 |
Gabe Black <gblack@eecs.umich.edu> |
Util: Replace mkblankimage.sh with the new gem5img.py.
This change replaces the mkblankimage.sh script, used for creating new disk images, with a new gem5img.py script. The new version is written in python instead of bash, takes its parameters from command line arguments instead of prompting for them, and finds a free loopback device dynamically instead of hardcoding /dev/loop1. The file system used is now optionally configurable, and the blank image is filled by a "hole" left by lseek and write instead of literally filling it with zeroes.
The functionality of the new script is broken into subcommands "init", "mount", "umount", "new", "partition", and "format". "init" creates a new file of the appropriate size, partitions it, and then formats the first (and only) new parition. "mount" attaches a new loopback device to the first parition of the image file and mounts it to the specified mount point. "umount" unmounts the specified mount point and identifies and cleans up the underlying loopback device. "new", "partition", and "format" are the individual stages of "init" but broken out so they can be run individually. That's so an image can be reinitialized in place if needed.
Two features of the original script are being dropped. The first is the ability to specify a source directory to copy into the new file system. The second is the ability to specify a list of commands to run which are expected to (but not required to) update the permissions of the files in the new fs. Both of these seem easy enough to do manually, especially given the "mount" and "umount" commands, that removing them would meaningfully simplify the script without making it less useful. |
8244:95b2bf400ee4 |
20-Apr-2011 |
Steve Reinhardt <steve.reinhardt@amd.com> |
Change default regression build from 'fast' to 'opt' |
8238:d8ec0a7b3f0c |
17-Apr-2011 |
Nathan Binkert <nate@binkert.org> |
style: fix all_regions code and remove bogus region type |
8237:b83e07b4541d |
17-Apr-2011 |
Nathan Binkert <nate@binkert.org> |
style: remove extra debugging print |
8236:a660cabc3ea6 |
17-Apr-2011 |
Nathan Binkert <nate@binkert.org> |
file_types: Make code work in Python 2.4 |
8229:78bf55f23338 |
15-Apr-2011 |
Nathan Binkert <nate@binkert.org> |
includes: sort all includes |
8228:59d3bfa85f16 |
15-Apr-2011 |
Nathan Binkert <nate@binkert.org> |
style: add sort_includes to the style hook |
8227:f3aaa2470b5a |
15-Apr-2011 |
Nathan Binkert <nate@binkert.org> |
style: move style verifiers into classes |
8226:bca419132437 |
15-Apr-2011 |
Nathan Binkert <nate@binkert.org> |
style: add a user interface wrapper class makes things work both with mercurial and stand alone with stdio |
8225:ae1182b73fdb |
15-Apr-2011 |
Nathan Binkert <nate@binkert.org> |
util: python implementation of a routine that will sort includes I didn't realize that the perl version existed when I started this, this version has a lot more features than the previous one since it will sort and separate python, system, and m5 headers in separate groups, it will remove duplicates, it will also convert c headers to stl headers |
8218:a1b68c63c754 |
13-Apr-2011 |
Nathan Binkert <nate@binkert.org> |
util: fix the language type function |
8166:c40d598146ec |
20-Mar-2011 |
Lisa Hsu <Lisa.Hsu@amd.com> |
util: update aggregator to handle x86 checkpoints. Also, make update to understand some of the newer serialized variables |
8127:e64347d17555 |
12-Mar-2011 |
Gabe Black <gblack@eecs.umich.edu> |
Regressions: Make X86_FS run automatically. |
8120:e4257cde2d79 |
04-Mar-2011 |
Gabe Black <gblack@eecs.umich.edu> |
SCons: Turn some scons variables into command line options. |
8118:92229cb0cee9 |
03-Mar-2011 |
Gabe Black <gblack@eecs.umich.edu> |
Statetrace: Stub out the missing i386 version of sendState. |
8117:2eec3c58e50e |
03-Mar-2011 |
Gabe Black <gblack@eecs.umich.edu> |
Statetrace: Rename i386 to i686. |
8116:7739ad28c365 |
03-Mar-2011 |
Gabe Black <gblack@eecs.umich.edu> |
Statetrace: Fix the i686 detection macro. |
8115:bfbec82af250 |
03-Mar-2011 |
Gabe Black <gblack@eecs.umich.edu> |
Statetrace: Use sys/user.h instead of linux/user.h. |
8114:04b349c6dbf9 |
03-Mar-2011 |
Gabe Black <gblack@eecs.umich.edu> |
Statetrace: Tweak the help for the -nt option. |
8113:5c7c804e0645 |
03-Mar-2011 |
Gabe Black <gblack@eecs.umich.edu> |
Statetrace: Accomodate cross compiling statetrace with scons. |
8112:70fffada3270 |
03-Mar-2011 |
Gabe Black <gblack@eecs.umich.edu> |
Statetrace: Convert the build to scons. |
8111:206dbeb6a6ff |
03-Mar-2011 |
Gabe Black <gblack@eecs.umich.edu> |
Statetrace: Allow the user to override CXX. |
8110:8260f199f7d8 |
03-Mar-2011 |
Gabe Black <gblack@eecs.umich.edu> |
Statetrace: Get rid of explicit register name handling. |
8109:8796e77f2dd6 |
03-Mar-2011 |
Gabe Black <gblack@eecs.umich.edu> |
Statetrace: Kill the printer functionality in statetrace. |
8108:2195c1847f09 |
03-Mar-2011 |
Gabe Black <gblack@eecs.umich.edu> |
Statetrace: Clean up style. |
8053:e6ce478c05d3 |
22-Feb-2011 |
Brad Beckmann <Brad.Beckmann@amd.com> |
m5: merged in hammer fix |
8048:bb35cb393bbb |
18-Feb-2011 |
Korey Sewell <ksewell@umich.edu> |
m5: merge inorder/release-notes/make_release changes |
8031:96bde0910197 |
16-Feb-2011 |
Nathan Binkert <nate@binkert.org> |
merge alpha system files into tree |
7976:c6ba129c2764 |
16-Feb-2011 |
Gabe Black <gblack@eecs.umich.edu> |
Util: Get rid of the make_release.py script.
Since we're not doing releases any more we don't really need this script. If we need it in the future, we can resurrect it from the history. |
7914:eee5bb0fb8ea |
07-Feb-2011 |
Brad Beckmann <Brad.Beckmann@amd.com> |
m5: added work completed monitoring support |
7844:7902269340f8 |
18-Jan-2011 |
Ali Saidi <Ali.Saidi@ARM.com> |
mkblankimage: bash != sh on many systems and this script needs bash |
7834:7107a2f3e53a |
13-Jan-2011 |
Gabe Black <gblack@eecs.umich.edu> |
Style checker: Fix a couple bugs in style.py. |
7828:817c662677d1 |
10-Jan-2011 |
Nathan Binkert <nate@binkert.org> |
style: prevent the style hook from aborting uncleanly because of an exception |
7827:49b7d40ee88a |
10-Jan-2011 |
Nathan Binkert <nate@binkert.org> |
style: clean up style hook code a bit
I've renamed the check_whitespace operation to check_style. You're going to need to change your .hg/hgrc file. While you're at it, add a pre-qrefresh hook please. |
7807:15553b536bd6 |
30-Dec-2010 |
Nathan Binkert <nate@binkert.org> |
style: make style hook work with pre-qrefresh and update to use new code clean up the code a little bit while we're at it.
I recommend that everyone adds the pre-qrefresh hook below since it will make qref run the style hook and not just commit/qpush
[extensions] style = <m5 path>/util/style.py
[hooks] pretxncommit.style = python:style.check_whitespace pre-qrefresh.style = python:style.check_whitespace |
7773:0c67ea5dbb7e |
22-Nov-2010 |
Gabe Black <gblack@eecs.umich.edu> |
X86: Remove reserved* from the m5 utility program for x86. |
7735:a1a85250e897 |
08-Nov-2010 |
Ali Saidi <Ali.Saidi@ARM.com> |
ARM: Add full-system regressions |
7732:a2c660de7787 |
08-Nov-2010 |
Ali Saidi <Ali.Saidi@ARM.com> |
ARM: Add support for M5 ops in the ARM ISA |
7517:b69cc0fd934d |
12-Aug-2010 |
Joel Hestness <hestness@cs.utexas.edu> |
util/m5/m5.c: ensure readfile() buffer pages are in page table (and marked dirty, in case that matters) by touching them beforehand |
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. |
7443:cbedf338fc44 |
03-Jun-2010 |
Lisa Hsu <Lisa.Hsu@amd.com> |
utils: checkpoint aggregator: some physmem files are too big to read at once, break it up into reading one page at a time. Also, avoid redoing a aggregating a checkpoint that's already done. |
7414:0a05aa495903 |
02-Jun-2010 |
Ali Saidi <Ali.Saidi@ARM.com> |
ARM: Fixup native trace support and add some v7/recent stack code |
7071:68195a20503b |
02-May-2010 |
Gabe Black <gblack@eecs.umich.edu> |
Statetrace: Fix compile problems with the AMD64 version of statetrace. |
7047:04d988a19ae9 |
23-Mar-2010 |
Nathan Binkert <nate@binkert.org> |
regress: add some new options add -n/--no-exec which doesn't execute scons, but just prints the command line add -j0 which tries to calculate how many cpus you have add -D/--build-dir to specify a build directory other than ./build |
6928:5bd33f7c26ea |
29-Jan-2010 |
Brad Beckmann <Brad.Beckmann@amd.com> |
m5: Regression Tester Update
This patch includes the necessary regression updates to test the new ruby configuration system. The patch includes support for multiple ruby protocols and adds the ruby random tester. The patch removes atomic mode test for ruby since ruby does not support atomic mode acceses. These tests can be added back in when ruby supports atomic mode for real. |
6868:c7eb55c68529 |
23-Jan-2010 |
Nathan Binkert <nate@binkert.org> |
style_hook: Fix the style hook Re-enable it and update it for more modern versions of mercurial. |
6846:60e0df8086f0 |
17-Sep-2009 |
Polina Dudnik <pdudnik@cs.wisc.edu> |
Functionality migrated to sequencer. |
6825:104115ebc206 |
21-Aug-2009 |
pdudnik@gmail.com |
[mq]: first_patch |
6821:d6284ec9bdf9 |
20-Jan-2010 |
Lisa Hsu <Lisa.Hsu@amd.com> |
copyrights: add copyright info to the files I added. checkpoint-aggregator.py was written at UM so I added a UM copyright, agg_se.py was written at AMD so I added the AMD copyright. |
6820:2980bd04e6df |
20-Jan-2010 |
Lisa Hsu <Lisa.Hsu@amd.com> |
util: do checkpoint aggregation more cleanly, fix last changeset. 1) Move alpha-specific code out of page_table.cc:serialize(). 2) Begin serializing M5_pid and unserializing it, but adding an function to do optional paramIn so that old checkpoints don't need to be fixed up. 3) Fix up alpha startup code so that the unserialized M5_pid value is properly written to DTB_IPR_ASN. 4) Fix the memory unserialize that I forgot somehow in the last changeset. 5) Add in an agg_se.py to handle aggregated checkpoints. --bench foo-bar plus positional arguments foo bar are the only changes in usage from se.py. Note this aggregation stuff has only been tested for Alpha and nothing else, though it should take a very minimal amount of work to get it to work with another ISA. |
6818:5a0e3a283826 |
18-Jan-2010 |
Lisa Hsu <Lisa.Hsu@amd.com> |
util: make a generic checkpoint aggregator that can aggregate different cpts into one multi-programmed cpt. Make minor changes to serialization/unserialization to get it to work properly. Note that checkpoints were made with a comment at the beginning with // - this must be changed to ## to work properly with the python config parser in the aggregator. |
6699:b61018e8d169 |
28-Oct-2009 |
Nathan Binkert <nate@binkert.org> |
regress: add POWER to regressions |
6668:e0f3287fc680 |
26-Sep-2009 |
Steve Reinhardt <steve.reinhardt@amd.com> |
rundiff: Don't flush stdout until after postcontext is printed. |
6657:ef5fae93a3b2 |
22-Sep-2009 |
Nathan Binkert <nate@binkert.org> |
slicc: Pure python implementation of slicc. This is simply a translation of the C++ slicc into python with very minimal reorganization of the code. The output can be verified as nearly identical by doing a "diff -wBur".
Slicc can easily be run manually by using util/slicc |
6422:b35ef789e6f6 |
29-Jul-2009 |
Gabe Black <gblack@eecs.umich.edu> |
Statetrace: Make sure the current state is loaded to print the initial stack frame. The early call to child->step() was removed earlier because it confused the new differences-only protocol ARM sendState() was using. It's necessary that that gets called at least once before attempting to print the initial stack frame, though, because otherwise statetrace doesn't know what the stack pointer is. By putting the first call to child->step() in a common spot, both needs are met. |
6417:fbc8d1e996d9 |
29-Jul-2009 |
Gabe Black <gblack@eecs.umich.edu> |
ARM: Make sure the target process doesn't run away from statetrace. |
6411:cf69f61d8f24 |
27-Jul-2009 |
Gabe Black <gblack@eecs.umich.edu> |
ARM: Only send information that changed between statetrace and M5. |
6408:f61a3b66a5f5 |
27-Jul-2009 |
Gabe Black <gblack@eecs.umich.edu> |
imported patch statetracehost.patch |
6407:10f05e881153 |
27-Jul-2009 |
Ali Saidi <saidi@eecs.umich.edu> |
ARM: Add ARM support to statetrace. |
6406:91d6a6c9a66b |
27-Jul-2009 |
Gabe Black <gblack@eecs.umich.edu> |
Statetrace: Fix up headers. |
6277:f67c9be3cd57 |
02-Jul-2009 |
Nathan Binkert <nate@binkert.org> |
stats: fix usage of jobfile |
6257:1ab29409ee29 |
23-Jun-2009 |
Gabe Black <gblack@eecs.umich.edu> |
makerelease: Don't hide x86 any more. |
6256:5e8d93b5d71a |
23-Jun-2009 |
Gabe Black <gblack@eecs.umich.edu> |
Regressions: Build ARM_SE regressions by default. |
6219:0145a40f6b27 |
23-May-2009 |
Steve Reinhardt <steve.reinhardt@amd.com> |
util: mkblankimage.sh should be executable |
6216:2f4020838149 |
17-May-2009 |
Nathan Binkert <nate@binkert.org> |
includes: sort includes again |
6115:7c6971582cd4 |
21-Apr-2009 |
Steve Reinhardt <steve.reinhardt@amd.com> |
rundiff: flush stdout after each diff |
6021:6df0633d883b |
09-Apr-2009 |
Nathan Binkert <nate@binkert.org> |
style: fix style hook for some newer versions of mercurial. |
6020:0647c8b31a99 |
06-Apr-2009 |
Gabe Black <gblack@eecs.umich.edu> |
Merge ARM into the head. ARM will compile but may not actually work. |
5951:960caa92210d |
26-Feb-2009 |
Ali Saidi <saidi@eecs.umich.edu> |
CPA: Add m5ops for critical path annotation work. |
5808:baf5d5c96c68 |
24-Jan-2009 |
Nathan Binkert <nate@binkert.org> |
pseudo inst: Add new wake cpu instruction for sending a message to wake a cpu. It's instantaneous and so it's somewhat bogus, but it's a first step. |
5792:72c3f3e914c1 |
13-Jan-2009 |
Ali Saidi <saidi@eecs.umich.edu> |
Fix style hook for Mercurial >= 1.1 |
5790:9279812da5ee |
07-Jan-2009 |
Gabe Black <gblack@eecs.umich.edu> |
X86: Set up support for adding m5 pseudo insts to a binary. |
5757:c45e8cb7f4ea |
03-Dec-2008 |
Nathan Binkert <nate@binkert.org> |
Add the mkblankimage.sh utility to the utils directory. |
5755:8ef4ad572a6b |
03-Dec-2008 |
Nathan Binkert <nate@binkert.org> |
util/m5: Add a new function called pin to bind a program to a set of cores. This is not m5 specific and this currently only works in linux. |
5754:b50a557f93df |
03-Dec-2008 |
Nathan Binkert <nate@binkert.org> |
util/m5: reorganize code so it is easier to add operations |
5751:54cb03a1a577 |
17-Nov-2008 |
Steve Reinhardt <Steve.Reinhardt@amd.com> |
Minor tracediff bug fixes. |
5747:ffded3077c63 |
15-Nov-2008 |
Clint Smullen <cws3k@cs.virginia.edu> |
Remove the pointless, repository destroying assertion and just have the script check every line in the file if it cannot get context information. |
5741:323dac95e72c |
10-Nov-2008 |
Nathan Binkert <nate@binkert.org> |
pseudo inst: Add rpns (read processor nanoseconds) instruction. This instruction basically returns the number of nanoseconds that the CPU has been running. |
5725:61c838ecc225 |
06-Nov-2008 |
Steve Reinhardt <Steve.Reinhardt@amd.com> |
tracediff: add '#' support for sub-arg alternatives, '-n' param |
5580:6be5ac0eb1ea |
01-Oct-2008 |
Ali Saidi <saidi@eecs.umich.edu> |
Cleanup m5term changes with Nate's comments. |
5579:29cd33ac16cb |
01-Oct-2008 |
Ali Saidi <saidi@eecs.umich.edu> |
Make m5term use select() so OS X is happy. |
5543:3af77710f397 |
10-Sep-2008 |
Ali Saidi <saidi@eecs.umich.edu> |
style: Remove non-leading tabs everywhere they shouldn't be. Developers should configure their editors to not insert tabs |
5505:90d6811d5ea6 |
11-Jul-2008 |
Nathan Binkert <nate@binkert.org> |
m5ops: clean up the m5ops stuff. - insert warnings for deprecated m5ops - reserve opcodes for Ali's stuff - remove code for stuff that has been deprecated forever - simplify m5op_alpha |
5467:6d9df90d70d7 |
14-Jun-2008 |
Nathan Binkert <nate@binkert.org> |
python: Move various utility classes into a new m5.util package so they're all in the same place. This also involves having just one jobfile.py and moving it into the utils directory to avoid duplication. Lots of improvements to the utility as well. |
5465:4cff095bbf2b |
14-Jun-2008 |
Nathan Binkert <nate@binkert.org> |
Add hg commands for style check so you can check at times other than commit |
5356:16f57bce72d6 |
26-Feb-2008 |
Ali Saidi <saidi@eecs.umich.edu> |
Update make release, README, and RELEASE_NOTES for b5 |
5309:4d3a6e086488 |
11-Dec-2007 |
Steve Reinhardt <stever@gmail.com> |
Fix minor bug in util/style.py |
5277:70f84948b4f4 |
20-Nov-2007 |
Steve Reinhardt <stever@gmail.com> |
Might as well ship splash2 scripts since we get questions on the list. |
5247:fdbfa56f0b09 |
13-Nov-2007 |
Steve Reinhardt <stever@gmail.com> |
Add -k flag to util/regress. |
5212:00736ad602ed |
04-Nov-2007 |
Ali Saidi <saidi@eecs.umich.edu> |
RELEASE: A little more work on make_release.py |
5210:7f834384864b |
02-Nov-2007 |
Ali Saidi <saidi@eecs.umich.edu> |
RELEASE: Add dummy cpu to make SCons + Python 2.5 happy |
5209:f033c7dadbbd |
02-Nov-2007 |
Ali Saidi <saidi@eecs.umich.edu> |
RELEASE: remove insttest since we're not shipping the binary. |
5207:20c1f499cd08 |
01-Nov-2007 |
Ali Saidi <saidi@eecs.umich.edu> |
RELEASE: Grammer |
5206:3196b47f0168 |
01-Nov-2007 |
Ali Saidi <saidi@eecs.umich.edu> |
RELEASE: More changes to text |
5195:785a0c97365e |
31-Oct-2007 |
Ali Saidi <saidi@eecs.umich.edu> |
Release: fix make_release bug |
5194:28d638465c92 |
31-Oct-2007 |
Ali Saidi <saidi@eecs.umich.edu> |
RELEASE: Update make release for new release. |
5187:a0ff86ffdefe |
26-Oct-2007 |
Gabe Black <gblack@eecs.umich.edu> |
Regressions: Added X86_SE into the default list of builds. |
5147:a7b91336a3fc |
10-Oct-2007 |
Ali Saidi <saidi@eecs.umich.edu> |
Make qdo work with oar. I don't know if this catches every case, but it appears to be working at the moment. |
5049:16a0724434b8 |
05-Sep-2007 |
Gabe Black <gblack@eecs.umich.edu> |
X86/StateTrace: Make m5 and statetrace track mmx and xmm registers, and actually compare xmm. |
4984:1cbcac3f8144 |
21-Aug-2007 |
Nathan Binkert <nate@binkert.org> |
style: fix style hook when run from a repo subdir. Before this fix, the style hook would blow up when you did a qrefresh to add a new file, but executed the qrefresh from a repository sub directory. |
4980:b386c80ceb05 |
14-Aug-2007 |
Nathan Binkert <nate@binkert.org> |
style: Don't try to fix files that should be ignored. The style hook was ignoring new files, but processing all modified files. |
4976:eb1067b3060c |
13-Aug-2007 |
Ali Saidi <saidi@eecs.umich.edu> |
fixup bad hand merge |
4975:3fd697e69e06 |
13-Aug-2007 |
Ali Saidi <saidi@eecs.umich.edu> |
Merge IGNORE_STYLE change and my change. |
4961:31f1d816dc26 |
13-Aug-2007 |
Ali Saidi <saidi@eecs.umich.edu> |
Regression: See if using subprocess instead of os.system and erroring immediately will stop regression randomly hanging. |
4955:7093b1eba0a2 |
07-Aug-2007 |
Gabe Black <gblack@eecs.umich.edu> |
Statetrace: Make statetrace do string instructions all at once like m5 does. |
4949:302707329b7e |
12-Aug-2007 |
Nathan Binkert <nate@binkert.org> |
style: If IGNORE_STYLE=True is set on the scons command line, ignore style. Use this in the regress script to avoid issues with the checker. |
4897:41b298e2bed2 |
15-Jul-2007 |
Steve Reinhardt <stever@eecs.umich.edu> |
Add valgrind-suppressions file. |
4843:68739bf529d8 |
01-Aug-2007 |
Gabe Black <gblack@eecs.umich.edu> |
Statetrace: Make sure all the info block strings are printed. |
4795:0c5cf74ebb2d |
29-Jul-2007 |
Gabe Black <gblack@eecs.umich.edu> |
Statetrace: Make statetrace patch amd64 executables for true single stepping after system calls. Because of peculiarities in how system calls are returned from, single stepping executes some system calls and the instruction following them in a single step. Statetrace now patches the executable image when it detects a system call to force "correct" behavior, aka the appearance of stepping one instruction every single time. |
4794:88afe390fc0f |
29-Jul-2007 |
Gabe Black <gblack@eecs.umich.edu> |
Merge with head. style.py was also missing an argument in one call to modified_lines. |
4791:75f10dd85ec3 |
29-Jul-2007 |
Gabe Black <gblack@eecs.umich.edu> |
Statetrace: Print the correct address of auxiliary vectors. The address of the stackpointer proceeding the vector minus 8 should be minus 16. |
4784:e8b1f87b3a85 |
29-Jul-2007 |
Nathan Binkert <nate@binkert.org> |
Work around a mercurial bug in bdiff.blocks |
4782:50a634ae064a |
28-Jul-2007 |
Nathan Binkert <nate@binkert.org> |
style: fix stupid bugs |
4781:59a75bd0ddf4 |
28-Jul-2007 |
Nathan Binkert <nate@binkert.org> |
style: Check/Fix whitespace on SCons files |
4780:8bb94c8a70e7 |
28-Jul-2007 |
Gabe Black <gblack@eecs.umich.edu> |
Statetrace: Implement the AMD64 version of TraceChild. |
4779:a430e68a667e |
28-Jul-2007 |
Gabe Black <gblack@eecs.umich.edu> |
Statetrace: Fix indendation. Set the default hostname to "localhost" instead of my machine at UM. |
4778:33bf0282272a |
28-Jul-2007 |
Gabe Black <gblack@eecs.umich.edu> |
Statetrace: Fix compilation problem. |
4762:c94e103c83ad |
24-Jul-2007 |
Nathan Binkert <nate@binkert.org> |
Major changes to how SimObjects are created and initialized. Almost all creation and initialization now happens in python. Parameter objects are generated and initialized by python. The .ini file is now solely for debugging purposes and is not used in construction of the objects in any way. |
4761:4bb357497886 |
23-Jul-2007 |
Nathan Binkert <nate@binkert.org> |
Allow the fixwhite stuff to work when committing from a subdir |
4745:33b409225928 |
22-Jul-2007 |
Nathan Binkert <nate@binkert.org> |
do proper style checks for merged files |
4744:4a08d0c0f929 |
22-Jul-2007 |
Nathan Binkert <nate@binkert.org> |
fix the style fixing thing |
4678:fd95d7ddd1ee |
22-Jul-2007 |
Nathan Binkert <nate@binkert.org> |
Add code to turn the style stuff into a mercurial hook. Nag the user during compile if they have an hg cloned copy of M5, have mercurial installed, but don't have the style hook enabled. |
4484:7c56a6c9c265 |
26-May-2007 |
Nathan Binkert <binkertn@umich.edu> |
Get rid of GNU libelf and its autoconf nastiness and replace it with FreeBSD's implementation |
4411:61748375cb76 |
27-Apr-2007 |
Nathan Binkert <binkertn@umich.edu> |
Actually move the time two minutes into the future to make sure that we get the result that we want |
4408:7931e5da49db |
27-Apr-2007 |
Nathan Binkert <binkertn@umich.edu> |
Make sure that we don't rebuild libelf stuff that we don't have to since it doesn't work well on non-linux |
4387:0ea805f4234a |
18-Apr-2007 |
Nathan Binkert <binkertn@umich.edu> |
update the stuff that's removed from the SConscripts since things have moved around a bit |
4360:2e6e92279095 |
09-Apr-2007 |
Ali Saidi <saidi@eecs.umich.edu> |
add code to whack the intel gbe model from the relase.... it's not tested and it's configuration is a hack |
4245:02bbb73d86e6 |
15-Mar-2007 |
Gabe Black <gblack@eecs.umich.edu> |
Update to statetrace. This will break it, but I want to make sure it gets into mercurial. |
4193:1363532bc464 |
09-Mar-2007 |
Ali Saidi <saidi@eecs.umich.edu> |
fix regress... SPARC_FS may not be in the builds so check for it |
4169:b03a74834dfe |
07-Mar-2007 |
Ali Saidi <saidi@eecs.umich.edu> |
If we're running the quick tests, remove the SPARC_FS build since we don't have any quick SPARC_FS tests at the moment |
4130:a611c874376e |
03-Mar-2007 |
Ali Saidi <saidi@eecs.umich.edu> |
add a sparc fs regression
src/dev/sparc/iob.cc: don't warn on cpu restart/idle/halt stuff tests/SConscript: add sparc target in test Sconscript util/regress: Add SPARC_FS target in regress |
4125:a130ea200cf9 |
05-Mar-2007 |
Gabe Black <gblack@eecs.umich.edu> |
Fixing statetrace to work with 32 bit SPARC processes, as well as rewritting it's single stepping code. |
4105:ae9fb462e662 |
22-Feb-2007 |
Gabe Black <gblack@eecs.umich.edu> |
Merge zizzer.eecs.umich.edu:/bk/newmem into ahchoo.blinky.homelinux.org:/home/gblack/m5/newmem |
4098:9b57d3d6af2a |
24-Feb-2007 |
Ali Saidi <saidi@eecs.umich.edu> |
make m5 readfile work on solaris... we can have a solaris regression soon!
src/arch/sparc/isa/decoder.isa: add readfile and break to sparc decoder src/arch/sparc/isa/operands.isa: fix O0-O5 operands registers util/m5/Makefile.sparc: Make sparc makefile compile a 64bit binary util/m5/m5.c: readfile was in here twice, once will be sufficient I think util/m5/m5op_sparc.S: implement readfile and debugbreak |
4091:e9d669b2d6b1 |
21-Feb-2007 |
Ali Saidi <saidi@eecs.umich.edu> |
Merge zizzer:/bk/newmem into zeep.pool:/z/saidi/work/m5.newmem |
4090:08bd6439b907 |
21-Feb-2007 |
Ali Saidi <saidi@eecs.umich.edu> |
add pseduo instruction support for sparc
util/m5/Makefile.alpha: Clean up to make it a bit easier to muck with util/m5/Makefile.alpha: Make the makefile more reasonable util/m5/Makefile.alpha: Remove authors from copyright. util/m5/Makefile.alpha: Updated Authors from bk prs info util/m5/Makefile.alpha: bk cp Makefile Makefile.alpha src/arch/sparc/tlb.cc: Clean up the cache code a little bit and make sure the uncacbale bit is set when appropriate src/arch/alpha/isa/decoder.isa: src/sim/pseudo_inst.cc: src/sim/pseudo_inst.hh: Rename AlphaPseudo -> PseudoInst since it's all generic src/arch/sparc/isa/bitfields.isa: src/arch/sparc/isa/decoder.isa: src/arch/sparc/isa/includes.isa: src/arch/sparc/isa/operands.isa: Add support for pseudo instructions in sparc util/m5/Makefile.alpha: util/m5/Makefile.sparc: split off alpha make file and sparc make file for m5 app util/m5/m5.c: ivle and ivlb aren't used anymore util/m5/m5op.h: stdint seems like a more generic better fit here util/m5/m5op_alpha.S: move the op ids into their own header file since we can share them between sparc and alpha |
4018:77a084a042bb |
06-Feb-2007 |
Steve Reinhardt <stever@eecs.umich.edu> |
Use perl FindBin package to set path to rundiff to the directory where tracediff is. |
3855:e680b27c19cc |
17-Dec-2006 |
Nathan Binkert <binkertn@umich.edu> |
Nate's utility for compiling m5 |
3854:1fe852cbb6d1 |
17-Dec-2006 |
Nathan Binkert <binkertn@umich.edu> |
Utilities for doing a format check for some elements of proper m5 style and fixing whitespace. For whitespace, any tabs in leading whitespace on a line are converted to spaces, and any trailing whitespace is removed. |
3845:77de58af24f0 |
15-Dec-2006 |
Lisa Hsu <hsul@eecs.umich.edu> |
Merge zizzer:/bk/sparcfs into zed.eecs.umich.edu:/z/hsul/work/sparc/m5 |
3842:031cfdeec2b6 |
13-Dec-2006 |
Lisa Hsu <hsul@eecs.umich.edu> |
Merge zizzer:/bk/sparcfs into zed.eecs.umich.edu:/z/hsul/work/sparc/m5 |
3841:9fe36a649632 |
15-Dec-2006 |
Lisa Hsu <hsul@eecs.umich.edu> |
Merge zizzer:/bk/sparcfs into zed.eecs.umich.edu:/z/hsul/work/m5/newmem |
3829:6612f906efd5 |
12-Dec-2006 |
Lisa Hsu <hsul@eecs.umich.edu> |
Merge zizzer:/bk/newmem into zed.eecs.umich.edu:/z/hsul/work/sparc/m5 |
3778:ac52cbef744c |
06-Dec-2006 |
Gabe Black <gblack@eecs.umich.edu> |
Merge zizzer:/bk/newmem into zower.eecs.umich.edu:/eecshome/m5/newmem
src/cpu/o3/commit_impl.hh: Hand Merge |
3734:5eb062f81950 |
12-Dec-2006 |
Steve Reinhardt <stever@eecs.umich.edu> |
If no tests are specified for regression, just build the binaries (instead of complaining and exiting). |
3727:7e3511898306 |
10-Dec-2006 |
Steve Reinhardt <stever@eecs.umich.edu> |
Merge zizzer.eecs.umich.edu:/z/stever/bk/newmem-cache2 into zizzer.eecs.umich.edu:/z/stever/bk/newmem-cache3 |
3725:16980dd7d58f |
10-Dec-2006 |
Steve Reinhardt <stever@eecs.umich.edu> |
Add '-j' option directly to regress script (passed to scons). |
3709:cc18eeefd07e |
07-Dec-2006 |
Steve Reinhardt <stever@eecs.umich.edu> |
Change detault regression build from opt to fast. |
3704:e56d4e8a66eb |
02-Dec-2006 |
Steve Reinhardt <stever@eecs.umich.edu> |
Merge zizzer.eecs.umich.edu:/bk/newmem into vm1.(none):/home/stever/bk/newmem-head |
3703:fd40ba40aa78 |
29-Nov-2006 |
Steve Reinhardt <stever@eecs.umich.edu> |
cscope-find.py: Write directly to 'cscope.files' and run 'cscope -b' . Now this script does everything automatically. cscope-index.py: Rename: util/cscope-find.py -> util/cscope-index.py
util/cscope-find.py: Write directly to 'cscope.files' and run 'cscope -b' . Now this script does everything automatically. |
3699:eccf20074a01 |
03-Dec-2006 |
Steve Reinhardt <stever@eecs.umich.edu> |
Delete src/oldmem.
util/make_release.py: src/oldmem gone from repo, no need to delete here. |
3696:6cfd5c50f8a3 |
02-Dec-2006 |
Nathan Binkert <binkertn@umich.edu> |
don't blow away the whole destination directory |
3689:9efafcc19b54 |
30-Nov-2006 |
Nathan Binkert <binkertn@umich.edu> |
Get rid of the old release-edits script and create make_release.py which takes care of almost everything needed for putting together a release. |
3680:00bf1ba79520 |
24-Nov-2006 |
Steve Reinhardt <stever@eecs.umich.edu> |
Add no-op versions of ivlb and ivle back in for backwards compatibility. |
3545:a49b07ba610e |
06-Nov-2006 |
Gabe Black <gblack@eecs.umich.edu> |
Cleaned up remnants of ivlb and ivle |
3382:e8260cd0fc08 |
19-Oct-2006 |
Gabe Black <gblack@eecs.umich.edu> |
Cleaned up the function a bit to help route out bugs. |
3380:382e21bc32f3 |
18-Oct-2006 |
Gabe Black <gblack@eecs.umich.edu> |
Fixed up exetrace.cc to deal with microcode, and to made floating point register numbers correlate to the numbers used in SPARC in m5 and statetrace.
src/cpu/exetrace.cc: Fixed up to deal with microcode, and to make floating point register numbers correlate to the numbers used in SPARC. util/statetrace/arch/tracechild_sparc.cc: util/statetrace/arch/tracechild_sparc.hh: Make floating point register numbers correlate to the numbers used in SPARC. |
3370:04aed9a69c6e |
22-Oct-2006 |
Steve Reinhardt <stever@eecs.umich.edu> |
Have tracediff print warning if no traceflags are set. Elaborate on description a bit. |
3362:dbddc0f40f0f |
21-Oct-2006 |
Steve Reinhardt <stever@eecs.umich.edu> |
Updated to work with new command line argument ordering. Note that command line syntax has totally changed as a result. See comments for more details. |
3343:539f62f485dd |
20-Oct-2006 |
Steve Reinhardt <stever@eecs.umich.edu> |
m5term: assume localhost if host name not provided.
util/term/term.c: Reindent. util/term/term.c: Assume localhost if only port number is given on command line. |
3125:febd811bccc6 |
30-Sep-2006 |
Kevin Lim <ktlim@umich.edu> |
Merge ktlim@zamp:./local/clean/o3-merge/m5 into zamp.eecs.umich.edu:/z/ktlim2/clean/o3-merge/newmem
configs/boot/micro_memlat.rcS: configs/boot/micro_tlblat.rcS: src/arch/alpha/ev5.cc: src/arch/alpha/isa/decoder.isa: src/arch/alpha/isa_traits.hh: src/cpu/base.cc: src/cpu/base.hh: src/cpu/base_dyn_inst.hh: src/cpu/checker/cpu.hh: src/cpu/checker/cpu_impl.hh: src/cpu/o3/alpha/cpu_impl.hh: src/cpu/o3/alpha/params.hh: src/cpu/o3/checker_builder.cc: src/cpu/o3/commit_impl.hh: src/cpu/o3/cpu.cc: src/cpu/o3/decode_impl.hh: src/cpu/o3/fetch_impl.hh: src/cpu/o3/iew.hh: src/cpu/o3/iew_impl.hh: src/cpu/o3/inst_queue.hh: src/cpu/o3/lsq.hh: src/cpu/o3/lsq_impl.hh: src/cpu/o3/lsq_unit.hh: src/cpu/o3/lsq_unit_impl.hh: src/cpu/o3/regfile.hh: src/cpu/o3/rename_impl.hh: src/cpu/o3/thread_state.hh: src/cpu/ozone/checker_builder.cc: src/cpu/ozone/cpu.hh: src/cpu/ozone/cpu_impl.hh: src/cpu/ozone/front_end.hh: src/cpu/ozone/front_end_impl.hh: src/cpu/ozone/lw_back_end.hh: src/cpu/ozone/lw_back_end_impl.hh: src/cpu/ozone/lw_lsq.hh: src/cpu/ozone/lw_lsq_impl.hh: src/cpu/ozone/thread_state.hh: src/cpu/simple/base.cc: src/cpu/simple_thread.cc: src/cpu/simple_thread.hh: src/cpu/thread_state.hh: src/dev/ide_disk.cc: src/python/m5/objects/O3CPU.py: src/python/m5/objects/Root.py: src/python/m5/objects/System.py: src/sim/pseudo_inst.cc: src/sim/pseudo_inst.hh: src/sim/system.hh: util/m5/m5.c: Hand merge. |
3115:494b6592a4d8 |
17-Sep-2006 |
Gabe Black <gblack@eecs.umich.edu> |
Adding what was tracedump but is now statetrace to the tree. Let me know if statetrace is also already taken.
util/statetrace/Makefile: Makefile to build statetrace. Targets are:
statetrace: alias to build using the "native" compiler statetrace-native: use the native compiler statetrace-sparc: use the sparc cross compiler
I'll make this a little more fancy and capable later. util/statetrace/arch/tracechild_i386.cc: Implementation of i386 support util/statetrace/arch/tracechild_i386.hh: Declaration of i386 support util/statetrace/arch/tracechild_sparc.cc: implementation of SPARC support util/statetrace/arch/tracechild_sparc.hh: declaration of SPARC support util/statetrace/printer.cc: Implementation of the "Printer" objects which parse and output the state of the process after each instruction. There are currently two types of printers, nested ones and register ones. These are called NestingPrinter and RegPrinter respectively. util/statetrace/printer.hh: Declaration of "Printer" objects util/statetrace/refcnt.hh: This is copied from m5. I should use the one already in the tree, but I'll do that later. util/statetrace/regstate.hh: Interface for accessing registers. util/statetrace/statetrace.cc: Main file with argument parsing and the "main" function which contains the tracing loop. util/statetrace/tracechild.cc: Implementation of the base tracechild class. util/statetrace/tracechild.hh: Declaration of the base tracechild class. util/statetrace/tracechild_arch.cc: This file hooks in support for the appropriate architecture. Just the implementation is brought in, since the main program should ideally not have to know anything at all about an architecture other than it's interface. util/statetrace/x86.format: An example output template for x86. A few example SPARC templates will be added later. |
3110:f5b13fb714e0 |
08-Sep-2006 |
Steve Reinhardt <stever@eecs.umich.edu> |
Added cscope-find.py utility to generate file list for cscope. |
3099:e3f3ff36645b |
02-Sep-2006 |
Steve Reinhardt <stever@eecs.umich.edu> |
regress: Clean up help output.
util/regress: Clean up help output. |
3097:6d06427d2248 |
01-Sep-2006 |
Steve Reinhardt <stever@eecs.umich.edu> |
Get rid of extra stuff in util/regress only needed by cron job, to make it more usable by regular folks.
util/regress: Get rid of extra stuff only needed by cron job, to make it more usable by regular folks. |
3089:0ea2eb13c4de |
11-Sep-2006 |
Ali Saidi <saidi@eecs.umich.edu> |
add annotation code to m5
configs/common/Benchmarks.py: add annotate test app src/SConscript: add annotate.cc to lis src/arch/alpha/isa/decoder.isa: add annotate instructions src/base/traceflags.py: Add annotate trace flag src/sim/pseudo_inst.cc: src/sim/pseudo_inst.hh: add annotate pseudo ops util/m5/m5op.S: util/m5/m5op.h: add anotate ops |
3080:5e384f5480af |
28-Aug-2006 |
Steve Reinhardt <stever@eecs.umich.edu> |
Fix command for new options processing. |
3077:31da34df3139 |
25-Aug-2006 |
Steve Reinhardt <stever@eecs.umich.edu> |
Update for new regression test structure. |
3038:a20a6f060dd7 |
17-Aug-2006 |
Kevin Lim <ktlim@umich.edu> |
Add readfile back in. |
2783:381a5413b55a |
17-Jun-2006 |
Kevin Lim <ktlim@umich.edu> |
Minor updates.
src/cpu/o3/alpha_cpu.hh: Fix #define in header. util/rundiff: Fix file comments to be more correct. util/tracediff: Update comments to be more correct. |
2716:b9114064d77a |
11-Jun-2006 |
Nathan Binkert <binkertn@umich.edu> |
Merge iceaxe.:/Volumes/work/research/m5/head into iceaxe.:/Volumes/work/research/m5/merge
src/cpu/simple/base.cc: src/kern/kernel_stats.cc: src/kern/kernel_stats.hh: src/kern/system_events.cc: src/kern/system_events.hh: src/python/m5/objects/System.py: src/sim/system.cc: src/sim/system.hh: hand merge |
2665:a124942bacb8 |
31-May-2006 |
Ali Saidi <saidi@eecs.umich.edu> |
Updated Authors from bk prs info |
2441:6d9097edd4aa |
11-Mar-2006 |
Steve Reinhardt <stever@eecs.umich.edu> |
Bump up NFS wait time in qdo (since this has been causing problems in pool regressions).
util/qdo: Bump up hardcoded NFS wait time from 45 sec to 90 sec (and print threshold from 10 sec to 30 sec). Would be even nicer to make these cmd-line params, but nobody would use them anyway. |
2422:6ba1e45f8946 |
09-Mar-2006 |
Gabe Black <gblack@eecs.umich.edu> |
Hand merge. Stuff probably doesn't compile. |
2358:4194f6d8eb87 |
23-Aug-2006 |
Kevin Lim <ktlim@umich.edu> |
Support loading in a symbol file.
arch/alpha/freebsd/system.cc: arch/alpha/isa/decoder.isa: arch/alpha/linux/system.cc: arch/alpha/system.cc: arch/alpha/tru64/system.cc: Let symbol files be read in so that profiling can happen on the binaries as well. python/m5/objects/System.py: Add in symbol files. sim/pseudo_inst.cc: Load in a specified symbol file. sim/pseudo_inst.hh: Allow for symbols to be loaded. sim/system.hh: Support symbol file. util/m5/m5.c: util/m5/m5op.S: Add support to m5 util for loading symbols (and readfile). |
2357:add41108b549 |
11-Aug-2006 |
Kevin Lim <ktlim@umich.edu> |
Add in a bunch more stuff.
configs/boot/micro_memlat.rcS: Update these scripts so they work (not sure why they broke) configs/boot/micro_tlblat.rcS: Update this script to use a different test. |
2343:a2b4a6ccee56 |
10-Jun-2006 |
Nathan Binkert <binkertn@umich.edu> |
Remove all binning stuff |
2283:00de5774067b |
02-May-2006 |
Nathan Binkert <binkertn@umich.edu> |
Fix some of lisa's barchart changes
util/stats/barchart.py: - there is no self.inner_axes - don't append an empty value to self.xsubticks, otherwise subsequent calls will get extra empty ticks - rotate labels 30 degrees instead of 90 so it looks better |
2206:b84a1f4ee725 |
02-Mar-2006 |
Gabe Black <gblack@eecs.umich.edu> |
Merge gblack@m5.eecs.umich.edu:/bk/multiarch into ewok.(none):/home/gblack/m5/multiarch |
2204:64698895c22e |
01-Mar-2006 |
Ali Saidi <saidi@eecs.umich.edu> |
Merge zizzer:/bk/m5 into zeep.eecs.umich.edu:/z/saidi/work/m5.q |
2188:63871985840f |
28-Feb-2006 |
Ali Saidi <saidi@eecs.umich.edu> |
Add quiesceNs, quiesceTime, quiesceCycles, and m5panic pseudo ops.
This changeset removes a check that prevents quiescing when an interrupt is pending. *** You should only call quiesce if that isn't a problem. ***
arch/alpha/isa/decoder.isa: sim/pseudo_inst.cc: sim/pseudo_inst.hh: Add quiesceNs, quiesceCycles, quisceTime and m5panic pseudo ops. These quiesce for a number of ns, cycles, report how long we were quiesced for, and panic the simulator respectively. The latter is added to the panic() function in the console and linux kernel instead of executing an infinite loop until someone notices. cpu/exec_context.cc: cpu/exec_context.hh: Add a quiesce end event to the execution contexted which upon executing wakes up a CPU for quiesceCycles/quiesceNs. util/m5/Makefile: Make the makefile more reasonable util/m5/m5.c: update the m5op executable to use the files from the linux tree util/m5/m5op.S: update m5op.S from linux tree util/m5/m5op.h: update m5op.h from linux tree |
2187:494da52c4eac |
26-Feb-2006 |
Nathan Binkert <binkertn@umich.edu> |
fix some minor stats stuff
util/stats/stats.py: fix up a few of the stats. |
2185:1ae0d79e352c |
26-Feb-2006 |
Nathan Binkert <binkertn@umich.edu> |
Allow graph_group to not be selected so we can have a normal ungrouped barchart |
2184:72d783509598 |
26-Feb-2006 |
Nathan Binkert <binkertn@umich.edu> |
better function categorization
util/stats/categories.py: bit more stuff for categorizing functions |
2183:4420c8fadbf5 |
26-Feb-2006 |
Nathan Binkert <binkertn@umich.edu> |
fix small python bug in database processing code
util/stats/db.py: fix usage of hasattr |
2182:cd8095e0f475 |
26-Feb-2006 |
Nathan Binkert <binkertn@umich.edu> |
code cleanup
util/stats/barchart.py: clean up some of lisa's messy code remove trailing whitespace while I'm at it. |
2181:e22fa74669cd |
26-Feb-2006 |
Nathan Binkert <binkertn@umich.edu> |
forgot to add a chart option
util/stats/chart.py: add a bool config option for determining if the legend is inside or outside the figure |
2180:44599b79ef80 |
26-Feb-2006 |
Nathan Binkert <binkertn@umich.edu> |
add error bars and more options for legend placement
util/stats/barchart.py: Add support for error bars util/stats/barchart.py: add support to choose between a legend inside or outside the figure. |
2179:7e15ffdd03d8 |
25-Feb-2006 |
Nathan Binkert <binkertn@umich.edu> |
better colors for barcharts
util/stats/barchart.py: If there are fewer than 5 colors, pick from a subset of 5 so there is more consistency in colors between graphs |
2160:d851e177e4c6 |
24-Feb-2006 |
Lisa Hsu <hsul@eecs.umich.edu> |
1) make it pretty for large clusters 2) make subticks vertical so they can be longer 3) make inner and outer axes farther apart to make room for subtick's vertical labels |
2142:80134e6b9c79 |
23-Feb-2006 |
Nathan Binkert <binkertn@umich.edu> |
don't add an empty suboption description |
2141:5616ed031d22 |
23-Feb-2006 |
Nathan Binkert <binkertn@umich.edu> |
make it possible to add filters for job names so that parts of the full crossproduct of jobs can be ignored. |
2119:f0de10227ae5 |
18-Feb-2006 |
Lisa Hsu <hsul@eecs.umich.edu> |
few changes for nate: 1) cosmetic - removing visibility of meta axes except for the tick labels. 2) unless subticklabels defined, don't do meta axes. (instead of assuming if you have 3D graph, do meta axes) |
2118:1fe7d0ddf765 |
18-Feb-2006 |
Lisa Hsu <hsul@eecs.umich.edu> |
remove print statements |
2117:cd2f6cff36df |
18-Feb-2006 |
Lisa Hsu <hsul@eecs.umich.edu> |
more changes for subtick labels.
util/stats/barchart.py: oop forgot this for 1D graph cases. util/stats/chart.py: need to add default param to chart. |
2115:beeeb8bb7550 |
18-Feb-2006 |
Lisa Hsu <hsul@eecs.umich.edu> |
Now you can have sublabels for every bar using the self.xsubticklabels parameter. |
2033:b39f823d43c3 |
30-Jan-2006 |
Nathan Binkert <binkertn@umich.edu> |
Make the M5 Emacs C style default to inserting spaces instead of tabs so using different editors is consistent
util/emacs/m5-c-style.el: Default to inserting spaces instead of tabs so using different editors is consistent |
2015:fab23b1eb6f4 |
19-Dec-2005 |
Nathan Binkert <binkertn@umich.edu> |
Create the ProxyError Exception. Raise it when an unproxy operation fails because information is wrong or not available. |
2014:7df693ff6fa4 |
19-Dec-2005 |
Nathan Binkert <binkertn@umich.edu> |
Add a little bit of support to grab info for making graphs without using the jobfile.
util/stats/db.py: util/stats/profile.py: Make it possible to send job as a string and to set the system separately from the job. |
2006:3ca085495c69 |
22-Nov-2005 |
Nathan Binkert <binkertn@umich.edu> |
Major improvements in the graph output code. Mostly adding more options, making existing options more visible and dealing with holes in data better.
util/stats/barchart.py: - move the options for BarChart to a base class ChartOptions so they can be more easily set and copied. - add an option to set the chart size (so you can adjust the aspect ratio) - don't do the add_subplot thing, use add_axes directly so we can affect the size of the figure itself to make room for the legend - make the initial array bottom floating point so we don't lose precision - add an option to set the limits on the y axis - use a figure legend instead of an axes legend so we can put the legend outside of the actual chart. Also add an option to set the fontsize of the legend. - initial hack at outputting csv files util/stats/db.py: don't print out an error when the run is missing from the database just return None, the error will be print elsewhere. util/stats/output.py: - make StatOutput derive from ChartOptions so that it's easier to set default chart options. - make the various output functions (graph, display, etc.) take the name of the data as a parameter instead of making it a parameter to __init__. This allows me to create the StatOutput object with generic parameters while still being able to specialize the name after the fact - add support for graph_group and graph_bars to be applied to multiple configuration groups. This results in a cross product of the groups to be generated and used. - flush the html file output as we go so that we can load the file while graphs are still being generated. - make the proxy a parameter to the graph function so the proper system's data can be graphed - for any groups or bars that are completely missing, remove them from the graph. This way, if we decide not to do a set of runs, there won't be holes in the data. - output eps and ps by default in addition to the png. util/stats/profile.py: - clean up the data structures that are used to store the function profile information and try our best to avoid keeping extra data around that isn't used. - make get() return None if a job is missing so we know it was missing rather than the all zeroes thing. - make the function profile categorization stuff total up to 100% - Fixup the x-axis and y-axis labels. - fix the dot file output stuff. util/stats/stats.py: support the new options stuff for StatOutput |
2005:5d2963051cc7 |
22-Nov-2005 |
Nathan Binkert <binkertn@umich.edu> |
Change the set of statistics that are generated when specifying "all" |
2004:cdf8e86d1983 |
22-Nov-2005 |
Nathan Binkert <binkertn@umich.edu> |
More changes from cpus named fullX to runX |
2002:7167e8c3ef31 |
22-Nov-2005 |
Nathan Binkert <binkertn@umich.edu> |
make the NUMCPUS parameter always refer to the total number of cpus on the test system. add an option for pio_delay_write to run.py
util/stats/stats.py: full0 -> run0 due to run.py change sim_ticks doesn't make sense with tick = ps, so use one of the cpu's numCycles paramter |
1987:256b113e2c2e |
20-Nov-2005 |
Nathan Binkert <binkertn@umich.edu> |
Deal with divide by zero in the python stats stuff.
util/stats/info.py: If an operation results in a divide by zero, just return None |
1986:b7d11bab72eb |
20-Nov-2005 |
Nathan Binkert <binkertn@umich.edu> |
implement __str__ for all of the proxy stuff so we can actually print out a statistic. |
1972:be813159a758 |
11-Nov-2005 |
Ali Saidi <saidi@eecs.umich.edu> |
Add checktrace.sh. Checks all the ethertrace files in */ethertrace for retransmissions, out of order packets, lost packets, duplicate ack, window full, etc. Easy way to see if you have a problem with a run. |
1964:fca3bb8babaf |
03-Nov-2005 |
Steve Reinhardt <stever@eecs.umich.edu> |
Qdo should kill its subordinate qsub more aggressively on a timeout.
util/qdo: Qsub needs a kill -9 to die; kill -15 doesn't cut it. |
1958:144ef1d5315f |
02-Nov-2005 |
Ali Saidi <saidi@eecs.umich.edu> |
Merge zizzer:/bk/m5 into zeep.eecs.umich.edu:/z/saidi/work/m5 |
1957:895f4795130f |
02-Nov-2005 |
Ali Saidi <saidi@eecs.umich.edu> |
Change the output of stability info a little bit |
1956:e9447a75c009 |
02-Nov-2005 |
Ali Saidi <saidi@eecs.umich.edu> |
add a few more options to the help menu |
1948:04aebfd9acf3 |
02-Nov-2005 |
Nathan Binkert <binkertn@umich.edu> |
Simple updates to pbs and send.py
util/pbs/pbs.py: Change the default so that we do not get mail under any circumstances from pbs. util/pbs/send.py: Add a -n flag to send.py that causes the Base directory to *not* sync with the Link directory |
1940:6f54e570db58 |
23-Oct-2005 |
Steve Reinhardt <stever@eecs.umich.edu> |
Fix qdo job name setting.
util/qdo: Don't automatically set qsub job name, as this causes qsub to fail if the job name is too long or otherwise unsuitable. |
1934:84c12fdd57f9 |
21-Oct-2005 |
Nathan Binkert <binkertn@umich.edu> |
Fix a couple of bug in the values() vector accessor
util/stats/db.py: need to import the values function util/stats/info.py: it's just run |
1933:83716112740d |
21-Oct-2005 |
Nathan Binkert <binkertn@umich.edu> |
Minor updates to the profile code.
util/stats/profile.py: Pass around the number of symbols limit deal with categorization a bit better. |
1930:d7836f59a02c |
20-Oct-2005 |
Steve Reinhardt <stever@eecs.umich.edu> |
Add qdo options for setting the PBS job name and destination queue.
util/qdo: Add options for setting the PBS job name and destination queue. |
1929:fb189519cb06 |
21-Oct-2005 |
Nathan Binkert <binkertn@umich.edu> |
Major cleanup of the statistics handling code
util/stats/db.py: Build a result object as the result of a query operation so it is easier to populate and contains a bit more information than just a big dict. Also change the next level data into a matrix instead of a dict of dicts. Move the "get" function into the Database object. (The get function is used by the output parsing function as the interface for accessing backend storage, same interface for profile stuff.) Change the old get variable to the method variable, it describes how the get works, (whether using sum, stdev, etc.) util/stats/display.py: Clean up the display functions, mostly formatting. Handle values the way they should be now. util/stats/info.py: Totally re-work how values are accessed from their data store. Access individual values on demand instead of calculating everything and passing up a huge result from the bottom. This impacts the way that proxying works, and in general, everything is now esentially a proxy for the lower level database. Provide new operators: unproxy, scalar, vector, value, values, total, and len which retrieve the proper result from the object they are called on. Move the ProxyGroup stuff (proxies of proxies!) here from the now gone proxy.py file and integrate the shared parts of the code. The ProxyGroup stuff allows you to write formulas without specifying the statistics until evaluation time.
Get rid of global variables! util/stats/output.py: Move the dbinfo stuff into the Database itself. Each source should have it's own get() function for accessing it's data. This get() function behaves a bit differently than before in that it can return vectors as well, deal with these vectors and with no result conditions better. util/stats/stats.py: the info module no longer has the source global variable, just create the database source and pass it around as necessary |
1928:b75ae11a5e8f |
19-Oct-2005 |
Nathan Binkert <binkertn@umich.edu> |
fix pbs dependency stuff
util/pbs/pbs.py: after -> afterok |
1918:0c4f083eccc8 |
18-Oct-2005 |
Nathan Binkert <binkertn@umich.edu> |
Default jobfile for stats
util/stats/stats.py: Make the default jobfile Test.py in the current directory add the -J flag to tell it not to use a jobfile |
1917:2d0b0bd256ab |
18-Oct-2005 |
Nathan Binkert <binkertn@umich.edu> |
Add new function profiling stuff, wrap the pc_sample stuff into it.
SConscript: Get rid of the pc_sample stuff and move to the new profiling stuff base/traceflags.py: DPRINTF Stack stuff cpu/base.cc: cpu/base.hh: cpu/exec_context.cc: cpu/exec_context.hh: cpu/simple/cpu.cc: Add profiling stuff kern/kernel_stats.hh: Use a smart pointer sim/system.cc: sim/system.hh: Create a new symbol table that has all of the symbols for a particular system util/stats/categories.py: change around the categories, add categories for function profiling stuff util/stats/profile.py: No profile parsing and display code to deal with function profiling stuff, graph, dot, and text outputs. |
1916:fe8d4e92c0a7 |
18-Oct-2005 |
Nathan Binkert <binkertn@umich.edu> |
Better pool job handling
util/pbs/job.py: the default jobfile is now Test.py in the root of the jobs directory util/pbs/pbs.py: Clean up the qsub options handling and add job dependencies util/pbs/send.py: the default jobfile is now Test.py in the root of the jobs directory add a flag to depend on your checkpoint add a flag to specify your node type create the base directory if it doesn't exist |
1915:53799fe15b83 |
18-Oct-2005 |
Nathan Binkert <binkertn@umich.edu> |
Improvements to the graphing output
util/stats/output.py: Create the graph directory if it doesn't exist Don't write out a graph if all of the jobs for that graph are missing |
1908:73342b7d6f83 |
12-Oct-2005 |
Nathan Binkert <binkertn@umich.edu> |
don't write the pbs jobid here, do it in send.py so we know what it is sooner Don't handle sigstop since you're not allowed to.
util/pbs/send.py: write the pbs jobid here in send.py so we know what it is sooner |
1897:d08e4761b554 |
01-Oct-2005 |
Steve Reinhardt <stever@eecs.umich.edu> |
Commit regression script. The cron job uses a copy in m5test's home directory (/z/m5/regression), so for now any modifications should be manually copied there as well.
Note that this script is designed to be useful for running full regressions outside of the cron job as well. |
1891:6d62abcc7456 |
29-Sep-2005 |
Steve Reinhardt <stever@eecs.umich.edu> |
Fix for qdo & new pool node build.
util/qdo: unset PROMPT_COMMAND in shell in case system sets it for us. |
1884:e543e25a5d27 |
22-Sep-2005 |
Steve Reinhardt <stever@eecs.umich.edu> |
Support for compiling and testing on pool via 'qdo' script. For this to work qdo must be on your path. I've copied it into /usr/local/bin on zizzer.
build/SConstruct: Add BATCH and BATCH_CMD options to support compiling/testing on pool via qdo. |
1881:fc205a7edd58 |
17-Sep-2005 |
Nathan Binkert <binkertn@umich.edu> |
Totally re-work the way that jobfiles are done so there is more information that can be used for other aspects of sending jobs. New graphing output stuff with matplotlib.
util/pbs/job.py: Shuffle code around and create the JobDir class which encapsulates all of the functionality needed for making, organizing, and cleaning a job directory. Better status output util/pbs/jobfile.py: Majory re-working of the jobfile code. A job file now consists of several objects that describe how jobs should be run, it includes information about checkpoints, and graphing. util/pbs/send.py: use the new jobfile code. deal with the 15 character limit of pbs by truncating the name and using the raj hack. util/stats/db.py: fix the __str__ function for nodes provide __getitem__ for the Database class util/stats/stats.py: use the jobfile stuff to figure out what the proper naming and organziation of the graphs should be. move all output code to output.py, get rid of ploticus and use matplotlib |
1816:ecb6cb1337e8 |
16-Aug-2005 |
Nathan Binkert <binkertn@umich.edu> |
Updates to job scripts to accept more than 15 characters of jobname Make the Link directory even more useful by working with sub-directories.
util/pbs/job.py: Expose JOBNAME as a separate parameter from PBS_JOBNAME. If the former exists, it is used as the jobname for starting the job, if it doesn't exist, PBS_JOBNAME is used. This is to get around the 15 character maximum pbs job name length. While we're at it, shuffle things around to hopefully make things a bit more clear. util/pbs/send.py: Make the Link directory functionality more sophisticated, copy sub-directories and links to directories. (we still don't copy dotfiles though) Add the setname() function to contact pbs and use raj's hack to tell the webpage about longer jobnames. (it's gross, don't look) truncate the pbs job name to 15 characters so that it works. |
1803:9ddfa35ac314 |
27-Jun-2005 |
Nathan Binkert <binkertn@umich.edu> |
Reorganize tap code so that more than one method can be used for accessing physical packets. Add support for tap devices found on linux and bsd. |
1772:a3a83e812a5e |
05-Jun-2005 |
Nathan Binkert <binkertn@umich.edu> |
Cleanup copyright stuff. Add our copyright files that are ours
arch/alpha/alpha_linux_process.hh: arch/alpha/alpha_tru64_process.hh: base/loader/object_file.cc: base/loader/object_file.hh: sim/process.cc: sim/process.hh: remove $Id$ string cpu/ozone/cpu.cc: cpu/ozone/cpu_impl.hh: cpu/ozone/ea_list.cc: cpu/ozone/ea_list.hh: kern/linux/sched.hh: kern/linux/thread_info.hh: Add M5 Copyright cpu/trace/opt_cpu.cc: dev/rtcreg.h: nit kern/linux/aligned.hh: kern/linux/hwrpb.hh: util/oprofile-top.py: util/stats/db.py: util/stats/dbinit.py: util/stats/display.py: util/stats/info.py: util/stats/print.py: util/stats/stats.py: Cleanup copyright |
1762:6bf5cf6d9903 |
05-Jun-2005 |
Steve Reinhardt <stever@eecs.umich.edu> |
Many files: Update copyright dates and author list
SConscript: arch/alpha/alpha_linux_process.cc: arch/alpha/alpha_linux_process.hh: arch/alpha/alpha_memory.cc: arch/alpha/alpha_memory.hh: arch/alpha/alpha_tru64_process.cc: arch/alpha/alpha_tru64_process.hh: arch/alpha/aout_machdep.h: arch/alpha/arguments.cc: arch/alpha/arguments.hh: arch/alpha/ev5.cc: arch/alpha/ev5.hh: arch/alpha/faults.cc: arch/alpha/faults.hh: arch/alpha/isa_desc: arch/alpha/isa_traits.hh: arch/alpha/osfpal.cc: arch/alpha/osfpal.hh: arch/alpha/pseudo_inst.cc: arch/alpha/pseudo_inst.hh: arch/alpha/vptr.hh: arch/alpha/vtophys.cc: arch/alpha/vtophys.hh: base/bitfield.hh: base/callback.hh: base/circlebuf.cc: base/circlebuf.hh: base/cprintf.cc: base/cprintf.hh: base/cprintf_formats.hh: base/crc.hh: base/date.cc: base/dbl_list.hh: base/endian.hh: base/fast_alloc.cc: base/fast_alloc.hh: base/fifo_buffer.cc: base/fifo_buffer.hh: base/hashmap.hh: base/hostinfo.cc: base/hostinfo.hh: base/hybrid_pred.cc: base/hybrid_pred.hh: base/inet.cc: base/inet.hh: base/inifile.cc: base/inifile.hh: base/intmath.cc: base/intmath.hh: base/match.cc: base/match.hh: base/misc.cc: base/misc.hh: base/mod_num.hh: base/mysql.cc: base/mysql.hh: base/output.cc: base/output.hh: base/pollevent.cc: base/pollevent.hh: base/predictor.hh: base/random.cc: base/random.hh: base/range.cc: base/range.hh: base/refcnt.hh: base/remote_gdb.cc: base/remote_gdb.hh: base/res_list.hh: base/sat_counter.cc: base/sat_counter.hh: base/sched_list.hh: base/socket.cc: base/socket.hh: base/statistics.cc: base/statistics.hh: base/compression/lzss_compression.cc: base/compression/lzss_compression.hh: base/compression/null_compression.hh: base/loader/aout_object.cc: base/loader/aout_object.hh: base/loader/ecoff_object.cc: base/loader/ecoff_object.hh: base/loader/elf_object.cc: base/loader/elf_object.hh: base/loader/object_file.cc: base/loader/object_file.hh: base/loader/symtab.cc: base/loader/symtab.hh: base/stats/events.cc: base/stats/events.hh: base/stats/flags.hh: base/stats/mysql.cc: base/stats/mysql.hh: base/stats/mysql_run.hh: base/stats/output.hh: base/stats/statdb.cc: base/stats/statdb.hh: base/stats/text.cc: base/stats/text.hh: base/stats/types.hh: base/stats/visit.cc: base/stats/visit.hh: base/str.cc: base/str.hh: base/time.cc: base/time.hh: base/timebuf.hh: base/trace.cc: base/trace.hh: base/userinfo.cc: base/userinfo.hh: build/SConstruct: cpu/base.cc: cpu/base.hh: cpu/base_dyn_inst.cc: cpu/base_dyn_inst.hh: cpu/exec_context.cc: cpu/exec_context.hh: cpu/exetrace.cc: cpu/exetrace.hh: cpu/inst_seq.hh: cpu/intr_control.cc: cpu/intr_control.hh: cpu/memtest/memtest.cc: cpu/pc_event.cc: cpu/pc_event.hh: cpu/smt.hh: cpu/static_inst.cc: cpu/static_inst.hh: cpu/memtest/memtest.hh: cpu/o3/sat_counter.cc: cpu/o3/sat_counter.hh: cpu/ozone/cpu.hh: cpu/simple/cpu.cc: cpu/simple/cpu.hh: cpu/trace/opt_cpu.cc: cpu/trace/opt_cpu.hh: cpu/trace/reader/ibm_reader.cc: cpu/trace/reader/ibm_reader.hh: cpu/trace/reader/itx_reader.cc: cpu/trace/reader/itx_reader.hh: cpu/trace/reader/m5_reader.cc: cpu/trace/reader/m5_reader.hh: cpu/trace/reader/mem_trace_reader.cc: cpu/trace/reader/mem_trace_reader.hh: cpu/trace/trace_cpu.cc: cpu/trace/trace_cpu.hh: dev/alpha_access.h: dev/alpha_console.cc: dev/alpha_console.hh: dev/baddev.cc: dev/baddev.hh: dev/disk_image.cc: dev/disk_image.hh: dev/etherbus.cc: dev/etherbus.hh: dev/etherdump.cc: dev/etherdump.hh: dev/etherint.cc: dev/etherint.hh: dev/etherlink.cc: dev/etherlink.hh: dev/etherpkt.cc: dev/etherpkt.hh: dev/ethertap.cc: dev/ethertap.hh: dev/ide_ctrl.cc: dev/ide_ctrl.hh: dev/ide_disk.cc: dev/ide_disk.hh: dev/io_device.cc: dev/io_device.hh: dev/ns_gige.cc: dev/ns_gige.hh: dev/ns_gige_reg.h: dev/pciconfigall.cc: dev/pciconfigall.hh: dev/pcidev.cc: dev/pcidev.hh: dev/pcireg.h: dev/pktfifo.cc: dev/pktfifo.hh: dev/platform.cc: dev/platform.hh: dev/simconsole.cc: dev/simconsole.hh: dev/simple_disk.cc: dev/simple_disk.hh: dev/sinic.cc: dev/sinic.hh: dev/sinicreg.hh: dev/tsunami.cc: dev/tsunami.hh: dev/tsunami_cchip.cc: dev/tsunami_cchip.hh: dev/tsunami_io.cc: dev/tsunami_io.hh: dev/tsunami_pchip.cc: dev/tsunami_pchip.hh: dev/tsunamireg.h: dev/uart.cc: dev/uart.hh: dev/uart8250.cc: dev/uart8250.hh: docs/stl.hh: encumbered/cpu/full/op_class.hh: kern/kernel_stats.cc: kern/kernel_stats.hh: kern/linux/linux.hh: kern/linux/linux_syscalls.cc: kern/linux/linux_syscalls.hh: kern/linux/linux_system.cc: kern/linux/linux_system.hh: kern/linux/linux_threadinfo.hh: kern/linux/printk.cc: kern/linux/printk.hh: kern/system_events.cc: kern/system_events.hh: kern/tru64/dump_mbuf.cc: kern/tru64/dump_mbuf.hh: kern/tru64/mbuf.hh: kern/tru64/printf.cc: kern/tru64/printf.hh: kern/tru64/tru64.hh: kern/tru64/tru64_events.cc: kern/tru64/tru64_events.hh: kern/tru64/tru64_syscalls.cc: kern/tru64/tru64_syscalls.hh: kern/tru64/tru64_system.cc: kern/tru64/tru64_system.hh: python/SConscript: python/m5/__init__.py: python/m5/config.py: python/m5/convert.py: python/m5/multidict.py: python/m5/smartdict.py: sim/async.hh: sim/builder.cc: sim/builder.hh: sim/debug.cc: sim/debug.hh: sim/eventq.cc: sim/eventq.hh: sim/host.hh: sim/main.cc: sim/param.cc: sim/param.hh: sim/process.cc: sim/process.hh: sim/root.cc: sim/serialize.cc: sim/serialize.hh: sim/sim_events.cc: sim/sim_events.hh: sim/sim_exit.hh: sim/sim_object.cc: sim/sim_object.hh: sim/startup.cc: sim/startup.hh: sim/stat_control.cc: sim/stat_control.hh: sim/stats.hh: sim/syscall_emul.cc: sim/syscall_emul.hh: sim/system.cc: sim/system.hh: test/bitvectest.cc: test/circletest.cc: test/cprintftest.cc: test/genini.py: test/initest.cc: test/lru_test.cc: test/nmtest.cc: test/offtest.cc: test/paramtest.cc: test/rangetest.cc: test/sized_test.cc: test/stattest.cc: test/strnumtest.cc: test/symtest.cc: test/tokentest.cc: test/tracetest.cc: util/ccdrv/devtime.c: util/m5/m5.c: util/oprofile-top.py: util/rundiff: util/m5/m5op.h: util/m5/m5op.s: util/stats/db.py: util/stats/dbinit.py: util/stats/display.py: util/stats/info.py: util/stats/print.py: util/stats/stats.py: util/tap/tap.cc: Update copyright dates and author list |
1760:48ebe25cedc8 |
05-Jun-2005 |
Steve Reinhardt <stever@eecs.umich.edu> |
Many files: Remove RCS Id string
arch/alpha/alpha_linux_process.cc: arch/alpha/alpha_memory.cc: arch/alpha/alpha_memory.hh: arch/alpha/alpha_tru64_process.cc: arch/alpha/aout_machdep.h: arch/alpha/arguments.cc: arch/alpha/arguments.hh: arch/alpha/ecoff_machdep.h: arch/isa_parser.py: arch/alpha/ev5.cc: arch/alpha/ev5.hh: arch/alpha/faults.cc: arch/alpha/faults.hh: arch/alpha/isa_traits.hh: arch/alpha/osfpal.cc: arch/alpha/osfpal.hh: arch/alpha/pseudo_inst.cc: arch/alpha/pseudo_inst.hh: arch/alpha/vptr.hh: arch/alpha/vtophys.cc: arch/alpha/vtophys.hh: base/bitfield.hh: base/callback.hh: base/circlebuf.cc: base/circlebuf.hh: base/cprintf.cc: base/cprintf.hh: base/cprintf_formats.hh: base/crc.cc: base/crc.hh: base/date.cc: base/dbl_list.hh: base/endian.hh: base/fast_alloc.cc: base/fast_alloc.hh: base/fifo_buffer.cc: base/fifo_buffer.hh: base/hashmap.hh: base/hostinfo.cc: base/hostinfo.hh: base/hybrid_pred.cc: base/hybrid_pred.hh: base/inet.cc: base/inet.hh: base/inifile.cc: base/inifile.hh: base/intmath.cc: base/intmath.hh: base/kgdb.h: base/match.cc: base/match.hh: base/misc.cc: base/misc.hh: base/mod_num.hh: base/mysql.cc: base/mysql.hh: base/output.cc: base/output.hh: base/pollevent.cc: base/pollevent.hh: base/predictor.hh: base/random.cc: base/random.hh: base/range.cc: base/range.hh: base/refcnt.hh: base/remote_gdb.cc: base/remote_gdb.hh: base/res_list.hh: base/sat_counter.cc: base/sat_counter.hh: base/sched_list.hh: base/socket.cc: base/socket.hh: base/statistics.cc: base/statistics.hh: base/compression/lzss_compression.cc: base/compression/lzss_compression.hh: base/compression/null_compression.hh: base/loader/aout_object.cc: base/loader/aout_object.hh: base/loader/coff_sym.h: base/loader/coff_symconst.h: base/loader/ecoff_object.cc: base/loader/ecoff_object.hh: base/loader/elf_object.cc: base/loader/elf_object.hh: base/loader/exec_aout.h: base/loader/exec_ecoff.h: base/loader/symtab.cc: base/loader/symtab.hh: base/stats/events.cc: base/stats/events.hh: base/stats/flags.hh: base/stats/mysql.cc: base/stats/mysql.hh: base/stats/mysql_run.hh: base/stats/output.hh: base/stats/statdb.cc: base/stats/statdb.hh: base/stats/text.cc: base/stats/text.hh: base/stats/types.hh: base/stats/visit.cc: base/stats/visit.hh: base/str.cc: base/str.hh: base/time.cc: base/time.hh: base/timebuf.hh: base/trace.cc: base/trace.hh: base/traceflags.py: base/userinfo.cc: base/userinfo.hh: cpu/base.cc: cpu/base.hh: cpu/base_dyn_inst.cc: cpu/base_dyn_inst.hh: cpu/exec_context.cc: cpu/exec_context.hh: cpu/exetrace.cc: cpu/exetrace.hh: cpu/inst_seq.hh: cpu/intr_control.cc: cpu/intr_control.hh: cpu/pc_event.cc: cpu/pc_event.hh: cpu/memtest/memtest.cc: cpu/memtest/memtest.hh: cpu/o3/2bit_local_pred.cc: cpu/o3/2bit_local_pred.hh: cpu/o3/alpha_cpu.cc: cpu/o3/alpha_cpu.hh: cpu/o3/alpha_cpu_builder.cc: cpu/o3/alpha_dyn_inst.cc: cpu/o3/alpha_dyn_inst.hh: cpu/o3/alpha_dyn_inst_impl.hh: cpu/o3/alpha_impl.hh: cpu/o3/alpha_params.hh: cpu/o3/bpred_unit.cc: cpu/o3/bpred_unit.hh: cpu/o3/bpred_unit_impl.hh: cpu/o3/btb.cc: cpu/o3/btb.hh: cpu/o3/comm.hh: cpu/o3/commit.cc: cpu/o3/commit.hh: cpu/o3/commit_impl.hh: cpu/o3/cpu.cc: cpu/o3/cpu.hh: cpu/o3/cpu_policy.hh: cpu/o3/decode.cc: cpu/o3/decode.hh: cpu/o3/decode_impl.hh: cpu/o3/fetch.cc: cpu/o3/fetch.hh: cpu/o3/fetch_impl.hh: cpu/o3/free_list.cc: cpu/o3/free_list.hh: cpu/o3/iew.cc: cpu/o3/iew.hh: cpu/o3/iew_impl.hh: cpu/o3/inst_queue.cc: cpu/o3/inst_queue.hh: cpu/o3/inst_queue_impl.hh: cpu/o3/mem_dep_unit.cc: cpu/o3/mem_dep_unit.hh: cpu/o3/mem_dep_unit_impl.hh: cpu/o3/ras.cc: cpu/o3/ras.hh: cpu/o3/regfile.hh: cpu/o3/rename.cc: cpu/o3/rename.hh: cpu/o3/rename_impl.hh: cpu/o3/rename_map.cc: cpu/o3/rename_map.hh: cpu/o3/rob.hh: cpu/o3/rob_impl.hh: cpu/o3/sat_counter.cc: cpu/o3/sat_counter.hh: cpu/o3/store_set.cc: cpu/o3/store_set.hh: cpu/o3/tournament_pred.cc: cpu/o3/tournament_pred.hh: cpu/ozone/cpu.hh: cpu/simple/cpu.cc: cpu/simple/cpu.hh: cpu/smt.hh: cpu/static_inst.cc: cpu/static_inst.hh: cpu/trace/opt_cpu.hh: cpu/trace/reader/ibm_reader.cc: cpu/trace/reader/ibm_reader.hh: cpu/trace/reader/itx_reader.cc: cpu/trace/reader/itx_reader.hh: cpu/trace/reader/m5_reader.cc: cpu/trace/reader/m5_reader.hh: cpu/trace/reader/mem_trace_reader.cc: cpu/trace/reader/mem_trace_reader.hh: cpu/trace/trace_cpu.cc: cpu/trace/trace_cpu.hh: dev/alpha_access.h: dev/alpha_console.cc: dev/alpha_console.hh: dev/baddev.cc: dev/baddev.hh: dev/disk_image.cc: dev/disk_image.hh: dev/etherbus.cc: dev/etherbus.hh: dev/etherdump.cc: dev/etherdump.hh: dev/etherint.cc: dev/etherint.hh: dev/etherlink.cc: dev/etherlink.hh: dev/etherpkt.cc: dev/etherpkt.hh: dev/ethertap.cc: dev/ethertap.hh: dev/ide_ctrl.cc: dev/ide_ctrl.hh: dev/ide_disk.cc: dev/ide_disk.hh: dev/io_device.cc: dev/io_device.hh: dev/ns_gige.cc: dev/ns_gige.hh: dev/ns_gige_reg.h: dev/pciconfigall.cc: dev/pciconfigall.hh: dev/pcidev.cc: dev/pcidev.hh: dev/pcireg.h: dev/pktfifo.cc: dev/pktfifo.hh: dev/platform.cc: dev/platform.hh: dev/simconsole.cc: dev/simconsole.hh: dev/simple_disk.cc: dev/simple_disk.hh: dev/sinic.cc: dev/sinic.hh: dev/sinicreg.hh: dev/tsunami.cc: dev/tsunami.hh: dev/tsunami_cchip.cc: dev/tsunami_cchip.hh: dev/tsunami_io.cc: dev/tsunami_io.hh: dev/tsunami_pchip.cc: dev/tsunami_pchip.hh: dev/uart.cc: dev/uart.hh: dev/uart8250.cc: dev/uart8250.hh: docs/stl.hh: encumbered/cpu/full/op_class.hh: kern/kernel_stats.cc: kern/kernel_stats.hh: kern/linux/linux.hh: kern/system_events.cc: kern/system_events.hh: kern/linux/linux_syscalls.cc: kern/linux/linux_syscalls.hh: kern/linux/linux_system.cc: kern/linux/linux_system.hh: kern/linux/printk.cc: kern/linux/printk.hh: kern/tru64/dump_mbuf.cc: kern/tru64/dump_mbuf.hh: kern/tru64/mbuf.hh: kern/tru64/printf.cc: kern/tru64/printf.hh: kern/tru64/tru64.hh: kern/tru64/tru64_events.cc: kern/tru64/tru64_events.hh: kern/tru64/tru64_syscalls.cc: kern/tru64/tru64_syscalls.hh: kern/tru64/tru64_system.cc: kern/tru64/tru64_system.hh: sim/async.hh: sim/builder.cc: sim/builder.hh: sim/debug.cc: sim/debug.hh: sim/eventq.cc: sim/eventq.hh: sim/host.hh: sim/main.cc: sim/param.cc: sim/param.hh: sim/root.cc: sim/serialize.cc: sim/serialize.hh: sim/sim_events.cc: sim/sim_events.hh: sim/sim_exit.hh: sim/sim_object.cc: sim/sim_object.hh: sim/startup.cc: sim/startup.hh: sim/stat_control.cc: sim/stat_control.hh: sim/stats.hh: sim/syscall_emul.cc: sim/syscall_emul.hh: sim/system.cc: sim/system.hh: test/Makefile: test/bitvectest.cc: test/circletest.cc: test/cprintftest.cc: test/initest.cc: test/lru_test.cc: test/nmtest.cc: test/offtest.cc: test/paramtest.cc: test/rangetest.cc: test/sized_test.cc: test/stattest.cc: test/strnumtest.cc: test/symtest.cc: test/tokentest.cc: test/tracetest.cc: util/m5/m5.c: util/m5/m5op.h: util/m5/m5op.s: util/tap/Makefile: util/tap/tap.cc: util/term/Makefile: util/term/term.c: Remove RCS Id string |
1758:74acd5b23964 |
05-Jun-2005 |
Ali Saidi <saidi@eecs.umich.edu> |
added copyright
kern/linux/sched.hh: kern/linux/thread_info.hh: got rid of everything but exactly what we needed util/categories.py: newest version from one of my repositories |
1746:5222df37cff2 |
05-Jun-2005 |
Lisa Hsu <hsul@eecs.umich.edu> |
just make a minor commenting change reflecting the new way to set up command line arguments. |
1712:3bb2f82d705c |
04-Jun-2005 |
Steve Reinhardt <stever@eecs.umich.edu> |
Get rid of vestiges of .mpy file handling. |
1621:33fdc8ebda51 |
06-Apr-2005 |
Nathan Binkert <binkertn@umich.edu> |
full_system isn't a useful parameter anymore, get rid of it.
python/m5/objects/Root.mpy: sim/universe.cc: util/stats/stats.py: full_system isn't a useful parameter |
1604:c986abdfc71f |
24-Mar-2005 |
Ron Dreslinski <rdreslin@umich.edu> |
Update so that statistics can be plotted correctly
util/stats/stats.py: Changed some stuff for graphing purposes: full_cpu is now full0 frequencies are now s,m,f,q not s,6,8,q L2 is now l2 etherdev is now etherdev0
May want to consider fact that NAT box should be the sum of etherdev0 and etherdev1 (not in script yet) |
1602:0fad8b5c6d2f |
24-Mar-2005 |
Nathan Binkert <binkertn@umich.edu> |
Improvements to send.py to allow the user to specify the jobfile
util/pbs/send.py: Allow the user to specify the jobfile |
1596:d11171f51a63 |
23-Mar-2005 |
Ali Saidi <saidi@eecs.umich.edu> |
update profile code to use shared categories file
util/stats/stats.py: add database command to help |
1547:1f0c266940d4 |
15-Mar-2005 |
Nathan Binkert <binkertn@umich.edu> |
get rid of issequence and just use the isinstance builtin |
1442:345618f20558 |
09-Mar-2005 |
Steve Reinhardt <stever@eecs.umich.edu> |
Fix tracediff to work with new parameter and output directory structure.
util/tracediff: Fix to work with new parameter and output directory structure. |
1428:9d1d5c8754fd |
07-Mar-2005 |
Nathan Binkert <binkertn@umich.edu> |
Make it easier to find a jobfile.
util/pbs/jobfile.py: Search for the jobfile in sys.path |
1393:5c13e11b3df1 |
14-Feb-2005 |
Nathan Binkert <binkertn@umich.edu> |
Make it so we append jobs to the joblist in the for loop not outside of the loop so we get all of the jobs, not just the last one.
util/pbs/send.py: fix indent |
1392:aabce7923b3b |
14-Feb-2005 |
Ali Saidi <saidi@eecs.umich.edu> |
undoing change per nates request |
1391:2ec715129707 |
14-Feb-2005 |
Ali Saidi <saidi@eecs.umich.edu> |
output dir changes to python files
util/pbs/job.py: pass output dir to m5 directly |
1386:793290a922ee |
10-Feb-2005 |
Nathan Binkert <binkertn@umich.edu> |
Some cosmetic changes to MyPOpen
util/pbs/pbs.py: More tweaks that I forgot |
1385:a80f052561fd |
09-Feb-2005 |
Nathan Binkert <binkertn@umich.edu> |
More fixes to the pbs stuff to make it more robust.
sim/pyconfig/SConscript: Embed the jobfile.py script into the binary so that we don't need to copy it into the Base directory every time. test/genini.py: Add the util/pbs directory to the path so we can get to jobfile.py Add a -I argument to set to add to the path. util/pbs/pbs.py: Create a MyPOpen class. This is a lot like the popen2.Popen3 class in the python library except that my version allows redirection of standard in and standard out to a file instead of a pipe. Use this popen class to execute qsub or ssh qsub. This was important for the ssh version of qsub because we need to pipe the script into standard in of ssh so that the script can get to the qsub command. (Otherwise we have a problem discovering the path.) util/pbs/send.py: Tweak the script so it figures out paths in NFS correctly. Use the new system for running qsub. |
1383:e6881c83438c |
09-Feb-2005 |
Nathan Binkert <binkertn@umich.edu> |
More fixes for running from anywhere.
util/pbs/send.py: always access the job directory via full path |
1381:6ede00091fa9 |
09-Feb-2005 |
Nathan Binkert <binkertn@umich.edu> |
Fixes to thes pbs send script
util/pbs/send.py: - add a -d to set the job root directory allowing one to run send.py from anywhere. - specify full paths to files instead of relative paths to make -d work and to allow ssh qsub to work again. - make the Link directory only copy links that point to regular files. |
1376:190de61fed5a |
05-Feb-2005 |
Nathan Binkert <binkertn@umich.edu> |
Make pbs submission scripts available to all. Fix up configuration scrupts to have better support for running on the simulation pool. |
1372:61ab4c4fe309 |
03-Feb-2005 |
Steve Reinhardt <stever@eecs.umich.edu> |
Minor bug fix/update to tracediff util.
util/tracediff: Fix bug (used += instead of .= for string concatenation in Perl... wrong language!).
Also updated for new config (s/Universe/root/). |
1369:40c6c8864896 |
03-Feb-2005 |
Nathan Binkert <binkertn@umich.edu> |
get rid of defined and just access the env dict directly get rid of the alias for true to True and false to False to keep consistent python syntax.
util/stats/info.py: Fix typo |
1331:a0b8619e0e72 |
19-Jan-2005 |
Ali Saidi <saidi@eecs.umich.edu> |
added total bytes/bandwidth/packets formulas to nics cleaned up stability code and wrote some better help for stats.py fixed sample bug in info.py
dev/ns_gige.cc: dev/ns_gige.hh: dev/sinic.cc: dev/sinic.hh: add total bandwidth/packets/bytes stats util/stats/info.py: fixed samples bug util/stats/stats.py: cleaned up stability code and wrote a bit better help |
1329:1e7bd1684f64 |
18-Jan-2005 |
Ali Saidi <saidi@eecs.umich.edu> |
Ability to check formulas |
1318:57d49cdb92a5 |
18-Jan-2005 |
Ali Saidi <saidi@eecs.umich.edu> |
now really done with stability stats stuff |
1317:0b6026d3000b |
18-Jan-2005 |
Ali Saidi <saidi@eecs.umich.edu> |
finished stability stats option |
1309:7daf185ddae8 |
14-Jan-2005 |
Ali Saidi <saidi@eecs.umich.edu> |
added stats code to check stability
util/stats/db.py: added working listticks (for printing) and retticks(for using in python) code util/stats/stats.py: added stability function that checks if all samples are within 10% of mean. |
1308:2078b53d65d9 |
14-Jan-2005 |
Ali Saidi <saidi@eecs.umich.edu> |
automerged had issues with the options.XXXXX in stats.py |
1307:e6b9976895c6 |
12-Jan-2005 |
Nathan Binkert <binkertn@umich.edu> |
More graph output junk
util/stats/stats.py: Add the graphing output for 6GHz and 8GHz runs |
1306:7908551ae2a8 |
12-Jan-2005 |
Nathan Binkert <binkertn@umich.edu> |
Update for newer MySQLdb
util/stats/db.py: Update for newer MySQLdb, the result of a blob in a query is an array.array now, so we need to convert that to a string |
1301:f85f6fb43474 |
13-Jan-2005 |
Ali Saidi <saidi@eecs.umich.edu> |
fix a display bug add option to limit results to a set of ticks fix ticks code to work
util/stats/info.py: change samples -> ticks and pass all parameters util/stats/stats.py: add option to select a set of ticks and fix display bug |
1269:419b73347a1e |
18-Nov-2004 |
Nathan Binkert <binkertn@umich.edu> |
stats python fixes for dealing with vectors better. graph tweaking ipkb stat and formulas from the command line.
util/stats/info.py: no need to raise an attribute error if two values aren't found in the exact same set of runs. Would be good to check that each run is the same though. util/stats/stats.py: more graph tweaking command to execute a formula from the command line. add interrupts per kilobyte of data |
1209:7eb1f18fcaa6 |
17-Nov-2004 |
Nathan Binkert <binkertn@umich.edu> |
Fix some commands.
util/stats/stats.py: we only need the system if we're issuing one of the commands that uses a stored formula. |
1165:234f3cdd541a |
15-Nov-2004 |
Nathan Binkert <binkertn@umich.edu> |
Fix more of the stats python stuff
util/stats/info.py: Make the binnings stuff work again. util/stats/stats.py: small patch for graphing make it so we can print out bins for the stat command |
1162:a45bd001ac39 |
14-Nov-2004 |
Nathan Binkert <binkertn@umich.edu> |
update graph generating code
util/stats/stats.py: tweak the graphing stuff for the new configurations we have. add more graph types. nsgige -> etherdev deal with memory hierarchy change by using L2 instead of L3 |
1123:6c1d34265571 |
27-Oct-2004 |
Steve Reinhardt <stever@eecs.umich.edu> |
Major documentation update for 570 F04.
sim/main.cc: Get rid of default.ini processing... it's kind of a pain and nobody uses it. util/tracediff: Add comments on usage. |
1076:0e05a8c0c598 |
10-Sep-2004 |
Nathan Binkert <binkertn@umich.edu> |
fix the options stuff
util/stats/stats.py: get the options from the options struct now gratuitously change the output directory for graphs. |
1068:6330fe678283 |
18-Aug-2004 |
Ali Saidi <saidi@eecs.umich.edu> |
added nate's memtest code to devtime
util/ccdrv/devtime.c: incorperated nate's changes for memory testing. |
1055:2a9f0039e579 |
10-Aug-2004 |
Ali Saidi <saidi@eecs.umich.edu> |
Merge zizzer:/bk/m5 into zeep.eecs.umich.edu:/z/saidi/work/m5 |
1053:2c6d9e60541b |
02-Aug-2004 |
Ali Saidi <saidi@eecs.umich.edu> |
merged full_cpu.ini, system.ini and devtime.c
util/ccdrv/devtime.c: coding style |
1051:d71e55bdc654 |
12-Jul-2004 |
Ali Saidi <saidi@eecs.umich.edu> |
modified ccdrv to print out raw data.
util/ccdrv/devtime.c: modified to print out raw data. |
1049:b175a798c8d4 |
09-Aug-2004 |
Nathan Binkert <binkertn@umich.edu> |
Totally re-do/reorganize the python part of the statistics code Make the database creation/removal/cleanup code use python Make formulas work with the database Add support to do some graphing, but needs more work Still need to work on vectors, 2d vectors, dists and vectordists |
1046:808492005d8c |
05-Aug-2004 |
Steve Reinhardt <stever@eecs.umich.edu> |
Integrate Python configuration script parsing into m5 itself.
SConscript: Add pyconfig/{pyconfig,code}.cc Add list of object description (.od) files. Include pyconfig/SConscript. base/inifile.cc: Get rid of CPP_PIPE... it never really worked anyway. base/inifile.hh: Make load(ifstream&) method public so pyconfig code can call it. sim/main.cc: Handle Python config scripts (end in '.py' instead of '.ini'). sim/pyconfig/m5configbase.py: Add license. Fix minor __setattr__ problem (2.3 related?) |
996:439a9c897004 |
12-Jul-2004 |
Nathan Binkert <binkertn@umich.edu> |
put the formatting fixes back into devtime
util/ccdrv/devtime.c: put the formatting fixes back. no tabs. |
994:42291e750752 |
12-Jul-2004 |
Ali Saidi <saidi@eecs.umich.edu> |
modified devtime to print out raw data |
993:bc33dc3beeea |
12-Jul-2004 |
Nathan Binkert <binkertn@umich.edu> |
formatting |
964:306b6856a5a0 |
05-Jul-2004 |
Ali Saidi <saidi@eecs.umich.edu> |
updated to work on all platforms (actually map sure that the physical address we are trying to access is mapped before accessing it.) |
963:9b3ac57fa611 |
05-Jul-2004 |
Ali Saidi <saidi@eecs.umich.edu> |
Added code to read any location in memory a repetative number of and average the results.
It works on alpha but I haven't got it working on x86 I think for lack of knowing a good address to read. |
930:2ed7c66c1e10 |
23-Jun-2004 |
Ali Saidi <saidi@eecs.umich.edu> |
Merge zizzer:/bk/linux into zeep.eecs.umich.edu:/z/saidi/work/m5-endian |
928:08ae65734c4b |
22-Jun-2004 |
Ali Saidi <saidi@eecs.umich.edu> |
Merge zizzer:/bk/linux into zeep.eecs.umich.edu:/z/saidi/work/m5-linux |
922:78b1a7063cd2 |
22-Jun-2004 |
Ali Saidi <saidi@eecs.umich.edu> |
pull from head before pushing linux tree |
751:f2158e9e7546 |
09-Jun-2004 |
Steve Reinhardt <stever@eecs.umich.edu> |
Merge zizzer:/bk/m5 into isabel.reinhardt.house:/z/stever/bk/m5 |
750:20b8e5623cf6 |
09-Jun-2004 |
Steve Reinhardt <stever@eecs.umich.edu> |
Minor restructuring of Python config code, mostly to avoid walking the source tree for *.odesc files every time we run the script. This is now factored out into load_odesc.py, which should be used to generate m5odescs.py, which is then used as the source of object & parameter definitions.
util/config/m5configbase.py: - Move odesc loading code to separate load_odescs.py, so maybe someday that can be done once at build time. - Print out children of a node in the order they are added. - Automatically assign a parent-less node to the first node for which it is used as the value of a parameter. (Easier demonstrated than explained.) - Calculate object paths dynamically when requested rather than trying to keep them up to date as objects get assigned to parents. |
704:545eb5fb5454 |
09-May-2004 |
Steve Reinhardt <stever@eecs.umich.edu> |
Very minor fixes.
util/tracediff: stats:file option is now stats:text_file |
702:53219b2f810b |
28-Apr-2004 |
Steve Reinhardt <stever@eecs.umich.edu> |
Minor enhancements to Python config stuff: - Add support for assigning NULL to SimObject pointers. In Python, this is a special value, distinct from None. - Initial, incomplete pass at regenerating C++ parameter code (declarations and INIT_PARAM macros) from .odesc files.
util/config/m5config.py: - Add support for assigning NULL to SimObject pointers. In Python, this is a special value, distinct from None. - Initial, incomplete pass at regenerating C++ parameter code (declarations and INIT_PARAM macros) from .odesc files. |
679:6846139f8e3f |
06-Apr-2004 |
Steve Reinhardt <stever@eecs.umich.edu> |
Beta version of Python configuration tool. Generates .ini files from Python script description.
arch/alpha/alpha_memory.cc: dev/io_device.cc: Add DEFINE_SIM_OBJECT_CLASS_NAME for intermediate SimObjects. test/paramtest.cc: Fix stupid spelling. |
664:8f0ea6011b74 |
24-Mar-2004 |
Nathan Binkert <binkertn@umich.edu> |
Don't indent namespaces because it just wastes space |
579:89d00699f484 |
23-Feb-2004 |
Steve Reinhardt <stever@eecs.umich.edu> |
Quote args properly in tracediff.
util/tracediff: Quote simulator args so args with spaces get handled correctly. |
408:d4c111599758 |
17-Dec-2003 |
Steve Reinhardt <stever@eecs.umich.edu> |
Miscellaneous minor fixes/improvements. Most notable is that the rundiff trace-output lossage is fixed!
base/pollevent.cc: Use SA_RESTART to keep blocked write() calls from failing with EINTR when signals happen. base/trace.hh: Make TRACING_ON depend on NDEBUG not being set (instead of DEBUG being set) so m5.opt/m5.fast do what we want. util/rundiff: Print header lines showing file/cmd names. |
404:9d95995db57c |
15-Dec-2003 |
Steve Reinhardt <stever@eecs.umich.edu> |
Minor enhancements to rundiff.
util/rundiff: Dump buffered lines on loss of sync so we see where things went wrong. Also return proper exit code from checkmatch() function. |
354:fbfbff4f09c3 |
09-Nov-2003 |
Steve Reinhardt <stever@eecs.umich.edu> |
Minor enhancements to rundiff script.
util/rundiff: Make sure Algorithm::Diff is loaded only if you need it (so it's ok if you don't have it installed). Add command-line options for things you might want to change: - diff algorithm - # of context lines - # of lines of lookahead |
338:6cf264d111b4 |
06-Nov-2003 |
Erik Hallnor <ehallnor@umich.edu> |
Various fixes to memory code.
cpu/memtest/memtest.cc: Disable probes until the work in all cases util/rundiff: Comment out Algorithm::Diff since its not needed. |
291:ba3bdac49128 |
02-Nov-2003 |
Nathan Binkert <binkertn@umich.edu> |
If a filter isn't specified, don't try to do any filtering If pcap_lookupnet fails, just assume the netmask is 0xffffff00 that's all we really wanted from it anyway. |
287:afb495378ac2 |
02-Nov-2003 |
Nathan Binkert <binkertn@umich.edu> |
add several new functions that can be called from the guest to tell the simulator to do something. exit -> exit_old (deprecated exit now takes an optional parameter that tells it to execute at a specified time in the future
The next four functions have two optional parameters. The first specifies a delay for how long to wait to issue the instruction. The second will tell the simulator to repeat that command at the specified interval.
checkpoint will trigger a checkpoint dumpstats will cause the simulator to dump stats resetstats will cause all stats to be reset dumpreset will dump and reset stats
all times are in nanoseconds
util/m5/Makefile: Clean up to make it a bit easier to muck with util/m5/m5.c: Add a bunch of new commands and clean up the command parsing path Convert atoi to strtoul so that we can use 64bit numbers and even hex if we want to. (this runs on alpha, so a long is 64bit) util/m5/m5op.h: add prototypes for new m5 instructions use uint64_t since it's nicer |
278:d70cd1f79d06 |
01-Nov-2003 |
Nathan Binkert <binkertn@umich.edu> |
Licenses |
275:df845558a024 |
01-Nov-2003 |
Nathan Binkert <binkertn@umich.edu> |
Commit a command for use inside a simulated system for communicating with the simulator. This program is generally compiled as the name m5 and installed in /usr/local/bin
This command uses opcodes that are invalid on a normal system, so don't expect it to do anything on a real system. |
247:b6d59dff0294 |
30-Oct-2003 |
Steve Reinhardt <stever@eecs.umich.edu> |
New tracediff script for invoking rundiff on two copies of the simulator. |
202:aa3db11c4e84 |
26-Oct-2003 |
Nathan Binkert <binkertn@umich.edu> |
Make the tap work work again
util/tap/Makefile: Make this stuff compile again util/tap/tap.cc: clean up some of the error messages |
196:fd06d955c1c5 |
25-Oct-2003 |
Steve Reinhardt <stever@eecs.umich.edu> |
New rundiff script.
util/rundiff: Completely rewritten from scratch. Can work standalone (with simple built-in diff algorithm) or use Algorithm::Diff package for better (but slower) diffs. |
139:4cb7c04da742 |
19-Oct-2003 |
Steve Reinhardt <stever@eecs.umich.edu> |
Check in a first stab at a script to sort the #include lines in a source file. Nate thought this would be cool, and I started on it, but lost interest. I'm mostly committing this so bk stops bugging me about it. Nate, don't start hacking on this until after the ISCA deadline! |
105:5440d7a4f376 |
15-Oct-2003 |
Nathan Binkert <binkertn@umich.edu> |
Global whitespace fixes Mainly removing whitespace at the end of lines. This will reduce future diffs/conflicts. Also adding a space after if, while, and for
This was all accomplished with: #!/usr/bin/perl -pi~ s/[ ]+$//; # there is a space and a tab in the brackets s/if\(/if (/g; s/for\(/for (/g; s/while\(/while (/g;
arch/alpha/alpha_memory.cc: arch/alpha/alpha_memory.hh: arch/alpha/arguments.hh: arch/alpha/ev5.cc: arch/alpha/fake_syscall.cc: arch/alpha/isa_traits.hh: arch/alpha/vtophys.cc: base/cprintf.cc: base/cprintf.hh: base/cprintf_formats.hh: base/dbl_list.hh: base/fast_alloc.cc: base/fast_alloc.hh: base/hybrid_pred.cc: base/hybrid_pred.hh: base/inet.cc: base/inifile.cc: base/intmath.cc: base/intmath.hh: base/misc.cc: base/mod_num.hh: base/pollevent.cc: base/random.cc: base/random.hh: base/range.hh: base/refcnt.hh: base/remote_gdb.cc: base/remote_gdb.hh: base/res_list.hh: base/sat_counter.cc: base/sat_counter.hh: base/sched_list.hh: base/compression/lzss_compression.cc: base/compression/lzss_compression.hh: base/compression/null_compression.hh: base/loader/coff_sym.h: base/loader/coff_symconst.h: base/loader/ecoff_object.cc: base/loader/object_file.cc: base/loader/object_file.hh: base/loader/symtab.cc: base/loader/symtab.hh: base/socket.cc: base/statistics.cc: base/statistics.hh: base/str.cc: base/str.hh: base/trace.cc: base/trace.hh: cpu/base_cpu.cc: cpu/base_cpu.hh: cpu/exec_context.hh: cpu/exetrace.cc: cpu/intr_control.hh: cpu/pc_event.cc: cpu/pc_event.hh: cpu/static_inst.hh: cpu/full_cpu/op_class.hh: cpu/full_cpu/smt.hh: cpu/memtest/memtest.cc: cpu/memtest/memtest.hh: cpu/simple_cpu/simple_cpu.cc: cpu/simple_cpu/simple_cpu.hh: dev/alpha_access.h: dev/alpha_console.cc: dev/alpha_console.hh: dev/console.cc: dev/console.hh: dev/disk_image.cc: dev/disk_image.hh: dev/etherbus.cc: dev/etherdump.cc: dev/etherint.cc: dev/etherlink.cc: dev/etherlink.hh: dev/ethertap.cc: dev/pcireg.h: docs/stl.hh: kern/tru64/dump_mbuf.cc: kern/tru64/printf.cc: kern/tru64/tru64_events.cc: kern/tru64/tru64_system.cc: kern/tru64/tru64_system.hh: sim/debug.cc: sim/eventq.cc: sim/eventq.hh: sim/host.hh: sim/main.cc: sim/param.cc: sim/param.hh: sim/prog.cc: sim/serialize.cc: sim/serialize.hh: sim/sim_events.cc: sim/sim_object.cc: sim/sim_time.cc: sim/sim_time.hh: sim/system.cc: test/bitvectest.cc: test/circletest.cc: test/initest.cc: test/lru_test.cc: test/nmtest.cc: test/offtest.cc: test/sized_test.cc: test/stattest.cc: test/symtest.cc: util/tap/tap.cc: util/term/term.c: formatting fixes |
81:6e7e20c22966 |
13-Oct-2003 |
Steve Reinhardt <stever@eecs.umich.edu> |
Add m5 emacs style file. |
56:5b096933002b |
10-Oct-2003 |
Steve Reinhardt <stever@eecs.umich.edu> |
Make include paths explicit and update makefile accordingly.
arch/alpha/alpha_memory.cc: arch/alpha/alpha_memory.hh: arch/alpha/arguments.cc: arch/alpha/arguments.hh: arch/alpha/ev5.cc: arch/alpha/ev5.hh: arch/alpha/fake_syscall.cc: arch/alpha/faults.cc: arch/alpha/isa_desc: arch/alpha/isa_traits.hh: arch/alpha/osfpal.cc: arch/alpha/vtophys.cc: arch/alpha/vtophys.hh: base/circlebuf.cc: base/compression/lzss_compression.cc: base/compression/lzss_compression.hh: base/cprintf.cc: base/cprintf.hh: base/fast_alloc.cc: base/fifo_buffer.cc: base/fifo_buffer.hh: base/hashmap.hh: base/hostinfo.cc: base/hostinfo.hh: base/hybrid_pred.cc: base/hybrid_pred.hh: base/inet.cc: base/inet.hh: base/inifile.cc: base/inifile.hh: base/intmath.cc: base/loader/aout_object.cc: base/loader/aout_object.hh: base/loader/ecoff_object.cc: base/loader/ecoff_object.hh: base/loader/elf_object.cc: base/loader/elf_object.hh: base/loader/exec_aout.h: base/loader/exec_ecoff.h: base/loader/object_file.cc: base/loader/object_file.hh: base/loader/symtab.cc: base/loader/symtab.hh: base/misc.cc: base/misc.hh: base/pollevent.cc: base/pollevent.hh: base/random.cc: base/random.hh: base/range.hh: base/remote_gdb.cc: base/remote_gdb.hh: base/res_list.hh: base/sat_counter.cc: base/sat_counter.hh: base/sched_list.hh: base/socket.cc: base/statistics.cc: base/statistics.hh: base/str.cc: base/trace.cc: base/trace.hh: cpu/base_cpu.cc: cpu/base_cpu.hh: cpu/exec_context.cc: cpu/exec_context.hh: cpu/exetrace.cc: cpu/exetrace.hh: cpu/intr_control.cc: cpu/intr_control.hh: cpu/memtest/memtest.cc: cpu/memtest/memtest.hh: cpu/pc_event.cc: cpu/pc_event.hh: cpu/simple_cpu/simple_cpu.cc: cpu/simple_cpu/simple_cpu.hh: cpu/static_inst.cc: cpu/static_inst.hh: dev/alpha_console.cc: dev/alpha_console.hh: dev/console.cc: dev/console.hh: dev/disk_image.cc: dev/disk_image.hh: dev/etherbus.cc: dev/etherbus.hh: dev/etherdump.cc: dev/etherdump.hh: dev/etherint.cc: dev/etherint.hh: dev/etherlink.cc: dev/etherlink.hh: dev/etherpkt.hh: dev/ethertap.cc: dev/ethertap.hh: dev/simple_disk.cc: dev/simple_disk.hh: kern/tru64/tru64_syscalls.cc: kern/tru64/tru64_syscalls.hh: sim/debug.cc: sim/eventq.cc: sim/eventq.hh: sim/main.cc: sim/param.cc: sim/param.hh: sim/prog.cc: sim/prog.hh: sim/serialize.cc: sim/serialize.hh: sim/sim_events.cc: sim/sim_events.hh: sim/sim_object.cc: sim/sim_object.hh: sim/sim_time.cc: sim/system.cc: sim/system.hh: sim/universe.cc: test/circletest.cc: test/cprintftest.cc: test/initest.cc: test/nmtest.cc: test/offtest.cc: test/paramtest.cc: test/rangetest.cc: test/stattest.cc: test/strnumtest.cc: test/symtest.cc: test/tokentest.cc: test/tracetest.cc: util/tap/tap.cc: Make include paths explicit. |
4:7805f2ade389 |
07-Oct-2003 |
Steve Raasch <sraasch@umich.edu> |
fixing CVS permissions oops |
2:7ab458527c41 |
07-Oct-2003 |
Steve Raasch <sraasch@umich.edu> |
Import changeset
Doxyfile: LICENSE: arch/alpha/alpha_memory.cc: arch/alpha/alpha_memory.hh: arch/alpha/arguments.cc: arch/alpha/arguments.hh: arch/alpha/ev5.cc: arch/alpha/ev5.hh: arch/alpha/fake_syscall.cc: arch/alpha/faults.cc: arch/alpha/faults.hh: arch/alpha/isa_desc: arch/alpha/isa_traits.hh: arch/alpha/osfpal.cc: arch/alpha/osfpal.hh: arch/alpha/vtophys.cc: arch/alpha/vtophys.hh: arch/isa_parser.py: base/bitfield.hh: base/callback.hh: base/circlebuf.cc: base/circlebuf.hh: base/cprintf.cc: base/cprintf.hh: base/cprintf_formats.hh: base/date.cc: base/dbl_list.hh: base/endian.hh: base/fast_alloc.cc: base/fast_alloc.hh: base/fifo_buffer.cc: base/fifo_buffer.hh: base/hashmap.hh: base/inet.cc: base/inet.hh: base/inifile.cc: base/inifile.hh: base/intmath.cc: base/intmath.h: base/kgdb.h: base/misc.cc: base/misc.hh: base/mod_num.hh: base/object_file.cc: base/object_file.hh: base/pollevent.cc: base/pollevent.hh: base/random.cc: base/random.hh: base/range.hh: base/refcnt.hh: base/remote_gdb.cc: base/remote_gdb.hh: base/res_list.hh: base/sched_list.hh: base/socket.cc: base/socket.hh: base/statistics.cc: base/statistics.hh: base/str.cc: base/str.hh: base/symtab.cc: base/symtab.hh: base/trace.cc: base/trace.hh: dev/alpha_access.h: dev/alpha_console.cc: dev/alpha_console.hh: dev/console.cc: dev/console.hh: dev/disk_image.cc: dev/disk_image.hh: dev/etherbus.cc: dev/etherbus.hh: dev/etherdump.cc: dev/etherdump.hh: dev/etherint.cc: dev/etherint.hh: dev/etherlink.cc: dev/etherlink.hh: dev/etherpkt.hh: dev/ethertap.cc: dev/ethertap.hh: dev/pcireg.h: dev/simple_disk.cc: dev/simple_disk.hh: kern/tru64/tru64.hh: kern/tru64/tru64_syscalls.cc: kern/tru64/tru64_syscalls.hh: sim/async.hh: sim/base_cpu.cc: sim/base_cpu.hh: sim/cache/lzss_compression.cc: sim/cache/lzss_compression.hh: sim/cache/null_compression.hh: sim/debug.cc: sim/debug.hh: sim/eventq.cc: sim/eventq.hh: sim/exec_context.cc: sim/exec_context.hh: sim/exetrace.cc: sim/exetrace.hh: sim/host.hh: sim/hybrid_pred.cc: sim/hybrid_pred.hh: sim/intr_control.cc: sim/intr_control.hh: sim/main.cc: sim/memtest.cc: sim/memtest.hh: sim/op_class.hh: sim/param.cc: sim/param.hh: sim/pc_event.cc: sim/pc_event.hh: sim/predictor.hh: sim/prog.cc: sim/prog.hh: sim/sat_counter.cc: sim/sat_counter.hh: sim/serialize.cc: sim/serialize.hh: sim/sim_events.cc: sim/sim_events.hh: sim/sim_exit.hh: sim/sim_object.cc: sim/sim_object.hh: sim/sim_time.cc: sim/sim_time.hh: sim/simple_cpu.cc: sim/simple_cpu.hh: sim/smt.hh: sim/static_inst.cc: sim/static_inst.hh: sim/std_types.hh: sim/system.cc: sim/system.hh: sim/universe.cc: test/Makefile: test/bitvectest.cc: test/circletest.cc: test/cprintftest.cc: test/foo.ini: test/initest.cc: test/initest.ini: test/lru_test.cc: test/nmtest.cc: test/offtest.cc: test/paramtest.cc: test/rangetest.cc: test/sized_test.cc: test/stattest.cc: test/strnumtest.cc: test/symtest.cc: test/tokentest.cc: test/tracetest.cc: util/rundiff: util/tap/Makefile: util/tap/tap.cc: util/term/Makefile: util/term/term.c: RCS to BitKeeper sim/main.cc: Initial revision sim/main.cc: Added base SMT support to SS3 distribution sim/main.cc: Corrected statistics in sim-smt Added "cnt_*" statistics to sim-smt and sim-outorder Added execution tracing to sim-outorder sim/main.cc: Numerous minor fixes. Implemented Ideal and Random fetch policies. Numerous new statistics. sim/main.cc: A few minor bug fixes to collapsing RUU & "ideal" fetch policy. sim/main.cc: Snapshot of MICRO99 work in progress. Lots of SMT stuff, EIO fixes, etc. sim/main.cc:
-> New fetch stage: - Fetch a block at a time - Execute in fetch -> Removed execute from ruu_dispatch() -> Cleaned up sim/main.cc: Added build time-stamp to top of simulation log sim/main.cc: Corrected error in priority rotation routine Added -max:mult option Modified makefile to use egcs compiler Added the -t option bkdwn.pl sim/main.cc: Added memory usage display Fixed #define for number of RS_LINKs sim/main.cc: Should be able to build other simulators (sim-fast, sim-eio, etc.) using "make -f Makefile.orig" (for Alpha at least, not quite for PISA). sim/main.cc: More SMT vs. non-SMT cleanup: 'make sim-X' now works for most X. sim/main.cc: Changed function of Fetch/Decode/Dispatch pipe: a) Fetch only if room in fetch queue b) Decode only if pipe advanced as a result of dispatching a packet c) Dispatch a packet only if: 1) Room for all insns in RUU 2) Room for all insns in LSQ 3) Room for all insns in INT Register File 4) Room for all insns in FP Register File Added ROB structure a) Instruction is placed in RUU & ROB at dispatch b) Instruction is removed from RUU at writeback (except stores) c) Instruction is removed from ROB at commit Added support for counting physical register usage (INT and FP) a) subtract from "free" count at dispatch b) add back when instruction is removed from ROB Added "my_index" field to RUU_station (simplifies reverse-lookups) Removed all remaining ptrace stuff RUU & LSQ now dump squashed instructions instead of marking them squashed - No cost! Reworked commit stage to use ROB instea sim/main.cc: - Added sc_dist1 stat type as a user-transparent special case of distribution with unit-size buckets: saves an unnecessary divide on every sample - Minor changes to compile as C++ code base/fast_alloc.cc: base/fast_alloc.hh: Major reorganization. Split sim-smt.c into multiple files, compile with C++, split ROB & RUU structures, numerous small formatting and performance changes. sim/eventq.cc: sim/eventq.hh: - Replaced SimpleScalar event queue code with smt_eventq.{cc,hh} - Eliminated unused cache:flush option - Initialize bpred history regs and BTB and RAS entries to provide repeatable results - Added reset_spec_state() function: cleans up interface to spec_state.c sim/eventq.cc: sim/eventq.hh: Major reorganization of memory-system code and interface. base/fast_alloc.cc: sim/eventq.cc: sim/eventq.hh: Moved C++ files to .cc/.hh, compile C files with C compiler. base/dbl_list.hh: Initial check-in: doubly-linked list template class. sim/eventq.hh: Added when_created and when_scheduled time-tags for debugging base/fast_alloc.hh: Plug memory leak sim/eventq.cc: Runahead_Prefetch memory-system support, including miss notification events in cache. sim/eventq.cc: sim/eventq.hh: Merged branch "mt-frontend" into trunk of CVS tree Changes include: Multi-threaded Fetch & Decode Correct functionality of branch misprediction fixup (MT only) Improved stats base/intmath.cc: base/intmath.h: Integer math functions. base/fast_alloc.cc: base/fast_alloc.hh: Remove carriage returns. base/intmath.h: Add Min/Max template functions sim/prog.cc: sim/prog.hh: Adding smt-safe and smt-fast. These are functional simulators based on sim-safe and sim-fast. Despite their names, they do not actually don't handle multithreaded programs yet. The runfile functionality was pulled out of sim-smt.cc into its own files. This allows all three simulators to use runfiles.
NOTE: There is a lot of duplicated code in these three simulators that should probably be separated out. The macro type definitions in engin.hh are similar to the definitions in smt-safe.cc and smt-fast.cc sim/prog.cc: Add support for loading a kernel with simplescalar. Also add skeleton for loading a disk image to boot from with simplescalar.
Hook for loading palcode is in place, but not implemented. Initial parameters passed to kernel at boot time are not passed properly. sim/prog.cc: Only support loading kernel/disk image if we're running FULL_SYSTEM sim/prog.cc: Make loading PAL a separate operation. Also separate kernel loading and disk loading so that it can only be done in FULL_SYSTEM. Finally, we need to also load the console image file. I'm not sure what's in there, maybe some stuff from SRM, but it's needed for proper execution. dev/alpha_console.cc: dev/alpha_console.hh: Console device implementation from simos. This is a simple device that supports the necessary console functions for booting. sim/prog.cc: sim/prog.hh: Separate the kernel loader and the program loader for simplicity since they don't share much code. arch/alpha/alpha_memory.hh: Add this somewhat gross hack to take care of the fact that alpha has the this load locking and conditional store mechanism. sim/prog.cc: Enable asids again. This makes multithreaded programs work again. I guess you could say that this was an accidental commit. Sorry sim/main.cc: Clean up Simplescalar copyright notice. sim/prog.cc: Allow '-' for stdout as well as stdin in run file. dev/alpha_console.cc: dev/alpha_console.hh: sim/prog.cc: arch/alpha/alpha_memory.hh: Replace the interface to the memory system. Basically this change goes away from the model of passing an address, and a number of bytes and getting/setting data. This change rather creates a memory_request packet (a simple struct) that bundles all of the necessary information together to pass into the memory system when making a request. This makes the function call syntax consistent even when you have virtual to physical translation and when you have strange flags like locked, or physical that you need to pass to your memory system. It has the added benefit of allowing the layers to pass data to each other, possibly skipping layers in between. This was necessary for the whacked out behavior that store conditional has on alpha. In addition, the entire memory system is now consistent in that it will return an alignment fault due to an unaligned access. This is necessary to properly model a full alpha system, but changes the behavior of bogus bad path loads and stores that access unaligned data. Because base/fast_alloc.cc: base/fast_alloc.hh: Major enhancement of FastAlloc debug code (uncomment #define in fast_alloc.hh to enable). Can now dump summary of in-use objects by type and address/type of oldest n objects (thank you RTTI!). Should be easier to identify memory leaks now. base/res_list.hh: file res_list.hh was initially added on branch segmented_iq. sim/sat_counter.hh: file sat_counter.hh was initially added on branch segmented_iq. sim/std_types.hh: file std_types.hh was initially added on branch segmented_iq. base/fast_alloc.hh: base/res_list.hh: sim/sat_counter.hh: sim/eventq.cc: sim/eventq.hh: sim/prog.cc: sim/std_types.hh: Merged branch "segmented_iq" -> Objectized the IQ and LSQ -> Implemented Standard, Sezned, and Segmented IQ's -> Major fixes to wrong-path execution (primarily involving data dependencies) base/res_list.hh: g++ is braindead, so I cannot pull template functions out into a .cc file. Instead, pull large functions out of the class definition and inline them. This leads to a much more readable class definition.
In addition, since these functions are inlined, youseems to be what is intended anyway. sim/prog.cc: Move some variables to smt_prog so that targets other than sim-smt can use them. sim/main.cc: remove the dlite debugger (for smt at least) dev/alpha_console.cc: sim/eventq.cc: sim/main.cc: I knew I had done this for a reason Change 64 bit types back to long for alpha and replace all instances of stuff like %lld to use FMT64d and the like.
The reason this is necessary is because TRU64 does not understand what %lld is and will print out "ld" instead of actually printing the number.
So, PLEASE use the FMTxxx stuff instead of sticking %lld, %llx, %016llx and such into the code. sim/main.cc: Don't want FMT64d for things declared 'long': this doesn't work when FMT64d evaluates to "%lld". Just use "%ld" instead. dev/console.cc: dev/console.hh: dev/disk_image.cc: dev/disk_image.hh: dev/pcireg.h: dev/simple_disk.cc: dev/simple_disk.hh: Add several initial devices for full alpha system simulation. Many of these devices are based on SimOS devices dev/alpha_console.cc: dev/alpha_console.hh: Update the alpha_console to take advantage of the simple disk interface sim/eventq.cc: sim/eventq.hh: Make it so you can service events that will happen in the future base/trace.cc: base/trace.hh: This is a simple tracing facility. The idea is that there is a bitvector where each bit represents something that you may want to trace. The end result is that you can at runtime turn on and off different tracing statements in the code so that you only see messages for things that you care about.
This is only currently used in the devices framework, but I would like to see it eventually replace the debug, warn, and info functions. sim/intr_control.hh: Initial abstraction for a processor and interrupt controller arch/alpha/alpha_memory.cc: arch/alpha/alpha_memory.hh: Add full support for the SYSTEM_EV5 model in smt-safe. With this model, the user should be able to boot Tru64 unix.
Several aspects of the memory subsystem were changed to accomidate this ability: - The C memory access functions no longer return an md_fault_type. - The prot_* functions no longer take a memrequest, and no longer return an md_fault type. They now take a single address and a size. This is because the prot_* functions don't need translation abilities, etc. - The prot_* functions will by default fail to work unless they are specifically implemented for the class that you want to use them with. - The unaligned parameter to the READ_* and WRITE_* function calls was added back so that exceptions that occur on STQ_U, LDQ_U, etc get the proper faulting address. - The memory controller now supports adding an arbitrary number of objects at arbitrary memory ranges so that a variety of devices can be accomidated. - The physical_memory class now not only emulates a specific amount of memor base/trace.cc: Check for existence of environment variable dev/console.cc: Temporary fix to get this to compile under Linux. sim/main.cc: Flush stdout before dumping stats. sim/exec_context.cc: sim/exec_context.hh: sim/exetrace.cc: sim/exetrace.hh: sim/main.cc: sim/prog.cc: sim/prog.hh: arch/alpha/alpha_memory.cc: arch/alpha/alpha_memory.hh: arch/alpha/fake_syscall.cc: Pull per-cpu variables into cpu_t object as first step toward multiprocessor support. Also encapsulated execution context into a single object. Program loading code also significantly reorganized. Syscall redirection to host machine temporarily broken (must use EIO files for now). arch/alpha/fake_syscall.cc: sim/eventq.cc: sim/exec_context.cc: sim/exetrace.cc: sim/main.cc: sim/prog.cc: Update source tree to deal with shuffling of files and renaming of files. Maybe a tiny bit of style here and there for kicks too. sim/prog.cc: Fix more stuff for reorg. arch/alpha/alpha_memory.cc: arch/alpha/alpha_memory.hh: arch/alpha/fake_syscall.cc: base/dbl_list.hh: base/fast_alloc.cc: base/fast_alloc.hh: base/intmath.cc: base/intmath.h: base/res_list.hh: base/trace.cc: base/trace.hh: dev/alpha_console.cc: dev/alpha_console.hh: dev/console.cc: dev/console.hh: dev/disk_image.cc: dev/disk_image.hh: dev/pcireg.h: dev/simple_disk.cc: dev/simple_disk.hh: sim/main.cc: sim/eventq.cc: sim/eventq.hh: sim/exec_context.cc: sim/exec_context.hh: sim/exetrace.cc: sim/exetrace.hh: sim/intr_control.hh: sim/prog.cc: sim/prog.hh: sim/sat_counter.hh: sim/std_types.hh: Some style changes remove all of the $Log$ crap add $Id$ strings to the top of all files. arch/alpha/alpha_memory.cc: Convert memory request objects to have a bitvector of flags. sim/sat_counter.hh: Minor bug-fixes to statistics & options Saturating counter wasn't initializing properly arch/alpha/fake_syscall.cc: Compile on OpenBSD base/fast_alloc.cc: dev/console.cc: dev/disk_image.cc: sim/eventq.cc: sim/eventq.hh: sim/exec_context.hh: sim/exetrace.cc: sim/exetrace.hh: sim/intr_control.hh: sim/prog.cc: sim/sat_counter.hh: Move extern "C" statements out of C++ files and into the C headers with #ifdef __cplusplus guarding the extern. base/str.cc: base/str.hh: My lame old reference counting string class. It's really not too bad. base/intmath.cc: removed unused variable sim/main.cc: add option -inifile to load the config file base/inifile.cc: base/inifile.hh: sim/main.cc: rename configfile to inifile base/intmath.h: Functions to determine if a character is hex, dec, oct. Convert hex to int base/str.cc: base/str.hh: Add a tokenize function. Fix a bug in the CopyRight function Add a const iterator Add a string to number function that will deal with hex, decimal, octal, positive numbers and a few suffixes. Complete with bounds checking and syntax checking base/inifile.cc: base/inifile.hh: Cope with fix in CopyRight function from the String class. Add a find default which whill check for a Default= parameter. Add #include guards dev/alpha_console.cc: style. change assertion sim/sat_counter.hh: Added instruction-type identification methods to dyn_inst Continued work on the segmented IQ: - Stats - Seg0 load mechanisms - "short" dump function - free_slots_last_cycle model improvement Added stats to sat_counter sim/main.cc: Parse .ini file for options in main.cc. sim/main.cc: Reindent following style guide. sim/sat_counter.hh: Updates to the segmented IQ sim/hybrid_pred.hh: Initial check-in sim/predictor.hh: Initial check-in of predictor Mods to predictor stats sim/hybrid_pred.hh: sim/predictor.hh: sim/sat_counter.hh: Class heirarchy fixes sim/predictor.hh: sim/sat_counter.hh: Now the predictors actually work! sim/sat_counter.hh: Final fixes to the SaturatingCounterPred Corrections to the LRP and HMP sim/sat_counter.hh: Bug fixes and predictor mods to segmented IQ during ISCA-2002 work Dumping of queue contents is a little more flexible for debugging arch/alpha/fake_syscall.cc: sim/prog.cc: Updated fake syscall support (for most common syscalls) so we can once again run straight binaries (not just EIO files). sim/sat_counter.hh: Final updates (for now) to the Segmented IQ Cleaning up the fetch stage Speed improvements to the Saturating Counter Predictor Object sim/prog.cc: sim/prog.hh: Fix parameter bug in process_t::dup_fd (causing stdio fd's not to get remapped correctly). base/str.hh: Add forward decl of class ostream base/inifile.cc: base/inifile.hh: Rename members to conform to common style. base/inifile.cc: Oops... looks like CPP_PIPE doesn't work. sim/main.cc: sim/sat_counter.hh: sim/sim_object.cc: sim/sim_object.hh: New configuration scheme based on .ini files and hierarchical descriptions. Currently in a transitional state: only sim_smt CPU, IQ, Cache, Bus, and Mem objects are configured this way. Old mmodel.{hh,cc} completely gone. base/inifile.cc: Fix pipe directionality for Linux: CPP_PIPE works again. sim/sim_object.cc: Updates for INI-file parameters for Seznec and Segmented IQ models Fixed naming of IQ classes sim/sim_object.cc: sim/sim_object.hh: - Minor revisions to ParamContext, SimObjectBuilder, etc. to allow creation of SimObjects outside of configuration hierarchy. - Encapsulated magic boilerplate for object creation in macros to simplify usage and make future changes like this simpler. arch/alpha/fake_syscall.cc: sim/exec_context.cc: sim/exec_context.hh: sim/prog.cc: sim/prog.hh: Rename process_t --> Process, eio_process_t -> EioProcess, live_process_t -> LiveProcess base/str.cc: base/str.hh: flesh out string class base/str.cc: This time commit the right file. base/str.cc: fix Tokenize for the case where the last string is only a single character sim/sim_object.cc: Instantiate Param<String>::showValue(). sim/sim_object.cc: sim/sim_object.hh: - Auto-register global parameter contexts for non-SimObject parameters - added ParamContext::parseAllContexts() - Finish and test enum params (SimpleEnumParam, MappedEnumParam) - Add vector-valued parameters: VectorParam<T>, SimObjectVectorParam, SimpleEnumVectorParam, MappedEnumVectorParam - Factor parsing & displaying functions to share code between scalar and vector parameter objects - Fix bug where a SimObjectClass constructor could be called before the static SimObjectClass::classMap constructor - Add "help" functions to dump parameter descriptions (ParamContext::describeAllContexts() and SimObjectClass::describeAllClasses()) sim/main.cc: Dump out config file parameters on '-h' cmd-line argument. sim/sim_object.cc: sim/sim_object.hh: - Add showType() method to display parameter type as string for help - Change EnumParam types to include specific enum type (avoids casting) sim/sim_object.hh: Minor updates for statistics, new compilers, etc. Moved some options into new options model base/inifile.cc: base/inifile.hh: sim/exetrace.cc: sim/exetrace.hh: sim/main.cc: sim/param.cc: sim/param.hh: sim/prog.cc: sim/prog.hh: sim/sim_object.cc: sim/sim_object.hh: Eliminated old SimpleScalar options package from sim_smt, shifting everything over to new parameter objects fed by .ini-style configuration files. Parameters can be set on command line using '--<sec>:<param>=<value>'. All other cmd-line options are assumed to be config file names, except '-h' prints help msg.
Got rid of *_reg_options(), *_check_options(), *_uninit() calls. Moved more initialization into constructors; remaining code is now automagically executed by providing checkParams() and cleanup() methods on ParamContext-derived objects. (See exetrace.cc, for example.)
Runfile is gone; processes are initialized as simulation objects.
Split parameter code out of sim_object.{cc,hh} into param.{cc,hh}.
Moved a bunch of CPU object methods from sim_smt.cc to cpu.cc.
smt_reg_stats calls now need to know number of threads. Can be done by explicit argument to global function, or (for backward compatibility) calling CPU object method with same parameters as old global function.
Renamed "SimControl" par base/circlebuf.cc: base/circlebuf.hh: Add a circular buffer class that holds string data. You can set the size of the buffer, and basically keep writing to it, and later read the last size bytes from the buffer. kinda like tail -f test/Makefile: test/bitvectest.cc: test/circletest.cc: test/foo.ini: test/initest.cc: test/initest.ini: test/strnumtest.cc: test/tokentest.cc: Add a little bit of test framework and a bunch of initial tests test/paramtest.cc: Move the param test thing to the new test framework, though it doesn't compile right now since I couldn't figure it out base/inifile.cc: Disable pipes for cpp: hangs if cpp output is bigger than kernel pipe buffer. sim/sim_object.cc: Check for accidental redefinition of SimObject class names. base/str.cc: Support exponents in StringToNumber.
It should be noted, that while StringToNumber does bounds checking, the bounds checking has not been mathmatically proven, so it could have mistakes. base/range.hh: Simple range class that will parse a range and provides comparison operators base/trace.hh: New tracing options test/Makefile: test/rangetest.cc: add a new test for the Range class sim/exetrace.cc: sim/exetrace.hh: sim/main.cc: Create an ExecutionTrace class that encapsulates the old exe_trace stuff. Convert the last of the old options stuff to the new params and get rid of the old options files. Get rid of the old range files. arch/alpha/fake_syscall.cc: Stupid linuxisms sim/main.cc: sim/sim_object.cc: Output config info to cerr instead of cout. sim/main.cc: Load default.ini if the file exists test/Makefile: test/bitvectest.cc: test/circletest.cc: test/initest.cc: test/paramtest.cc: test/rangetest.cc: test/strnumtest.cc: test/tokentest.cc: Add Id tags sim/sim_object.cc: Bug fix to allow use of "default=" in ini-files sim/prog.cc: Fix for wacky compiler bug base/inifile.cc: Modified some ROB statistic labels to make them more uniform Re-implimented rob-caps arch/alpha/vtophys.cc: arch/alpha/vtophys.hh: Add support for doing virtual to physical translation using the in-memory page table base/kgdb.h: base/remote_gdb.cc: base/remote_gdb.hh: Basic support for remote debugging base/pollevent.cc: base/pollevent.hh: A class abstraction for poll base/socket.cc: base/socket.hh: Support for tcp server sockets base/symtab.cc: base/symtab.hh: simple symbol table loaded from a preprocessed file dev/alpha_access.h: dev/alpha_console.hh: split alpha access into a separate file so that building console code is simpler dev/disk_image.cc: dev/disk_image.hh: use a string for the disk image file name instead of a char * arch/alpha/alpha_memory.cc: Make the MCSR segment check more explicit rearrange base/trace.cc: Make trace stuff use new parameter stuff base/trace.hh: Fix DPRINTF and DPRINTFN macros Add a few new trace flags sim/exetrace.cc: sim/exetrace.hh: Add more features to the exetrace stuff. Make use of the symbol table support. base/remote_gdb.cc: fix DPRINTFs dev/alpha_console.cc: dev/console.cc: dev/console.hh: Change the console framework to use the new pollevent stuff. This adds support for a console that can be attached and detached at runtime via a tcp connection (telnet). There is also a circular buffer integrated into the console so that upon connection, any missed console text is output to the console. In the future, this should easily allow for multiple system consoles to be attached. base/inifile.cc: base/str.hh: Move the string hash function base/symtab.cc: base/symtab.hh: sim/exetrace.cc: Add support to lookup symbols by name, and take advantage of that support for looking up symbols for panic and badaddr base/str.cc: base/str.hh: change to new formatting. naming convention still dosn't match new style dev/console.cc: dev/console.hh: Fix console code so that typed characters are properly handled. When clearing interrupts, be explicit with regards to which ones. arch/alpha/vtophys.cc: a tad bit of error checking sim/exetrace.cc: sim/exetrace.hh: EXE-Trace extensions Disabled "good_mem" memory layer... this still needs to be properly removed base/kgdb.h: Add more kgdb commands base/trace.hh: Tracing for ISP sim/exec_context.cc: sim/exec_context.hh: sim/exetrace.cc: sim/exetrace.hh: sim/prog.cc: sim/prog.hh: Update to BTB functionality Fixed numerous statistics Fixed path of store instructions so that they _all_ go through issue stage Updates to exetrace functionality sim/eventq.cc: sim/eventq.hh: Replaced every-cycle termination checks in sim_main() with events.
Added per-thread instruction-count-based event queues to handle termination based on committed instruction count. These are now specified via parameters to the FullCPU object (max_insts_any_thread and max_insts_all_threads) rather than global parameters under the [max] context.
Also replaced break_cycle check with DebugBreakEvent.
Some cleanup of eventq.{cc,hh}. sim/prog.hh: Don't die if included under FULL_SYSTEM: just skip contents. sim/base_cpu.cc: sim/base_cpu.hh: sim/simple_cpu.cc: sim/simple_cpu.hh: Added SimpleCPU object to do sim_safe type simulation in sim_smt. Created abstract base class BaseCPU as common parent of (detailed) CPU and SimpleCPU. sim/exec_context.cc: sim/exec_context.hh: sim/prog.cc: sim/prog.hh: Register Process object stats using SimObject reg_stats() method rather than indirectly via Thread end exec_context objects. sim/base_cpu.cc: sim/base_cpu.hh: sim/main.cc: sim/sim_object.cc: sim/sim_object.hh: Changes to eliminate the global 'the_cpu' pointer to allow for mutliple CPUs/systems. Specifically:
- Add findMaxThreadsPerCPU() and tickAll() static methods to BaseCPU class.
- Added generic printExtraOutput() method for all SimObjects, to dump output at the end of simulation that is not covered by stats. Use this hook on CPU object to call dump_floss_reasons(). sim_aux_stats() is now obsolete.
- printExtraOutput() takes an ostream& rather than a FILE*, so dump_floss_reasons() had to be converted to C++ I/O.
- Fixed a bug in floss_reasons.cc where an additional mem_access_result_t item (MA_NOT_PREDICTED) did not have a corresponding entry in mem_access_result_item_descr. This resulted in "(null)" being printed with sprintf I/O (which no one had noticed, apparently), but caused a segfault using streams. sim/exec_context.hh: sim/main.cc: sim/prog.cc: sim/prog.hh: sim/sat_counter.hh: sim/simple_cpu.cc: Rename many stats to include config hierarchy path, so results from different CPUs/systems can be distinguished.
Move stats.c/h into C++... renamed to stats.cc/hh. Added overloads of most stat registration functions to allow 'string' rather than 'char *' stat names & formulas... no more sprintf needed! sim/base_cpu.cc: sim/base_cpu.hh: Add sim_num_insn stats as per-CPU and total number of simulated instructions so we can continue to calculate sim_inst_rate. sim/simple_cpu.cc: Fix sim_num_insn stat for SimpleCPU. sim/simple_cpu.cc: sim/simple_cpu.hh: Move global memory interface objects into SimpleCPU object. Made read/write functions SimpleCPU members for easier access to same. Can now do multiple systems in non-FULL_SYSTEM mode. sim/param.hh: sim/sim_object.cc: sim/sim_object.hh: SimObjects now look in the .ini database first using the object instance name (e.g., sys.cpu0) *then* using the configuration class name (e.g., DetailedCPU). This makes it easier to use a common description but override a few simple things like the workload. base/remote_gdb.cc: dev/console.cc: dev/disk_image.cc: Make ConsoleListener & GDBListener explicitly print which ports they're listening on. arch/alpha/alpha_memory.cc: arch/alpha/ev5.cc: arch/alpha/ev5.hh: arch/alpha/fake_syscall.cc: arch/alpha/vtophys.hh: base/remote_gdb.cc: base/symtab.cc: base/symtab.hh: dev/alpha_console.cc: dev/alpha_console.hh: dev/console.cc: sim/exec_context.cc: sim/exec_context.hh: sim/exetrace.cc: sim/exetrace.hh: sim/main.cc: sim/prog.hh: sim/simple_cpu.cc: sim/simple_cpu.hh: Cleanup of full-system global variables, primarily in simple_cpu.cc, to allow multi-system simulations. (Multiple systems not yet yested though.) Also changes to build sim_smt in full-system mode (though with only SimpleCPU and not the full timing CPU for now).
Still to do: minimize changes in SimpleCPU code between full-system and application modes... way too many ifdefs there. Much of the full-system stuff moved into SimpleCPU should be put in a new System object to allow multiprocessor simulations.
Converted last remaining modules from C to C++ (mostly in /old). Renamed all .c files to .cc and a few .h files to .hh.
Renamed architecture-specific files in arch/$TARGET from $TARGET.{cc,hh,def} to machine.{cc,hh,def} to get rid of pointless intermediate files in object directory. Split exo-specific definitions out of machine.hh into machine_exo.h.
Specifics:
In machine.def, null resource descriptors must be FUClamd_NA (and not NA) to pass C++ type checking.
Enhanced error checking/reporting in bas base/range.hh: Use the templated type for intermediate storage. Added "valid" flag and method to the user can determine if the range parse or assignment was successful. sim/eventq.cc: sim/eventq.hh: Modifications to properly count commited instructions... [no impacts] test/Makefile: test/offtest.cc: New test test/foo.ini: test/initest.cc: add Another piece to the test arch/alpha/ev5.hh: Properly do alternate mode arch/alpha/alpha_memory.cc: arch/alpha/ev5.cc: sim/simple_cpu.cc: arch/alpha/ev5.cc: arch/alpha/isa_traits.hh: base/hashmap.hh: formatting arch/alpha/alpha_memory.cc: C style comment -> C++ style arch/alpha/alpha_memory.cc: more formatting arch/alpha/alpha_memory.cc: Add ALT_MODE support to the tlb lookup and make mode handling more sane test/Makefile: test/symtest.cc: Add a test for the symboltable base/symtab.cc: Avoid some temporary objects base/trace.cc: add a hexdump like dump function for dumping memory base/trace.hh: Add more trace flags Add DUMP which does a hexdump with semantics like DPRINTF flush standard out after a debugging print or dump dev/simple_disk.cc: Add some debugging dumps sim/param.cc: sim/param.hh: sim/sim_object.cc: Because of order of construction, call a function that will return a ParamList that will construct it as soon as it is needed dev/pcireg.h: sim/simple_cpu.cc: sim/simple_cpu.hh: Flesh out the pci configuration space support. Add configuration file support for vendor ID and device ID. Clean up debugging sim/simple_cpu.cc: sim/simple_cpu.hh: Don't execute pmap_scavenge_boot. rename console_panic_addr to panic_addr. change some warn()s to DPRINTF() base/pollevent.cc: base/pollevent.hh: Don't poll every cycle. Use SIGIO to kick a poll off. Make it possible to disable events sim/exetrace.cc: sim/exetrace.hh: sim/simple_cpu.cc: Completely rework the exetrace stuff. Make a clas that holds all of the trace data for a particular cycle. Add a N entry trace log so that one can dump the last N cycles leading up to some sort of crash. When printing a branch instruction, print the target symbol if available instead of the address dev/console.cc: dev/console.hh: sim/simple_cpu.cc: Make console code deal with not being polled every cycle sim/simple_cpu.cc: Don't interrupt while in PAL base/remote_gdb.cc: base/remote_gdb.hh: constify some functions. fix some buffer handling. add some debugging help sim/param.cc: Initialize paramList to NULL sim/exetrace.cc: sim/exetrace.hh: sim/simple_cpu.cc: Rework the execution trace stuff again. Merge the cycle log and the exetrace into one class. Stick the TraceData in the dyn_inst_t class. Put the read_foo and write_foo functions in the dyn_inst_t class. This gets rid of the memaccess namespace. sim/exetrace.cc: sim/exetrace.hh: sim/simple_cpu.cc: Don't worry about which thread to trace right now. Fix that later. Add better support for merged logging and tracing. Make sure that there is a place to put data when there is no log. Make tracing work for non-system. sim/exetrace.hh: tracing() method must not return true if not initialized sim/base_cpu.cc: sim/main.cc: Many fixes to statistics (especially distributions) Many renamed statistics (added CPU name to all except cache stuff) dev/alpha_access.h: dev/alpha_console.cc: dev/alpha_console.hh: dev/console.cc: dev/console.hh: dev/disk_image.cc: dev/disk_image.hh: dev/simple_disk.cc: dev/simple_disk.hh: sim/intr_control.hh: sim/simple_cpu.cc: sim/simple_cpu.hh: style fixes: Make class names follow the ClassName style Indenting based on four spaces sim/param.cc: Added pipetracing (The trace output _should_ be compatible with the original Simplescalar output, making their visualization tools available to us and providing us with a more detailed debugging tool than exetrace) base/trace.hh: Separate disk and disk data add tlaser uart arch/alpha/alpha_memory.cc: arch/alpha/ev5.cc: Make this use C++ instead of void * voodoo base/symtab.cc: base/symtab.hh: sim/exetrace.cc: sim/exetrace.hh: constify sim/param.hh: SimObjects are always pointers. Make this clear, and add the -> operator sim/prog.hh: fix comment dev/pcireg.h: Don't depend on order of #includes sim/exetrace.cc: Make logging work without tracing arch/alpha/alpha_memory.cc: arch/alpha/alpha_memory.hh: dev/alpha_console.cc: dev/alpha_console.hh: dev/console.cc: dev/console.hh: dev/disk_image.cc: dev/disk_image.hh: dev/simple_disk.cc: dev/simple_disk.hh: sim/intr_control.cc: sim/intr_control.hh: sim/simple_cpu.cc: sim/simple_cpu.hh: Turn all of the devices and system stuff into SimObjects. Add many extra parameters to have config file flexibility base/sched_list.hh: file sched_list.hh was initially added on branch clustering. dev/console.cc: dev/disk_image.cc: Don't assume variables are initiaized to be zero sim/simple_cpu.cc: don't forget to dump the trace data if we're tracing arch/alpha/ev5.cc: arch/alpha/ev5.hh: sim/simple_cpu.cc: remove md_done_hwrei which was a hack that helped me make the trace output look like what I was able to get out of SimOS. Since we're more advanced than them, it's not needed sim/simple_cpu.cc: Try to make the trace more representative of what's going on. (Mainly around disruptions.) sim/simple_cpu.cc: Disable this code since it uses a hardcoded address. This may be more useful in the future though. sim/simple_cpu.cc: base/statistics.hh: oops base/trace.hh: style base/trace.hh: add tracing to interrupts sim/simple_cpu.cc:
Removed old access call in CPUMemInterface and added MemREqs to the pipeline. sim/prog.cc:
Give main memory a name to fix statistics. sim/main.cc: sim/serialize.cc: sim/serialize.hh: sim/sim_object.cc: sim/sim_object.hh: sim/simple_cpu.cc: sim/simple_cpu.hh: Added basic infrastructure to do checkpointing. Simple test in SimpleCPU. base/trace.hh:
Added support for checkpoint/serialization Added Serilize to list of know flags sim/param.cc: sim/serialize.hh:
Added support for checkpoint/serialization Added Serilize to list of know flags Now add implicit SimObjects to the ConfigHierarchy so they can be unserialized. sim/serialize.hh: sim/simple_cpu.cc:
Added WH64 implementation and dependencies Added WH64 implementation, and added the ability to do stores of more than 4 bytes, and sett loads to 8 bytes. base/inifile.hh: base/str.hh: Use functors for the hash functions for the hashtable class. Pulled up from the pisa branch with a few modifications. sim/eventq.cc: sim/eventq.hh: sim/serialize.cc: sim/serialize.hh: sim/simple_cpu.cc: sim/simple_cpu.hh: Updated to Hierarchical naming Infrastructure for checkpointing. base/inifile.cc: base/inifile.hh: base/trace.hh: sim/exec_context.hh: sim/exetrace.cc: sim/main.cc: sim/param.cc: sim/param.hh: sim/simple_cpu.cc: test/Makefile: - Merge PISA branch onto HEAD
- Tag before merge: HEAD_PRE_BR_PISA_MERGE - Tag after merge: HEAD_POST_BR_PISA_MERGE - Similar tags on PISA branch
- Add port to SimpleScalar/PISA - New PISA instructions: itouch spill reload map unmap
- Add prefetch implementation - Prefetch cache - Cache buffer (victim/prefetch buffers) - Prefetch queue - itouch instruction
- Add functional SLAT implementation sim/main.cc: Make this work in non Linux base/remote_gdb.cc: sim/base_cpu.hh: sim/simple_cpu.cc: Make FULL_SYSTEM work again after the pisa merge. Random cleanups. sim/main.cc: sim/memtest.cc: sim/memtest.hh:
Removed rules to make SIM_MEMTEST, added memtest.cc to smt source list Renamed sim_memtest to memtest. Memtest now extends BaseCPU and can be dropped into sim_smt. Still need to add the ability to stop it running without a manual ctrl-C though.
Memtest currently does not test copies, just reads and writes. The multiple MSHR/Cache changes broke copying along the way.
Just touched main to help debug (needed to give a set random seed). Its back to normal. sim/main.cc: undo erik's mistaken commit arch/alpha/alpha_memory.cc: arch/alpha/alpha_memory.hh: arch/alpha/vtophys.cc: base/circlebuf.cc: base/circlebuf.hh: base/inifile.cc: base/inifile.hh: base/pollevent.cc: base/pollevent.hh: base/range.hh: base/remote_gdb.cc: base/str.cc: base/str.hh: base/symtab.cc: base/symtab.hh: base/trace.cc: base/trace.hh: dev/alpha_console.cc: dev/alpha_console.hh: dev/console.cc: dev/console.hh: dev/disk_image.cc: dev/disk_image.hh: dev/simple_disk.cc: dev/simple_disk.hh: sim/base_cpu.cc: sim/base_cpu.hh: sim/eventq.cc: sim/eventq.hh: sim/exec_context.cc: sim/exetrace.cc: sim/exetrace.hh: sim/hybrid_pred.hh: sim/intr_control.cc: sim/intr_control.hh: sim/main.cc: sim/memtest.cc: sim/memtest.hh: sim/param.cc: sim/param.hh: sim/prog.cc: sim/prog.hh: sim/serialize.cc: sim/serialize.hh: sim/sim_object.cc: sim/sim_object.hh: sim/simple_cpu.cc: sim/simple_cpu.hh: test/bitvectest.cc: test/foo.ini: test/initest.cc: test/initest.ini: test/paramtest.cc: test/rangetest.cc: test/strnumtest.cc: test/symtest.cc: test/tokentest.cc: - Get rid of my String class, the Vector class, the bitvector class, and my doubly linked list class. - Convert tokenize, to_number (formerly StringToNumber) and eat_white to function on stl strings. - Change most cases of char * and const char * to string, or const string & - Some formatting and style nits, but not too many. sim/param.cc: test/bitvectest.cc: use resize, not reserve to change the size of the actual vector base/str.hh: fix to_lower dev/console.cc: better tracing sim/memtest.cc: sim/memtest.hh:
Added support for CoherenceTest Fixed small error that was leading to a fixed address being used half of the time. sim/exetrace.cc: sim/exetrace.hh: Improvements to EXE-Trace: Displays thread number (optionally) Doesn't display 'count' field (optionally) 'Extended' output lines up nicely sim/memtest.cc: Fixed a print warning in memtest.cc sim/exetrace.hh: sim/main.cc: sim/serialize.cc: sim/serialize.hh: sim/simple_cpu.cc: sim/simple_cpu.hh: - Merge SLAT changes
- Add stats to prefetch cache to track cycles lost due to each miss address
- Get simple_cpu and FULL_SYSTEM to compile again. I'm not sure these will run correctly (simple_cpu should) but it is an improvement over what's currently available.
Split the engine files into generic, cpu-specific and isa-specific files to isolate the various parts of the engine code. This is quite hackish in places due to machine.def (e.g. see comments in execute.cc). Further cleanup is warranted but it compiles and passes smt-test. Later commits will remove unused code. base/trace.hh: sim/param.cc: sim/sim_object.cc: add a new DTRACE macro that tests a trace variable if tracing is on, or evaluates to fals if tracing is off. Avoids #if TRACING_ON/#endif
add an option for wheter or not you want the parameter stuff dumped while the simulator is starting sim/exetrace.cc: sim/exetrace.hh: Make the execution trace print the way it did before steve's last change. Also, pass the flags in a more intelligent manner rather than adding new function parameters all over the place. sim/exetrace.hh: sim/simple_cpu.hh: make exetrace work in FULL_SYSTEM after dave's last changes. Exetrace could probably be improved more to remove most of the #ifdef FULL_SYSTEM junk. Not today though base/trace.hh: new trace flags dev/alpha_console.cc: size was too big dev/pcireg.h: new device ID for simos ethernet device dev/disk_image.cc: dev/simple_disk.cc: dev/simple_disk.hh: be smarter about using stl strings sim/pc_event.cc: sim/pc_event.hh: PC based event system sim/simple_cpu.cc: Make all existing pc based stuff use the new pc based events base/trace.cc: base/trace.hh: sim/param.cc: sim/sim_object.cc: If we're not tracing, print out the configuration junk. If we are tracing, the configuration printing is default sim/exetrace.cc: - Fix bogus references to omitCount and includeTnum. base/kgdb.h: base/remote_gdb.cc: base/remote_gdb.hh: TONS of improvements to remote kernel debugging.
- Use the pc based events stuff to simulate hardware breakpoints. - Implement the set/clear breakpoint/watchpoint function, though only breakpoints are implemented right now. Both software and hardware breakpoints are implemented as hardware breakpoints. - Fix numerous bugs in single stepping, and make temporary breakpoints use hardware breakpoints instead of software breakpoints. - Add tons of debugging stuff to help with future remote debugger debugging. (No, that was not an accidental doubling.) - Implement part of the query variable function. - Remove old cruft that we don't need. - Improve comments dev/disk_image.cc: dev/disk_image.hh: Copy on write disk support This code uses a hash table to implement copy on write support to disk image blocks. There is also support to write out the table and load it back in. dev/simple_disk.cc: This class uses std::string sim/simple_cpu.hh: don't need these base/circlebuf.cc: base/circlebuf.hh: Add some size information so we can keep track of wheter or not the buffer is empty arch/alpha/vtophys.cc: simplify base/object_file.cc: base/object_file.hh: initial framework for sucking in an object file and figuring out some stuff for it. Support for ecoff and a header for elf. There is nothing for relocations, but the symbol information is available so an external program is no longer required for that. base/symtab.cc: base/symtab.hh: Update some of the symbol table stuff to add support for manual insertion of symbols. This is used by the object file code so that we can read the table from the object file and stick it into the more efficient symtab test/Makefile: test/nmtest.cc: test program for using the symbol table code. Basically allows one to look up a symbol in an object file dev/console.cc: dev/console.hh: Clean up the console code, add an input buffer queue to avoid leaving data in the socket buffer. This allows us to preprocess data as it comes in for things such as telnet support. There is some minimal telnet support in here but it isn't working very well, and isn't enabled by default sim/simple_cpu.cc: sim/simple_cpu.hh: Make the various pc based events part of the CPU object instead of being global sim/simple_cpu.cc: sim/simple_cpu.hh: Do the badaddr stuff far more intelligently. Basically, what we do now is first determine if the address goes to any proper device. If not, the address is bad. If so, ask the device whether the address is any good or not. The default case is that a device will say that all of its addresses are good, but there are some devices that don't follow this paradigm. dev/alpha_console.cc: dev/alpha_console.hh: sim/intr_control.cc: sim/intr_control.hh: sim/universe.cc: Make the tick frequency a global parameter and have all devices work from that Also, make the timer interrupt delay parameterizeable (and make the default shorter). This should make boot happen a little faster base/refcnt.hh: Simple reference counting class. Could be replaced by boost shared_ptr some day.
Classes that are reference counted must have exported functions incref() and decref() for manipulating the reference count. This doesn't have the convenience of shared_ptr where the shared classes can be used unmodified, but it also means that the refcnt pointer (the pointer in this code) is the size of a normal pointer for this system. dev/etherbus.cc: dev/etherbus.hh: dev/etherpkt.hh: Initial hack at a ethernet device model and an ethernet bus model. Known to be broken at this point arch/alpha/alpha_memory.cc: sim/simple_cpu.cc:
Memory system enhancements:
- Functional implementation of load-locked/store-conditional in main_memory object (the functional memory object for non-full-system mode). This code should eventually be extracted out and applied to both main_memory and physical_memory so that it works in full-system mode as well. Moved lock_flag & lock_addr from system registers to control registers so they're available in non-full-system mode.
- Moved Alpha unaligned access handling back into machine.def. (It was a flag on the mem request and handled in the memory system, but that approach appears to be unnecessarily complicated.)
- Cleanup of AlphaMemoryRequest: down from five constructors to one; Erik's full-word flags are now bits in Nate's flag word.
- Eliminate obsolete memory.h functions, and some unused memory_object functions. arch/alpha/vtophys.cc: base/remote_gdb.cc: sim/prog.hh: sim/simple_cpu.cc: sim/simple_cpu.hh:
Renamed SimpleCPU::(read|write)_(byte|half|word|qword) to just read & write, overloaded on the type of the 'data' argument. Merged the full-system and non-full-system implementations of these eight original functions into two common template functions.
To support this, also renamed (read|write)[1248] on memory_object and derivatives to just read & write, again overloaded on the type of the 'data' argument. Many of these functions could now be condensed into a few template functions (though with a level of indirection so that the interface can remain virtual). I did not do that though. sim/exec_context.hh: sim/pc_event.hh: - Eliminate static SLAT variables when building FULL_SYSTEM base/remote_gdb.cc: sim/simple_cpu.cc: sim/simple_cpu.hh: make it easier to drop into the remote debugger from within the local debugger dev/pcireg.h: Instead of having each pci device define its own sim object to represent the configuration space, just define one TlaserPciDev type and change the configuration regs as needed. base/range.hh: Fix bugs in range parsing code. sim/eventq.hh: Uncomment inlined event check (not sure why it was commented out to begin with). base/str.hh: - Add some missing #includes.
- Remove some prefetching stats to shorten log lengths.
- Fix perfect cache to work with new coherence mechanism (or at least not fail when there is no coherence protocol). base/range.hh: Consider whether a range object is valid or not when doing range tests. Reorganization & minor documentation of range comparison code. sim/exetrace.hh: Bug fix related to previous commit on range.hh. test/nmtest.cc: Add ability to do lookups by address dev/etherbus.cc: base/statistics.cc: fix sim/simple_cpu.cc: make it so we can change the boot flag sim/simple_cpu.cc: Bit more debugging info base/circlebuf.cc: Must initialize the size dev/console.cc: sim/simple_cpu.cc: better debugging base/remote_gdb.cc: Don't panic if the execution context isn't the same, just don't execute the breakpoint since it probably belongs to another instance sim/memtest.cc: Removed bcopy_in & bcopy_out (needless aliases for prot_write & prot_read, respectively). Made prot_read & prot_write public methods (not protected). Had to change some char arrays to byte_t to keep compiler happy.
Renamed strcpy_in and strcpy_out to writeString and readString, respectively, to reduce confusion about the direction they operate.
Also some reformatting for style. sim/main.cc: Move some more old simplescalar I/O from stdio to C++ streams.
Some reformatting for style in main.cc as well. base/inifile.cc: base/inifile.hh: Pass -D, -U, and -I args to cpp for ini-file processing. Should make use of #defines in .ini files much handier, once we get our parser up to dealing with the resulting whitespace issues.
Some reformatting for style as well. sim/main.cc: Pass -D, -U, and -I args to cpp for ini-file processing. Should make use of #defines in .ini files much handier, once we get our parser up to dealing with the resulting whitespace issues. sim/exetrace.cc: sim/exetrace.hh: sim/simple_cpu.cc: Changes to exetrace code to make it somewhat less schizophrenic so that it works under non-full-system SimpleCPU. (Previous code assumed either full-system+simple CPU or non-full-system+detailed CPU.)
Also removed a lot of unused code in simple_cpu.cc. base/trace.hh: Added trace flags to display all syscalls or common syscall-related warnings (which are suppressed by default). arch/alpha/fake_syscall.cc: sim/exec_context.cc: sim/exec_context.hh: sim/prog.cc: sim/prog.hh: sim/simple_cpu.cc: Syscall emulation (non-full-system) support for multithreaded apps compiled using Tru64 5.1's pthreads library.
More specifically, you can now associate multiple processors with a single LiveProcess object (via their workload parameters). Only one processor will be active initially. The additional processors will be assigned to handle new "virtual processor" threads as they are created by the pthreads user library. Functionality is limited, as we do *not* emulate any kernel scheduling: once a VP thread is created, it is permanently bound to a simulated CPU. However, most of the SPLASH-2 benchmarks seem to run on both uni- and dual-processor targets.
Includes total rewrite of syscall emulation (fake_syscall.cc). Only syscalls that have been needed thus far have been re-implemented in the new framework. Others will be moved over on demand. base/trace.cc: Better dump function sim/simple_cpu.cc: The active field of exe_ctx is not used in FULL_SYSTEM sim/eventq.cc: dev/etherbus.cc: more debugging sim/memtest.cc:
Added support for mem_cmd.cc
Transitioned from enum mem_cmd to class MemCmd sim/eventq.hh: sim/param.hh: sim/serialize.hh: sim/sim_object.hh: test/sized_test.cc: - Fix PISA syscalls to use new memory interface.
- Make prefetching a real SimObject and port existing prefetchers to the new framework. base/inet.cc: base/inet.hh: Move functions for networking into a separate file sim/exec_context.cc: sim/simple_cpu.cc: sim/simple_cpu.hh: Add basic support for a quiesce instruction. - Suspend the current thread on quiesce - Resume on interrupt Add an arm instruction that doesn't do anything yet sim/simple_cpu.cc: Added FULL_SYSTEM wrapper to use of "proc" in tick(). Nate, please check to make sure I didn't break it. base/inifile.hh: Added include of vector base/trace.hh: - Create a ScsiDevice base class that represents all of the functions that a SCSI device might want to implement - Clean up the ScsiDisk class: remove unneeded junk and give better names - Create a ScsiNone class that is used when a given target has no device sim/main.cc: Always use the same random seed to make the memory tester repeatable. As the comment says, someday we should make this a parameter. (Do we still need "mysrand()" and "myrand()"?) sim/memtest.cc: sim/memtest.hh: - Get rid of CoherenceTest... MemTest is just as capable. - Lots of new parameters for MemTest. sim/pc_event.cc: Don't execute a pc event twice dev/disk_image.cc: Add a config node of the copy on write disk image base/trace.hh: dev/disk_image.cc: More debugging base/trace.hh: Major update in dma code. - Separate the io callback into a read callback and a write callback - Fix the write callback so that the proper data is written back to the disk and data is copied to the proper place in the data buffer - Use sim_freq for the tick frequency. (There is still no delay) - Remove a bunch of unnecessary code - Make code more concise and remove old cruft - More Debugging (of course) - Formatting fixes - mprotect hack to make sure that dma buffer is not overwritten sim/exec_context.cc: sim/exec_context.hh: Fix broken assertion in main_memory::checkLockedAddrList(). Check for lots of failed store-conditionals and print deadlock warning message. arch/alpha/fake_syscall.cc: Use actual number of CPUs allocated to process (not const 2!). A few additional syscalls for pthreads support (not quite there yet though). sim/prog.cc: sim/prog.hh: Use actual number of CPUs allocated to process (not const 2!). arch/alpha/alpha_memory.cc: arch/alpha/alpha_memory.hh: arch/alpha/ev5.cc: arch/alpha/ev5.hh: arch/alpha/fake_syscall.cc: base/remote_gdb.cc: base/remote_gdb.hh: sim/exec_context.cc: sim/exec_context.hh: sim/exetrace.cc: sim/exetrace.hh: sim/pc_event.cc: sim/pc_event.hh: sim/prog.cc: sim/prog.hh: sim/simple_cpu.cc: sim/simple_cpu.hh: exec_context_t -> ExecContext spec_exec_context_t -> SpecExecContext dev/disk_image.cc: quell warnings base/trace.hh: remove more warnings sim/exec_context.cc: sim/exec_context.hh: sim/prog.cc: sim/prog.hh: sim/simple_cpu.cc: remove the Process object from FULL_SYSTEM since it doesn't really make any sense sim/simple_cpu.cc: move SIM_OBJECT junk to the end like other files sim/simple_cpu.cc: sim/simple_cpu.hh: Make it so we can use a memory hierarchy in FULL_SYSTEM SimpleCPU arch/alpha/fake_syscall.cc: sim/base_cpu.cc: sim/base_cpu.hh: sim/exec_context.cc: sim/exec_context.hh: sim/prog.cc: sim/prog.hh: sim/simple_cpu.cc: sim/simple_cpu.hh: - Add pointer from execution context to the CPU it's running on. - Just pass execution context pointer to the syscall emulation code, instead of a bunch of individual field arguments. - A few more exec_context_t -> ExecContext changes for non-full-system. - Rudimentary thread scheduling for non-full-system support of pthreads apps. Hopefully this won't go much farther. sim/exec_context.cc: Oops... fix minor bug from merge. arch/alpha/fake_syscall.cc: sim/base_cpu.cc: sim/base_cpu.hh: sim/exec_context.cc: sim/exec_context.hh: sim/prog.cc: sim/prog.hh: sim/simple_cpu.cc: - We really don't want to build a thread scheduler in the simulator... rip all that out, and replace with some basic synchronization primitives implemented as syscalls. Non-full-system MP apps thus need to be compiled specially to use these primitives, but it's plenty good enough to get SPLASH-2 up and running.
These primitives block by suspending the execution context (for efficient simulation). Studies that care about synch operation costs should use user-level LL/SC-based primitives instead.
- Implement more than two states (active vs. !active) for an ExecContext. arch/alpha/alpha_memory.cc: arch/alpha/alpha_memory.hh: arch/alpha/fake_syscall.cc: arch/alpha/vtophys.cc: base/circlebuf.cc: base/fast_alloc.cc: base/inifile.cc: base/inifile.hh: base/object_file.cc: base/object_file.hh: base/range.hh: base/remote_gdb.cc: base/res_list.hh: base/socket.cc: base/str.cc: base/str.hh: base/symtab.cc: base/symtab.hh: base/trace.cc: dev/alpha_console.cc: dev/alpha_console.hh: dev/console.cc: dev/console.hh: dev/disk_image.cc: dev/disk_image.hh: dev/etherbus.cc: dev/etherbus.hh: dev/simple_disk.hh: sim/base_cpu.cc: sim/base_cpu.hh: sim/eventq.cc: sim/exetrace.cc: sim/exetrace.hh: sim/hybrid_pred.hh: sim/intr_control.cc: sim/intr_control.hh: sim/main.cc: sim/memtest.cc: sim/memtest.hh: sim/param.cc: sim/param.hh: sim/pc_event.hh: sim/prog.cc: sim/prog.hh: sim/sat_counter.hh: sim/serialize.cc: sim/serialize.hh: sim/sim_object.cc: sim/simple_cpu.cc: sim/simple_cpu.hh: sim/universe.cc: First pass at compiling with gcc 3.x. Lots of "std::" in header files, "using namespace std" in source files. (Note policy of not putting "using" statements in headers or before includes in sources.)
Still not able to compile with gcc 3.2. Errors: - Can't create an ifstream from a file descriptor anymore (breaks IniFile). - "`class MSHR::MSHRegister' is private" errors in mshr.cc and prefetch_cache.cc: not clear why since it's in the public part of the class declaration. - cpu.cc:879: can't match a reference and 0 (specifically "no match for `bool ? SimObjectParam<PipeTrace*>& : int' operator") - pipetrace.cc: "invalid conversion from `int' to `std::_Ios_Fmtflags'" Warnings: - strstream now deprecated... needs some rewriting in sat_counter.hh and hybrid_pred.hh (need to get all that code out of the headers anyway) - trace.hh macro problem: cpp now says 'pasting "::" and "Event" does not give a valid preprocessing token' - major "implicit typename" issues in base/sized.hh base/trace.hh: Token pasting not necessary. Quiets g++ 3.2 warning base/inifile.cc: base/inifile.hh: Make this compile in g++ 3.2 base/remote_gdb.hh: dev/etherbus.hh: dev/pcireg.h: dev/simple_disk.cc: Make this stuff g++ 3.2 happy base/inifile.cc: Make this still compile in g++ 2.95 arch/alpha/alpha_memory.cc: arch/alpha/alpha_memory.hh: dev/alpha_console.cc: dev/alpha_console.hh: sim/serialize.hh: sim/simple_cpu.cc: Added serialization for simple FULL_SYSTEM objects. Working on the hard ones sim/simple_cpu.cc: Make this code actually compile. Fix style while we're at it sim/base_cpu.cc: Fixes to recent updates to maintain gcc 3.2 compatibility (mostly more std:: in header files). test/Makefile: SS -> M5 base/cprintf.cc: base/cprintf.hh: test/Makefile: test/cprintftest.cc: printf replacement that uses C++ io streams and is typesafe Any type that overloads operator<< for use with streams will work with this structure.
The format string is backwards compatible with printf style format strings, but the types are not checked, for example, %s doesn't verify that the type being printed is a string, %d doesn't verify that the type being printed is an integer. Instead, the various formats just set up the proper io stream manipulators for printing. So, %#s doesn't mean anything different from %s, but %#x does mean something different from %x. If the type you are printing does't care about the #, then nothing changes. base/cprintf.hh: test/cprintftest.cc: Fix case where there is only a format string, and no arguments base/cprintf.hh: base/cprintf_formats.hh: std:: base/trace.cc: base/trace.hh: Make the tracing stuff use cprintf base/cprintf.cc: Save and restore iostream state dev/etherbus.cc: Rewrite the dma engine support so that it can interact with the dma_interface to the timing memory model. This way, all of the timing of the dma transfers themselves can come from the memory system. Simos copyright removed since this code shares nothing with Simos sim/hybrid_pred.hh: sim/predictor.hh: sim/sat_counter.hh: Fixes to stat names in segmented IQ Changes from strstream to stringstream to remove warnings dev/etherbus.cc: dev/etherbus.hh: dev/etherint.hh: Separate the interface to the bus from the device sim/simple_cpu.cc: Move progress message from SimpleCPU::tick() to new ProgressEvent. (Much more efficient, and available independent of CPU model.) dev/console.cc: dev/console.hh: Added [DoEvents] default so command line --DoEvents:do_events=1 turns on events for all busses Added serlization function headers (not implemented yet). sim/eventq.hh: sim/simple_cpu.cc: sim/simple_cpu.hh: Added [DoEvents] default so command line --DoEvents:do_events=1 turns on events for all busses Added serlization function headers (not implemented yet). Added EventQueue::nextEventTime(), returns time head is scheduled, or sim_cycle if empty.
Added support for uniprocessor SimpleCPU with timing memory. arch/alpha/fake_syscall.cc: base/remote_gdb.cc: sim/exec_context.hh: sim/prog.cc: sim/simple_cpu.cc: Get rid of redundant ExecContext PC field. sim/main.cc: Add -n option to suppress loading default.ini. Added a little more help to the help message. sim/main.cc: Oops... make sure we still load it when we don't say '-n'. sim/main.cc: Minor formatting. sim/exetrace.cc: sim/exetrace.hh: Merge full-system & non-full-system exetrace code. base/cprintf.cc: base/cprintf.hh: Previous two commits were (somewhat) broken... this is the real one test/cprintftest.cc: more testing base/remote_gdb.cc: base/remote_gdb.hh: dev/alpha_console.cc: dev/alpha_console.hh: sim/base_cpu.cc: sim/base_cpu.hh: sim/exec_context.cc: sim/exec_context.hh: sim/pc_event.cc: sim/pc_event.hh: sim/simple_cpu.cc: sim/simple_cpu.hh: sim/system.cc: sim/system.hh: Moved a lot of full-system variables out of SimpleCPU so that they can (eventually) be used with the detailed CPU model. Several fields moved into the ExecContext, while a few others moved into a new System object (which replaces the old Kernel object, for now at least). sim/exetrace.cc: sim/pc_event.cc: sim/pc_event.hh: sim/simple_cpu.cc: arch/alpha/alpha_memory.cc: arch/alpha/alpha_memory.hh: dev/alpha_console.cc: dev/alpha_console.hh: - Many g++ 3.2 fixes
- Added Makefile magic to allow a comprehensive build of all simulator variants on all archtectures. 'make all' or 'make TARGET=<arch> all_flavors'
- Added container adaptors and associative_table. Don't use these quite yet -- they are very expensive to compile. Am currently converting them over to boost::mpl. They are used by the new BHGP prefetcher.
- Moved md_sysreg_t reg_t entries to isa_traits. PISA does not have these sorts of registers.
- Moved ipr accesses to theISAEngineTraits because they are not generally applicable. These are #ifdef FULL_SYSTEM in the simulator code -- eventually this should get worked into the traits structure. base/fifo_buffer.cc: base/fifo_buffer.hh: Initial add of this incredibly usefull utility object arch/alpha/ev5.cc: arch/alpha/vtophys.cc: arch/alpha/vtophys.hh: base/remote_gdb.cc: sim/exec_context.cc: sim/exec_context.hh: sim/simple_cpu.cc: sim/simple_cpu.hh: sim/system.cc: Implement some interval statistics for full system mode. Create a callpal function that is called when a callpal occurs so it's easier to manipulate the statics. Rework the vtophys stuff to make it a bit cleaner. arch/alpha/ev5.cc: arch/alpha/ev5.hh: Keep track of all callpals in the interval stats base/res_list.hh: base/sched_list.hh: sim/eventq.cc: sim/eventq.hh: sim/exetrace.cc: sim/exetrace.hh: sim/hybrid_pred.hh: sim/main.cc: sim/predictor.hh: sim/prog.cc: sim/sat_counter.hh:
TA DA!!!!
The giant, huge, amazing, i-hope-i-never-have-to-do-that-again,
CLUSTERING MERGE!!!!
\ base/fifo_buffer.hh: sim/exetrace.hh: Minor adjustments for GCC 3 compatibility Turn ptrace features back on arch/alpha/alpha_memory.cc: arch/alpha/alpha_memory.hh: arch/alpha/ev5.cc: arch/alpha/fake_syscall.cc: arch/alpha/vtophys.cc: arch/alpha/vtophys.hh: base/remote_gdb.hh: dev/alpha_console.cc: dev/simple_disk.cc: dev/simple_disk.hh: sim/exec_context.cc: sim/exec_context.hh: sim/exetrace.hh: sim/memtest.cc: sim/memtest.hh: sim/prog.cc: sim/prog.hh: sim/simple_cpu.cc: sim/simple_cpu.hh: sim/system.cc: sim/system.hh: Get rid of almost all old-style object names. This commit is equivalent to running the following script on the current head:
#! /bin/sh
find \( -name '*.cc' -o -name '*.hh' \) -exec perl -pi -e '\ s/\bmemory_object\b(?!\.hh)/FunctionalMemory/g;\ s/\bvirtual_memory\b(?!\.hh)/VirtualMemory/g;\ s/\bmain_memory\b(?!\.hh)/MainMemory/g;\ s/\bphysical_memory\b(?!\.hh)/PhysicalMemory/g;\ s/\bspec_memory\b(?!\.hh)/SpeculativeMemory/g;\ s/\bMemObj\b(?!\.hh)/TimingMemObj/g;\ s/\bmemory_translation\b(?!\.hh)/AddressTranslator/g;\ s/\balpha_tlb\b(?!\.hh)/AlphaTlb/g;\ s/\balpha_itb\b(?!\.hh)/AlphaItb/g;\ s/\balpha_dtb\b(?!\.hh)/AlphaDtb/g;\ s/\bmemory_controller\b(?!\.hh)/MemoryController/g;\ s/\bstorebuffer_t\b(?!\.hh)/StoreBuffer/g;\ s/\bstorebuffer_entry_t\b(?!\.hh)/StoreBufferEntry/g;\ s/\bcreate_vector_t\b(?!\.hh)/CreateVector/g;\ s/\bcv_spec_state\b(?!\.hh)/CreateVecSpecState/g;\ s/\bspec_state_list\b(?!\.hh)/SpecStateList/g;\ s/\bdyn_inst_t\b(?!\.hh)/DynInst/g;' {} \; arch/alpha/fake_syscall.cc: sim/exec_context.hh: sim/memtest.hh: sim/simple_cpu.cc: Renamed files to better match new object names: base_memory.{cc,hh} --> functional_memory.{cc,hh} mem_obj.{cc,hh} --> timing_mem_obj.{cc,hh} sim/exec_context.cc: sim/exec_context.hh: sim/prog.hh: sim/simple_cpu.cc: sim/simple_cpu.hh: Detailed CPU now compiles in full-system mode (but doesn't run, so I didn't add it to the makefile).
SLAT code is now protected by '#ifdef USE_SLAT', since it's not currently compatible with full-system mode. Also, slat.cc is not compiled by default. We will need a makefile option to do '-DUSE_SLAT' and add slat.cc to the source list.
CPU::Thread object is gone; these are now just bare SpecExecContexts.
Changed all remaining {read,write}_{byte,half,word,qword} sets of methods to just read/write template methods, where possible. sim/system.cc: sim/system.hh: Make the system boot flag a paramter arch/alpha/ev5.hh: sim/intr_control.hh: The ethernet device was interrupting on the wrong interrupt line. Line 0x17 is too high (it's higher than the clock interrupt) and it doesn't correspond with the spl protection in the driver source.
To solve this, we hack in support to support multiple interrupts at a single level and have scsi and ethernet share the same interrupt level. dev/etherbus.cc: dev/etherint.hh: Make the bus call back to the ethernet interface when the transfer is complete. This allows the interface to do the next request in the transmit buffer if there is one. dev/etherbus.cc: dev/etherbus.hh: dev/etherdump.cc: dev/etherdump.hh: Add etherdump object which accepts packets and spits them out in tcpdump format for analysis with tcpdump and ethereal.
Make the etherbus support the dump object dev/etherint.cc: make the ethernet interface a SimObject that you can refer to dev/etherint.hh: dev/etherlink.cc: dev/etherlink.hh: Add a different connection type between ethernet interfaces. The ether link is a unidirectional fixed bandwidth link. To simulate a full duplex 100MB/s ethernet, you need two etherlinks. It's just much easier to simulate a full duplex link this way. Maybe encapsulate this into another bidirectional link sometime. sim/exec_context.hh: sim/main.cc: sim/simple_cpu.cc: sim/system.cc: Add a halted state to the simulator and only actually exit the simulator when all systems have halted. While we're at it, remove an if statement from the common code path in SimpleCPU::tick sim/exec_context.hh: sim/simple_cpu.cc: IntervalStatsObject -> IntervalStats test/Makefile: Make this work again base/cprintf.hh: #include guard arch/alpha/alpha_memory.cc: arch/alpha/vtophys.cc: base/remote_gdb.cc: dev/alpha_console.cc: dev/console.cc: dev/disk_image.cc: dev/etherbus.cc: dev/simple_disk.cc: sim/eventq.cc: sim/pc_event.cc: sim/simple_cpu.cc: since cprintf properly deals with 64-bit types, stop using FMT* as much as possible base/circlebuf.cc: base/inet.cc: base/inet.hh: base/object_file.cc: base/res_list.hh: convert some stdio stuff to use cprintf/c++ streams dev/console.cc: dev/console.hh: convert some stdio stuff to use cprintf/c++ streams better use of format strings sim/exec_context.hh: sim/exetrace.cc: sim/exetrace.hh: - Make SLAT work with new execution context
- Temporarily fix include file problems (circular includes) arch/alpha/alpha_memory.cc: arch/alpha/ev5.cc: arch/alpha/fake_syscall.cc: sim/eventq.hh: sim/hybrid_pred.hh: sim/main.cc: True and false are keywords in C++, don't use TRUE and FALSE This can be done with the following script:
#!/bin/sh for each in `find . \( -name '*.cc' -o -name '*.hh' \)`; do perl -pi -e '\ s/\bFALSE\b/false/g;\ s/\bTRUE\b/true/g;' $each done base/cprintf.cc: base/cprintf.hh: test/Makefile: test/cprintftest.cc: Add support for 'terminators' to cprintf. This is esentially a special manipulator that can cause some sort of event to occur when the stream is outputted. (Will be used for panic, fatal, etc.) base/cprintf.cc: base/cprintf.hh: Another cleanup fo the cprintf stuff. This should make it much easier to do panic, etc. sim/simple_cpu.cc: Rename sim_num_refs to SIM:num_refs to match Steve's new naming in the detailed CPU stats. base/cprintf.cc: base/cprintf.hh: Get rid of the reference counting and the pass by value, and come up with a way to remove all of the temporary variables that are created, and only create one. Should make the compiler's burden much less sim/pc_event.hh: quell warning arch/alpha/alpha_memory.cc: arch/alpha/alpha_memory.hh: arch/alpha/ev5.cc: arch/alpha/ev5.hh: arch/alpha/fake_syscall.cc: arch/alpha/vtophys.cc: arch/alpha/vtophys.hh: base/inet.cc: base/inet.hh: base/object_file.cc: base/object_file.hh: base/remote_gdb.cc: base/remote_gdb.hh: base/trace.cc: base/trace.hh: dev/alpha_access.h: dev/alpha_console.cc: dev/alpha_console.hh: dev/console.cc: dev/console.hh: dev/disk_image.cc: dev/disk_image.hh: dev/etherpkt.hh: dev/simple_disk.cc: dev/simple_disk.hh: sim/exetrace.hh: sim/memtest.cc: sim/memtest.hh: sim/pc_event.cc: sim/serialize.cc: sim/serialize.hh: sim/simple_cpu.cc: sim/simple_cpu.hh: sim/system.cc: Change byte_t etc. to C99 standard int8_t etc. Other than old/host.h, all other changes were produced by this script:
#! /bin/sh
find \( -name '*.cc' -o -name '*.hh' -o -name '*.c' -o -name '*.h' -o -name 'machine.def' \) -exec perl -pi -e '\ s/\bbyte_t\b(?!\.hh)/uint8_t/g;\ s/\bsbyte_t\b(?!\.hh)/int8_t/g;\ s/\bhalf_t\b(?!\.hh)/uint16_t/g;\ s/\bshalf_t\b(?!\.hh)/int16_t/g;\ s/\bword_t\b(?!\.hh)/uint32_t/g;\ s/\bsword_t\b(?!\.hh)/int32_t/g;\ s/\bqword_t\b(?!\.hh)/uint64_t/g;\ s/\bsqword_t\b(?!\.hh)/int64_t/g;\ s/\bbool_t\b(?!\.hh)/bool/g;\ s/\bdfloat_t\b(?!\.hh)/double/g;\ s/\bsfloat_t\b(?!\.hh)/float/g;' {} \; sim/simple_cpu.cc: Assume preprocessor can do ANSI '##' token pasting. arch/alpha/fake_syscall.cc: base/misc.cc: base/misc.hh: base/pollevent.cc: base/sched_list.hh: base/socket.cc: base/symtab.cc: dev/console.cc: dev/disk_image.cc: dev/simple_disk.cc: sim/base_cpu.cc: sim/eventq.cc: sim/intr_control.hh: sim/main.cc: sim/memtest.cc: sim/param.cc: sim/serialize.cc: sim/sim_object.cc: sim/simple_cpu.cc: Get closer to removing all FMT64 junk and myfprintf stuff Make panic, flatal, warn use cprintf. Start moving away from the old/misc.(cc|h) files. dev/simple_disk.cc: Get rid of some FMT junk dev/etherdump.cc: dev/pcireg.h: u_int* -> uint* dev/etherdump.cc: sys/time.h instead of time.h arch/alpha/ev5.cc: sim/exec_context.cc: sim/exec_context.hh: sim/simple_cpu.cc: sim/simple_cpu.hh: Do some clean up in the manner that the interval stats object is created Also, use the interval stats range when doing my full-system istats. Finally, don't make the interval stats part of the exec_context since it makes little sense to do so. We're only going to have one interval stats object (at least for now.) base/mod_num.hh: Initial addition of a "modulo-number" class sim/eventq.cc: sim/eventq.hh: convert some stdio to iostream sim/eventq.cc: sim/eventq.hh: sim/main.cc: sim/sim_events.cc: sim/sim_events.hh: sim/simple_cpu.cc: Move some common events into a new sim_events file. Rearrange some other things to move towards having only events in the main loop. sim/eventq.hh: Change protections base/pollevent.cc: base/pollevent.hh: proper destruction dev/console.cc: don't panic on connection error. detach. sim/eventq.cc: sim/eventq.hh: Clean up event queue and add support for priorities sim/eventq.cc: sim/main.cc: sim/memtest.cc: sim/serialize.cc: sim/sim_events.cc: sim/sim_events.hh: Get rid of sim_exit_now and make it an event. Get rid of sim_dump_stats and make it an event. Main loop is now reduced to servicing the event queue, ticking the CPUs, and incrementing sim_cycle sim/simple_cpu.hh: formatting nits base/cprintf.hh: dev/etherdump.cc: dev/etherdump.hh: sim/eventq.hh: sim/sim_events.cc: - ANSI/ISO C++ fixes
- Improve SLAT efficiency
- Add build_test rule to compile across all archs and options. This builds one simulator from each combination including the optimized Alpha simulator to run smt-test. Please run this before committing. base/misc.cc: make warnings less verbose sim/eventq.hh: Generic function that will delay the calling of a member function until a specified cycle.
Has problems if you use it with gcc 2.95, but 3.2 compiles it ok. dev/etherbus.cc: Better debugging dev/etherbus.cc: dev/etherint.cc: dev/etherint.hh: dev/etherlink.cc: dev/etherlink.hh: Rework the EtherInt class to represent a generic Ethernet interface. Any object that wishes to connect to another device and pass ethernet packets must export an ethernet interface. This makes it possible to connect any two objects that have ethernet interfaces. For example, one EtherDev can connect directly to another etherdev, or the two EtherDevs can each attach to one of the interfaces on an EtherLink to get a fixed bandwidth. dev/ethertap.cc: dev/ethertap.hh: util/tap/Makefile: util/tap/tap.cc: The ethertap device and ethertap utility allow a simulator to connect to a real physical ethernet. Currently, the tap utility only works on OpenBSD, but that should be easily fixed. dev/ethertap.cc: dev/ethertap.hh: better bounds checking base/cprintf.hh: change function names in cprintf base/trace.cc: base/trace.hh: Make DPRINTF work more like panic, fatal, warn, etc. Also make it possible to redirect trace output to a file instead of stdout. dev/etherlink.cc: dev/etherlink.hh: Make EtherLink::Link Serializeable arch/alpha/alpha_memory.cc: base/remote_gdb.cc: base/res_list.hh: base/trace.cc: base/trace.hh: dev/console.cc: dev/disk_image.cc: dev/etherbus.cc: dev/etherlink.cc: dev/ethertap.cc: dev/simple_disk.cc: sim/eventq.cc: sim/eventq.hh: sim/pc_event.cc: sim/serialize.cc: sim/simple_cpu.cc: rework DPRINTF to automatically print the cycle and get the name of the object from which it was called.
Additionally, while we're at it change 0x%x -> %#x dev/disk_image.cc: sim/pc_event.cc: sim/serialize.cc: dont use c_str() if we don't have to base/trace.cc: Only delete the stream if we created it base/trace.cc: base/trace.hh: Expose ostream to which tracing statements are sent via DebugOut() dev/console.cc: carriage return not necessary arch/alpha/arguments.cc: arch/alpha/arguments.hh: Add support for accessing function arguments from a kernel function. The class behaves somewhat like a random access iterator so that the user can access any argument desired, but to get at the data, the user uses the casting operators to get at the data pointed to by the arguments sim/pc_event.cc: sim/pc_event.hh: inline sim/pc_event.cc: sim/pc_event.hh: sim/system.cc: sim/system.hh: create a pc based event that traps kernel printfs for debugging statements arch/alpha/arguments.hh: rename to CopyData and use void * to avoid compiler problems sim/pc_event.cc: Make Kernel::Printf take AlphaArguments as a parameter so that a user may add initial arguments to another version of the kernel function and then pass an offset arguments class to the function for printing the data. Also, while we're at it, remove the printing of the cycle. That can be done by the caller. base/trace.hh: sim/pc_event.cc: sim/pc_event.hh: sim/system.cc: sim/system.hh: Separate the printf event from the debugging printf event. The kernel will call the debugging printf event m5printf. There is also a raw version m5printfr that indicates to the simulator that it shouldn't print any extra information in the context of this debuggin printf because it would screw up fromatting. sim/pc_event.cc: symmetry arch/alpha/arguments.cc: arch/alpha/arguments.hh: plug huge leak arch/alpha/arguments.hh: Add std:: to list arch/alpha/arguments.hh: make the execution context available dev/etherlink.cc: formatting, typeo, paranoia sim/system.cc: sim/system.hh: enable the mbuf dump code sim/pc_event.cc: sim/pc_event.hh: Add a pc event for the kernel mbuf dump function arch/alpha/fake_syscall.cc: sim/main.cc: I can see no good reason at all for doing setjmp/longjmp arch/alpha/arguments.cc: arch/alpha/arguments.hh: reference count the argument data so that the data doesn't disappear before we're done using it. sim/main.cc: move all signal stuff into main.cc sim/sim_events.cc: Move termination and progress event initialization to sim_events sim/debug.cc: sim/debug.hh: sim/main.cc: sim/pc_event.cc: sim/simple_cpu.cc: Move some of the debug break stuff to its own file Use SIGTRAP to initiate a break and set up the simulator to ignore the signal. This will make gdb automatically stop in these functions, but won't interfere with normal simulator workings. sim/sim_events.cc: Id string sim/sim_events.cc: make g++ 3 happy base/cprintf.cc: base/cprintf.hh: base/misc.cc: base/misc.hh: base/trace.cc: base/trace.hh: - Rename debug rule to dbg so it doesn't interfere with debug.cc.
- Reorganize build_test so it generates dependencies correctly.
- Remove HashTable from spec_memory and replace with SGI's hash_map extension.
- Put cprintf/ArgList in namespace cp so it doesn't interfere with g++ 2.95 std::deque (comma operator gives problems -- this is a g++ 2.95 bug).
- Fix FP register decode in dispatch. PISA registers > 31 were being counted as FP registers and using up all of the FP hpysical registers. The code in commit correctly identified FP registers so the bogus FP physical register usage was never cleared, locking up the machine. This is why the SLAT didn't work correctly. Added isa_traits::isFloatingPointRegister and ::isIntegerRegister to do this tracking in a machine-independent way. sim/sim_events.cc: simple way to dump stats on specified cycles sim/eventq.hh: Re-insert assignment of description string into event sim/eventq.cc: If event is the head in remove() return arch/alpha/fake_syscall.cc: Clustering changes.... - clusters can share data using the ClusterSharedInfo structure - Pulled the register info file from the segmented IQ --> dispatch stage (this info can be used by the dispatch stage and any IQ model) - Segmented IQ's share the chain-info-table now base/misc.hh: - Add m5_assert() macro to print the sim_cycle if the assert fails.
- Add simple_trace, simple_trace_data and simple_trace_start parameters to generate a sim-safe-like trace for easy comparison with simplescalar results. Needed for PISA debugging. sim/sim_events.hh: remove extra space sim/main.cc: Fix dump() for floss-reasons Segfault can now dump core sim/simple_cpu.cc: sim/simple_cpu.hh: Get rid of obsolete call from misguided thread scheduling experiment. arch/alpha/ev5.cc: arch/alpha/ev5.hh: add new alpha instructions for starting and ending intervals dev/disk_image.cc: dev/disk_image.hh: Make the copy-on-write disk image use hash_map base/callback.hh: Generic callback class and callback queue for random use sim/main.cc: sim/sim_events.cc: sim/sim_exit.hh: Move exit stuff into it's own file. Make an exit callback queue so that generic callbacks can be invoked upon simulator exit dev/disk_image.cc: give a mode that makes sense dev/disk_image.cc: dev/disk_image.hh: Rework the object implementation of the copy-on-write disk image. - Allow a child name and an initial table size to both be specified - Add a read only flag that determines if changes to the image are written back to disk. - If the flag is not read only, and there is no initial image to open, that's ok, just create an initial empty table. - If the table is to be written back to disk, schedule an ExitCallback to write the image back when the simulator exits. base/callback.hh: make this work in g++ 3 base/misc.cc: base/pollevent.cc: base/pollevent.hh: base/trace.hh: sim/pc_event.cc: sim/universe.cc: declare sim_cycle in one place arch/alpha/alpha_memory.cc: dev/alpha_console.cc: more sim_cycle cleanup sim/eventq.hh: fix priority handling in the event queue: if an event is scheduled with a priority once, then don't overwrite the priority if it is subsequently scheduled without a priority dev/console.cc: send a carriage return/newline pair to the output manually since cprintf and friends would interpret this and send out endl dev/console.cc: dev/console.hh: add option to save console output to a file sim/simple_cpu.cc: sim/simple_cpu.hh: Rework cache interface to avoid trying to loop inside of tick(). Should work much more cleanly with timing memory now (even for multiprocessor systems). sim/simple_cpu.cc: a whole bunch of cleanup foo sim/eventq.cc: events can't be scheduled in the past anymore sim/eventq.cc: sim/eventq.hh: create doEventLoop(), this continually cycles through the event queue consuming events until there are none left dev/console.hh: Make this work in g++ 3 sim/sim_events.cc: sim/sim_events.hh: Make the act of ticking all cpus an event. Automatically schedule it every cycle sim/debug.cc: sim/main.cc: sim/sim_events.cc: rearrange code to get rid of sim_smt.cc sim/main.cc: oops. bring back the SIM:cycle stat arch/alpha/ev5.cc: sim/simple_cpu.cc: move the break_ipl check to the point where the IPL is actually set sim/debug.cc: Make the debug break event first in any given cycle sim/simple_cpu.cc: sim/simple_cpu.hh: Split I-cache and D-cache stall cycles out from idle cycles in statistics. sim/prog.hh: - Replace SLAT maps with hash_maps
- Add hash<> specializations for md_addr_t, counter_t, etc.
- Increase max file descriptors from 15 to 100 (parser00 was running out) sim/simple_cpu.cc: A few baby steps toward full-system detailed CPU. ev5_trap() now sets both PC & NPC (not just NPC). base/misc.cc: base/trace.cc: New memory model Doxyfile:
Configuration file for doxygen. Generates documentation in /n/zizzer/z/m5docs.
To generate docs, run "doxygen Doxyfile" in the root directory of your copy of the head.
To comment your code you use a javadoc like syntax, a cstyle comment with 2 stars at the front (/**). For example
/** Everything before the first period is a brief description. This is a detailed description.
@param <name> description of parameter to function @retval <name/type> description of function return value. @sa (for see also) generate links to other class/enum/member/etc. */
You should start your files out with a comment like:
/** @file Brief description of the file. Detailed description if needed. */
See TimingMemobj.hh for more examples. dev/ethertap.cc: Make this work on OpenBSD sim/main.cc: sim/sim_events.cc: sim/sim_events.hh: sim/sim_exit.hh: Make it possible to set an exit code for the exit event. Also, make exit_now not visible to the rest of the simulator so that people will know to create an exit event. Finally, don't include callback.hh since we don't have to. sim/sim_events.cc: use the SimExitEvent to make sure that we exit at the end of the cycle arch/alpha/fake_syscall.cc: don't use exit_now() create a SimExitEvent() arch/alpha/ev5.cc: arch/alpha/ev5.hh: Add an instruction that causes M5 to exit, allowing processes running under simulation to cause the simulation to terminate sim/simple_cpu.cc: in full system mode, don't panic on an unknown opcode dev/disk_image.cc: dev/disk_image.hh: convert stdio to streams sim/system.cc: remove uneeded include base/cprintf.cc: %p is an integer (more or less) sim/system.cc: sim/serialize.cc: missing include dev/disk_image.cc: cast to correct types for proper interface usage base/circlebuf.cc: base/intmath.h: base/remote_gdb.cc: base/res_list.hh: In c++, we use std::min, std::max, true, and false, not ano of the other junk sim/sim_events.cc: make a local copy of the data since the object can get deleted dev/alpha_console.cc: dev/alpha_console.hh: Added parameter for number of CPUs to console, defualt=1 sim/sim_events.cc: sim/simple_cpu.cc: sim/system.cc: sim/system.hh: use cprintf. general cleanup remove unneeded c_str() calls. base/cprintf.cc: make %% work base/cprintf.cc: handle %% better test/cprintftest.cc: better testing arch/alpha/alpha_memory.cc: convert to use iostream and cprintf instead of stdio and fprintf base/cprintf.cc: more accurately implement formatting for floating point numbers test/cprintftest.cc: more tests base/inifile.cc: base/inifile.hh: base/symtab.cc: base/symtab.hh: dev/disk_image.hh: sim/base_cpu.cc: test/Makefile: convert everything to use hash_map instead of my old hash table junk base/hashmap.hh: base/inifile.hh: dev/disk_image.hh: since people don't agree on where hash_map belongs, pull it into the m5 namespace and include hashmap.hh whenever a hashtable is needed sim/memtest.cc: Move Cache only calls (block_size, hit_latency, etc.) out of TimingMemObject and into CPUMemInterface. Changes to everywhere they were called on a TimingMemObj. sim/param.hh: Fix handling of operator[] for EnumVectorParam classes. Also fix some line wrapping problems caused by adding 'std::'. base/trace.cc: base/trace.hh: Extend trace facility to either print immediately to an ostream or maintain a circular buffer of trace entries (dumpable from debugger by calling dumpTrace()). Also change flags to use SimpleEnumVectorParam so we can just give a list of names instead of a big hex value. sim/exetrace.cc: sim/exetrace.hh: sim/simple_cpu.cc: sim/simple_cpu.hh: Integrate execution trace code into new trace facility. Eliminates the need for a separate execution trace log. Enable instruction tracing using --trace:flags=InstExec. base/misc.cc: Dump trace buffer in panic(). arch/alpha/ev5.cc: arch/alpha/ev5.hh: sim/simple_cpu.cc: set up an annotations.hh file where inline annotation functions that do nothing exist. This allows people to hack in annotations all in one file arch/alpha/ev5.cc: arch/alpha/ev5.hh: intervals are really annotations arch/alpha/ev5.cc: Factor out more annotations arch/alpha/ev5.cc: sim/simple_cpu.cc: Make an Annotate namespace, and add a DumpStats method to it dev/disk_image.cc: sim/main.cc: sim/sim_events.cc: sim/sim_exit.hh: Normalize exit-related function names. Move exitNow() prototype to simexit.hh. base/misc.cc: base/trace.cc: base/trace.hh: sim/eventq.cc: sim/eventq.hh: sim/exetrace.cc: sim/exetrace.hh: sim/simple_cpu.cc: sim/simple_cpu.hh: Minor cleanup on new tracing code: - namespace cleanup - fix bug in Trace::Log::dump - added new RawDumpRecord to put raw data in trace buffer (call Trace::rawDump, was Trace::dump) - added --trace:flags=All to set all trace flag bits - added --trace:dump_on_exit option to dump trace buffer on normal exit - DPRINTF now requires 'const char *' for format (not string) so it doesn't go away by the time buffer is dumped sim/sat_counter.hh: sim/serialize.hh: foo(void) --> foo()
This commit is equivalent to doing the following in the sim directory:
perl -pi -e 's/\(void\)/()/' *.cc *.hh sim/base_cpu.hh: sim/eventq.cc: sim/hybrid_pred.cc: sim/hybrid_pred.hh: sim/memtest.cc: sim/predictor.hh: sim/sat_counter.cc: sim/sat_counter.hh: Move dump() and reg_stats() implementations out of header files. Clean up #includes. sim/exec_context.hh: sim/exetrace.cc: sim/exetrace.hh: sim/main.cc: Clean up identification and handling of prefetches and no-ops. Added is_data_prefettch() method to DynInst. (One of these days we'll have to change all those functions to isFoo() style.) Changes nop count statistic... we were only counting Alpha UNOPs before, not all Alpha NOP forms. sim/pc_event.cc: sim/simple_cpu.cc: - Strip opt binaries after build
- Update Makefile for new source files
- Fix BHGP prefetcher to use compressed addresses
- Fix FULL_SYSTEM compile problems (missing header includes) base/inifile.cc: Make it possible to override variables in the inifile and on the command line sim/simple_cpu.cc: sim/simple_cpu.hh: - Make the SLAT useable with SimpleCPU for quick and easy debugging. This required refactoring some of the traits classes which should make them marginally more independent.
- Fix bogus assert in the SLAT code. Alias load/store values should only be assumed equivalent in non-spec mode. sim/simple_cpu.cc: - Must send the saved address to the SLAT for all memory operations because execution could have overwritten the base register. sim/simple_cpu.cc: sim/simple_cpu.hh: Added Parameter for CPU identification number in Full System Primary CPU ID is 0, which is the default value Modified to start all CPU's in Halted status except the primary CPU dev/alpha_console.cc: Added comments to code for needed implementation in order to boot second CPU dev/alpha_console.cc: sim/exec_context.cc: sim/exec_context.hh: sim/simple_cpu.cc: sim/system.cc: sim/system.hh: Added array of Execution Contexts to system.hh Used when trying to launch another CPU Added cpu_id to Full System ExecContext Fixed the launch in alpha_console.cc to access the correct exe_ctx dev/alpha_console.cc: sim/simple_cpu.cc: Fixed initializtion and launch of the second processor Added a gdb-alpha debug port for non-primary processor Cleaned up the .ini file of unneeded disk images sim/simple_cpu.cc: Add cpu_id (see Ron's recent commit) to full-system detailed CPU. base/trace.cc: Fix bug in calling dumpTrace() on partially filled trace buffer. test/Makefile: test/lru_test.cc: - Replace BHGP associative table with something simpler.
- Add lru_test to test out new AssociativeTable class. Doxyfile: Only create documentation for documnented classes dev/alpha_access.h: dev/alpha_console.cc: dev/alpha_console.hh: cleanup and formatting sim/simple_cpu.cc: Fix bus queueing delay and idle stats. Slight change to one scheduling case. Set req->time in SimpleCPU so delays are correctly computed. sim/simple_cpu.cc: Don't do an icache fetch if we had an ITLB miss. arch/alpha/alpha_memory.cc: dev/alpha_console.cc: sim/serialize.cc: sim/serialize.hh: Replace include of inifile.hh in serialize.hh with forward decl of class IniFile. Requires adding explicit include of inifile.hh in several .cc files. sim/eventq.hh: Get rid of needless include of inifile.hh. sim/main.cc: base/inifile.cc: base/inifile.hh: Check for unreferenced parameters to detect obsolete settings and typos. A warning for an unreferenced parameter section can be suppressed by adding a 'unref_section_ok=y' parameter to the section. Warnings for any unreferenced parameters within a section can be suppressed by adding a 'unref_entries_ok=y' parameter to the section. (The value doesn't matter; the presence of the parameter is all that is tested.)
By default any unreferenced parameter or parameter section warnings will cause the simulator to terminate. Use the '-u' command-line option to suppress this behavior (at your own risk!). dev/alpha_access.h: dev/alpha_console.cc: dev/alpha_console.hh: dev/console.cc: dev/console.hh: dev/disk_image.cc: dev/disk_image.hh: dev/etherbus.cc: dev/etherbus.hh: dev/etherdump.cc: dev/etherdump.hh: dev/etherint.hh: dev/etherlink.cc: dev/etherlink.hh: dev/etherpkt.hh: dev/ethertap.cc: dev/ethertap.hh: dev/pcireg.h: dev/simple_disk.cc: dev/simple_disk.hh: sim/eventq.hh: sim/serialize.hh: sim/sim_object.hh: Add some Doxygen comments. Mostly putting in markers for the file and classes Also some minor formatting fixes here and there arch/alpha/ev5.cc: Reindent to 4 spaces (plus a few other very minor formatting changes). arch/alpha/alpha_memory.cc: arch/alpha/alpha_memory.hh: Reindent. sim/eventq.hh: Don't even bother with the description unless TRACING_ON is defined. Not a big deal at this point, since TRACING_ON is currently hardcoded to 1 in base/trace.hh. base/remote_gdb.cc: base/trace.hh: sim/eventq.cc: sim/eventq.hh: sim/system.cc: Clarify debugging defines: - DEBUG is either defined or not, but is not given a value. It should be tested with #ifdef. - TRACING_ON is always defined, either with a 0 or 1 value. It should always be tested with #if. Automatically set TRACING_ON value according to whether DEBUG is defined. Added -Wundef to warnings to catch '#if DEBUG' cases.
(Yes, '#if DEBUG' does the right thing if DEBUG is not defined, but the same is not true for '#ifdef TRACING_ON' if TRACING_ON is defined to 0.)
In the long run, perhaps the uses of TRACING_ON outside of the trace package itself should be converted to use DEBUG. sim/pc_event.cc: Looks like a lot of device code has never been compiled w/o TRACING_ON set; fix up several warnings (mostly unused variables). sim/pc_event.cc: Oops... needs to compile w/o FULL_SYSTEM too. base/trace.hh: sim/main.cc: sim/param.cc: sim/param.hh: sim/sim_object.cc: Fix up parameter printing controls. Parameters are always printed by default; new command-line parameter '-q' turns this off. Old system was broken in two ways: there was no way to turn off printing in the optimized binary, and controlling printing with a trace flag bit (specified as an .ini parameter) meant that parameters parsed *before* trace:flags never got printed.
Also added code to print the names of unspecified parameters as comments in the output. base/remote_gdb.cc: base/trace.hh: A couple more changes to get full-system to compile w/o tracing. sim/simple_cpu.hh: sim/simple_cpu.cc: - Add stats for simple SLAT profiling sim/simple_cpu.cc: Extend HAVE_TSL protection so it can compile without TSL base/trace.cc: Need to update flag strings to match enum... yuck. sim/system.cc: sim/system.hh: Build global list of system objects. Add gdb-callable printSystems() function so we can find system object pointers from inside debugger. sim/eventq.cc: sim/simple_cpu.cc: base/pollevent.cc: base/pollevent.hh: Move pollQueue handling into main event loop so it works regardless of the CPU model. arch/alpha/ev5.cc: Protect IPRs etc. from being modified on misspeculated paths. arch/alpha/ev5.hh: Eliminate some unused macros. arch/alpha/alpha_memory.cc: Don't update IPRs for TLB misses on misspeculated instructions. Set req.flags PHYSICAL and UNCACHEABLE bits as appropriate based on results of translation. sim/param.cc: Move ConfigHierarchy::Node definition into separate file so it can be included only where necessary. arch/alpha/fake_syscall.cc: arch/alpha/vtophys.cc: arch/alpha/vtophys.hh: base/circlebuf.cc: base/circlebuf.hh: base/cprintf.hh: base/fifo_buffer.cc: base/fifo_buffer.hh: base/inifile.cc: base/inifile.hh: base/misc.hh: base/mod_num.hh: base/pollevent.cc: base/remote_gdb.cc: base/sched_list.hh: base/socket.cc: base/socket.hh: base/str.cc: base/str.hh: base/symtab.cc: dev/alpha_access.h: dev/etherint.cc: sim/base_cpu.cc: sim/base_cpu.hh: sim/debug.cc: sim/hybrid_pred.cc: sim/hybrid_pred.hh: sim/param.cc: sim/param.hh: sim/pc_event.cc: sim/predictor.hh: sim/sat_counter.cc: sim/sim_object.cc: sim/simple_cpu.hh: test/cprintftest.cc: test/lru_test.cc: test/nmtest.cc: test/offtest.cc: test/sized_test.cc: test/symtest.cc: util/tap/tap.cc: Add CVS Id tags dev/alpha_console.cc: dev/alpha_console.hh: Get rid of pmask field in MemReq; move address mask into devices by adding to common base class FunctionalMemory. base/inifile.cc: Don't complain if "unref_section_ok" or "unref_entries_ok" are not referenced. base/inifile.cc: Add functionality to "unref_entries_ok": Now, the RHS is parsed for a list of unreferenced entries, only these will be "OK" Note that this will not be needed very often... base/trace.cc: sim/exetrace.cc: Make trace cycle number position and format consistent between DPRINTF trace records and exetrace records. sim/debug.cc: Add "debug" parameter context for global debug options. Add parameter "debug:break_cycles" to set DebugBreakEvent(s) from ini file/command line. sim/pc_event.cc: sim/system.hh: sched_break_pc() now sets a breakpoint on *all* systems. Use sched_break_pc_sys() to set a breakpoint on just one system. sim/debug.cc: sim/pc_event.cc: base/cprintf_formats.hh: using namespace std dev/alpha_console.cc: sim/exec_context.cc: sim/exec_context.hh: sim/simple_cpu.cc: sim/simple_cpu.hh: arch/alpha/fake_syscall.cc: sim/prog.cc: use accessor functions to set/get status to prepare to not call SimpleCPU::tick if there is nothing to do sim/simple_cpu.cc: no more simplescalar here base/trace.hh: Only set TRACING_ON according to DEBUG if it hasn't already been set on the command line. base/trace.cc: If compiled with TRACING_ON=0, give an error if the user tries to turn on tracing. sim/main.cc: Get rid of do-nothing segfault handler... if you get a segfault in an exit handler, you end up with an infinite recursion. arch/alpha/alpha_memory.cc: arch/alpha/alpha_memory.hh: arch/alpha/ev5.cc: arch/alpha/ev5.hh: sim/exec_context.cc: sim/exec_context.hh: sim/pc_event.cc: sim/simple_cpu.cc: sim/simple_cpu.hh: Full-system detailed CPU almost almost there. Big reorganization of virtual address translation code, so we can tell an access is uncached soon enough to suppress it if it's on the wrong path: translation is its own step now, not hidden inside the (former) VirtualMemory object. Also a few other changes to avoid bad things on misspeculated paths.
This commit results in *very* small changes in IPCs and MSIPCs (a few tenths of a percent max on the tests) because some wrong-path instructions get handled a little differently. sim/main.cc: Put quotes around args with spaces when echoing command line. sim/pc_event.cc: Process PC Events just before fetching the relevant instruction instead of just after the previous instruction. Keeps us from missing events when we take off on misspeculated paths.
** Detailed CPU now gets to single-user prompt!! ** sim/base_cpu.hh: sim/eventq.hh: sim/main.cc: sim/sim_events.cc: sim/sim_events.hh: sim/simple_cpu.cc: sim/simple_cpu.hh: get rid of the TickAllEvent and make it so each cpu has its own tick event. In the process, the implementation of the virtual functin tick() got moved into a non virtual function _tick() so that the tick event could be CPU specific and you wouldn't pay the virtual function call overhead.
This is another step towards being able to not tick a cpu if it has nothing to do sim/base_cpu.hh: sim/simple_cpu.hh: Now that tick is called via an event, we no longer need a virtual function sim/base_cpu.hh: sim/simple_cpu.cc: sim/simple_cpu.hh: clean up the tick event stuff and get rid of the TickEvent template class and just make one for each class since you may want a different process() function anyway base/trace.cc: base/trace.hh: sim/base_cpu.hh: sim/pc_event.cc: sim/pc_event.hh: Fix up branch predictor's return address stack when we do a SkipFuncEvent. Since there's no easy way to figure out what thread ID we're on from the SkipFuncEvent, we just fix thread 0's RAS... will need to fix this when we get SMT full-system up.
Also: - Moved RAS tracing stuff to DPRINTFs; added BranchPredRAS trace flag. - Made BadAddrEvent derive from SkipFuncEvent to eliminate code duplication. base/trace.cc: sim/eventq.cc: sim/eventq.hh: sim/serialize.cc: Create a flags bitvector in the event to store flags. Holds what used to be squashed and scheduled, and also contains a new flag for auto delete.
The auto delete flag will make the eventq responsible for calling delete on an event. This makes 'delete this' unnecessary in the process() function. This is most beneficial for events that get squashed since process() never gets called, and one might want to have the data reclaimed.
To use the autodelete functionality with squash, a few events were cleaned up and reorganized sim/exec_context.cc: sim/exec_context.hh: sim/pc_event.cc: sim/simple_cpu.cc: Add thread_num field to ExecContext so it knows which CPU thread context it represents. Need this for the SkipFuncEvent RAS fixup, but seems generally useful. dev/etherdump.cc: use time.h instead of sys/time.h sim/simple_cpu.cc: sim/simple_cpu.hh: move the tick schedule() to where it's needed dev/alpha_console.cc: dev/alpha_console.hh: sim/base_cpu.cc: sim/base_cpu.hh: sim/exec_context.cc: sim/exec_context.hh: sim/intr_control.cc: sim/intr_control.hh: sim/simple_cpu.cc: sim/simple_cpu.hh: get rid of the processor SimObject and move all of the interrupt stuff into BaseCPU since it really is part of the CPU anyway sim/exec_context.hh: fix store conditional sim/exec_context.hh: clean up conditional store so that it's more understandable sim/base_cpu.cc: sim/base_cpu.hh: move interrupt set/clear routines into the .cc file and make them virtual so that CPUs derived from BaseCPU can modify the behaviour of the interrupt routine. base/trace.cc: base/trace.hh: New trace flags generation via perl script. Now if you want to add a flag you just type it once (in the script) and all the C++ is generated automagically. Also supports "compound" flags that can be specified on the command line and map to multiple regular flags.
Switched trace flags from 64-bit bitmap to vector<bool> for scalability. base/trace.cc: comment out the offending assign since it is commented as not needed base/trace.cc: Get rid of useless code. sim/base_cpu.cc: sim/base_cpu.hh: change variable name to avoid confusion arch/alpha/ev5.cc: sim/simple_cpu.cc: Remove a bunch of istats stuff and insert some annotations for where they were. sim/debug.cc: add a function to force stats to be dumped from the debugger sim/base_cpu.hh: sim/exec_context.cc: sim/exec_context.hh: sim/simple_cpu.cc: sim/simple_cpu.hh: Don't schedule tickEvent until it is known that there will be something to do test/Makefile: Make tests compile again test/Makefile: Make the whole build process for tests a bit simpler util/tap/Makefile: make this build again, clean stuff up sim/exec_context.cc: sim/simple_cpu.cc: make stuff compile when not FULL_SYSTEM sim/main.cc: Add the name of the execution host to the output sim/main.cc: Don't free() data returned by getenv. besides, free() is a function, not an operator like sizeof sim/eventq.cc: That assertion should have never been committed sim/simple_cpu.cc: don't tick here sim/eventq.cc: the squashed flag should be cleared once the event has actually been processed sim/simple_cpu.cc: we can get here with a dcache miss as well. sim/simple_cpu.cc: only schedule the event if it is not already scheduled. arch/alpha/fake_syscall.cc: Zero out syscall arg buffer to avoid copying garbage into simulator space. sim/exec_context.hh: Translation in non fullsystem mode. And use the FALRU class to implement FA LRU caches. sim/base_cpu.hh: sim/exec_context.cc: sim/simple_cpu.cc: sim/simple_cpu.hh: Reorganize code a bit so that multiple CPUs can properly work with the new tick as event stuff. arch/alpha/arguments.hh: base/cprintf.hh: base/refcnt.hh: dev/etherpkt.hh: Make a refcounted base class that contains the refcounting stuff and make everything use it sim/main.cc: don't print out the host if we didn't find one dev/alpha_console.cc: dev/alpha_console.hh: s/memreq/MemReq/ base/trace.cc: Add support to echo trace output (DPRINTF etc.) to cerr as well as the trace buffer. From gdb, call "echoTrace(1)" to enable, or "echoTrace(0)" to disable. As a side effect, semantics of setting both trace:bufsize and trace:file are different now (will buffer and send to file, where old version would just buffer), but I doubt anyone ever did that anyway. See comments in file for more details. sim/base_cpu.cc: sim/base_cpu.hh: sim/debug.cc: sim/eventq.cc: sim/eventq.hh: sim/memtest.cc: sim/memtest.hh: sim/sim_events.cc: sim/sim_events.hh: sim/simple_cpu.cc: sim/simple_cpu.hh: Revamp event debug/tracing structure. - virtual const char *description() method replaces description string constructor argument. Lets us associate a fixed description string with each class of events with basically no overhead. - virtual void trace(char *action) method lets event subclasses customize tracing DPRINTF call to put in additional information. Currently only used by WritebackEvent (to print sequence number of associated instruction). dev/etherbus.cc: dev/etherbus.hh: dev/etherlink.cc: dev/etherlink.hh: dev/ethertap.hh: Fix up full-system events for new debug structure. base/trace.cc: Looks like g++ 3 doesn't like "string = bool ? string : char*". sim/simple_cpu.cc: the caches currently won't completion events for UNCACHEABLE accesses, so don't send any. Warning, this is a HACK! dev/etherdump.cc: sim/main.cc: cleanup includes, and remove some #ifdef cruft for BFD sim/sim_exit.hh: Added GDB-callable exitNow() using char * sim/sim_events.hh: Need to include eventq.hh here. test/Makefile: There are no OPT_FLAGS arch/alpha/fake_syscall.cc: dev/etherdump.cc: sim/eventq.cc: sim/main.cc: sim/memtest.cc: sim/serialize.cc: sim/sim_events.cc: sim/sim_time.hh: sim/simple_cpu.cc: sim/system.cc: Get rid of sim.h & sim_smt.hh. Most of what was in those was obsolete anyway. Move needed externs into universe.hh & stats.hh, plus new header file sim_time.hh. sim/memtest.cc: sim/memtest.hh: Update memtest cpu to new tickEvent stuff base/remote_gdb.cc: Adding returns to make insure happy. sim/simple_cpu.cc: Rework Interporcessor Interrupts to properly signal second CPU, and unsuspend it sim/intr_control.hh: Fix clock interrupt to signal both proccesors correctly in MP system sim/system.cc: Fix seg fault in single proccesor mode from last commit, MP now boots with 2 CPUs sim/simple_cpu.cc: sim/system.cc: sim/system.hh: Changes to genaralize the interupt scheme to variable number of proccessors base/misc.cc: only dump the trace buffer if tracing is turned on base/str.cc: properly deal with the case where there is only one string in the list base/cprintf.cc: base/cprintf.hh: Add csprintf() to print to a string (sort of like sprintf()) base/cprintf.cc: be consistent about resetting parameters to original values base/cprintf.cc: cleanup base/statistics.cc: base/statistics.hh: Finally commit my new stats package and stop tinkering with it.
This new stats package has support for all sorts of stuff. Documentation will appear in the code in a future commit. test/Makefile: test/stattest.cc: add tests for the statistics package. This exercises all sorts of different capabilities of the stats package and can be used for examples. util/rundiff: rundiff utility Normal diff reads in all of both input files and tries to generate a minimal diff, for super long trace files, this is bad because it takes forever and you run out of memory. rundiff is designed to scan the input files and compare only 2000 lines at a time. This way memory won't run out and a user can use fifos for input files. sim/exetrace.cc: Print all reg results as 0x%016x. arch/alpha/fake_syscall.cc: base/misc.cc: base/misc.hh: base/pollevent.cc: base/pollevent.hh: base/statistics.hh: base/trace.cc: base/trace.hh: dev/alpha_console.cc: dev/etherbus.cc: dev/etherdump.cc: dev/etherdump.hh: dev/etherlink.cc: dev/etherlink.hh: dev/ethertap.cc: sim/base_cpu.cc: sim/base_cpu.hh: sim/debug.cc: sim/eventq.cc: sim/eventq.hh: sim/exec_context.hh: sim/exetrace.hh: sim/hybrid_pred.hh: sim/main.cc: sim/memtest.cc: sim/memtest.hh: sim/pc_event.cc: sim/prog.hh: sim/sat_counter.hh: sim/serialize.cc: sim/sim_events.cc: sim/sim_events.hh: sim/simple_cpu.cc: sim/simple_cpu.hh: sim/universe.cc: test/nmtest.cc: test/stattest.cc: test/symtest.cc: Global variable renaming. Basically equivalent to the following perl:
s/\btick_t\b/Tick/g; s/\bsim_cycle\b/curTick/g; s/\bcounter_t\b/Counter/g; s/\bsim_freq\b/ticksPerSecond/g; dev/console.cc: dev/etherbus.cc: dev/etherdump.cc: dev/etherlink.cc: dev/ethertap.cc: Get rid of some explicit externs (use header files!). dev/ethertap.cc: Include for panic(). arch/alpha/alpha_memory.cc: sim/exec_context.hh: Various bug fixes. Charge all writebacks to thread 0 sim/eventq.cc: sim/eventq.hh: sim/main.cc: rework the event loop a bit so that we can prepare for dealing with asynchronous events properly. arch/alpha/alpha_memory.cc: arch/alpha/alpha_memory.hh: base/refcnt.hh: dev/alpha_console.cc: dev/alpha_console.hh: sim/exec_context.hh: sim/memtest.cc: sim/memtest.hh: sim/simple_cpu.cc: sim/simple_cpu.hh: Initial move to reference counting MemReq objects. Switched to STL containers for storage in the memory hierarchy. sim/exec_context.hh: Fix LL/SC and got 1-6 CPUs working by fixing clock interrupt sim/simple_cpu.cc: Add the IIC as a selectable cache tag. Fix translation for now with a quick hack. sim/exec_context.hh: Put detection logic on failed Store Conditionals to help detect deadlock situations util/term/Makefile: util/term/term.c: Whittle down netcat to the bare minimum to connect to another machine and add the proper stuff to do some terminal handling to make this utility sufficient for connecting to m5 to get a console util/term/Makefile: add an install target base/pollevent.cc: sim/async.hh: sim/main.cc: Don't create events in signal handlers since it really isn't safe. I'm not positive if some bugs I've seen were caused by this, but we may as well be safe base/pollevent.cc: base/pollevent.hh: dev/console.cc: dev/console.hh: sim/async.hh: sim/main.cc: - clean up the pollevent stuff and just do the poll whenever requested since we will request it with the proper frequency - add an alarm to poll once every second in addition to waiting for sigio
- remove all of the telnet crap since I'm never planning on implementing it - fix detaching and re-attaching of consoles base/pollevent.cc: base/pollevent.hh: sim/main.cc: only handle/raise SIGALRM if we're polling sim/memtest.cc: sim/cache/lzss_compression.hh: sim/cache/null_compression.hh: Initial check in of Compression stuff and IIC subblocking. base/remote_gdb.cc: Get rid of needless extern. arch/alpha/alpha_memory.cc: arch/alpha/alpha_memory.hh: arch/alpha/ev5.cc: arch/alpha/ev5.hh: arch/alpha/fake_syscall.cc: dev/alpha_console.cc: dev/alpha_console.hh: sim/exec_context.hh: sim/simple_cpu.cc: sim/simple_cpu.hh: Rename fault type and fault codes as follows: s/md_fault_type/Fault/g; s/md_fault_none/No_Fault/g; s/md_fault_mcheck/Machine_Check_Fault/g; s/md_fault_opdec/Unimplemented_Opcode_Fault/g; s/md_fault_alignment/Alignment_Fault/g; s/md_fault_overflow/Integer_Overflow_Fault/g; s/md_fault_reset/Reset_Fault/g; s/md_fault_arith/Arithmetic_Fault/g; s/md_fault_interrupt/Interrupt_Fault/g; s/md_fault_ndtb_miss/Ndtb_Miss_Fault/g; s/md_fault_pdtb_miss/Pdtb_Miss_Fault/g; s/md_fault_dtb_fault/Dtb_Fault_Fault/g; s/md_fault_dtb_acv/Dtb_Acv_Fault/g; s/md_fault_itb_miss/Itb_Miss_Fault/g; s/md_fault_itb_fault/Itb_Fault_Fault/g; s/md_fault_itb_acv/Itb_Acv_Fault/g; s/md_fault_fen/Fen_Fault/g; s/md_fault_pal/Pal_Fault/g; s/md_fault_NUM/Num_Faults/g;
Also changed 'enum md_fault_type' to just 'Fault' where possible. sim/exec_context.cc: sim/exec_context.hh: Add a constructor to specify a memory without a process sim/eventq.hh: clean up a bit. When events are resecheduled or removed from the schedule, they are no longer squashed. (Only scheduled events can be squashed.) sim/simple_cpu.hh: check to see if the tick event was squashed. If it was squashed, then it must be rescheduled since squashed events are scheduled. sim/exec_context.cc: sim/exec_context.hh: This new constructor is only for non FULL_SYSTEM base/statistics.cc: base/statistics.hh: test/stattest.cc: Remove unused variable dumpStats -> dump initStats -> init use const string & instead of const char * make Base constructor explicit more consistent formatting widths sim/main.cc: sim/sim_events.cc: make the new stats package useable in the simulator base/statistics.cc: base/statistics.hh: test/stattest.cc: create two standard stats that are to be used for calculations: elapsedTicks - is the number of ticks that has elapsed during this simulation. Currently, this is just curTick, but this may change when we have checkpointing. elapsedSeconds - is the number of simulated seconds that have elapsed during the simulation. Currently, this is just elapsedTicks / ticksPerSecond. sim/main.cc: Need to initialize stats much sooner so that SimObject constructors can register statistics base/statistics.cc: - use the stat_print_descriptions variable that the old stats package provides this is just a quick hack for now. When the old stats package goes away, we'll move this. - Fix the sorting algorithm so it works as I had intended - Make the output field widths equivalent to the old stats package base/statistics.cc: clean up memory sim/sim_events.cc: sim/sim_events.hh: Use autodelete sim/sim_events.cc: oops. didn't mean to commit this part util/tap/Makefile: call it m5tap instead of ethertap sim/exec_context.hh: Get rid of a couple of unnecessary forward class declarations. sim/memtest.cc: sim/memtest.hh: Adds compression to the memory hierarchy as well as using ExecContext to access memory. Added a few related config files. base/cprintf.cc: Default fill char is space, regardless of what stream fill char is. sim/exetrace.cc: Convert some of the hairier format things to ccprintf. base/statistics.cc: try getting the sorting a bit better arch/alpha/arguments.hh: base/refcnt.hh: base/statistics.hh: dev/etherpkt.hh: s/refcounted/RefCounted/ s/refcnt/RefCountingPtr/ arch/alpha/fake_syscall.cc: Zero out register files for newly created threads to make non-full-system MP runs deterministic. sim/exetrace.cc: Don't trace the results of NOPs or prefetches (for easier comparison with traces from new decoder). sim/exetrace.cc: Don't trace branch link values written back to R31 either. Also put a ifdef TARGET_ALPHA around this hack. sim/exetrace.cc: Need another ifdef TARGET_ALPHA... arch/alpha/alpha_memory.cc: arch/alpha/alpha_memory.hh: arch/alpha/arguments.cc: arch/alpha/ev5.cc: arch/alpha/ev5.hh: arch/alpha/fake_syscall.cc: arch/alpha/vtophys.cc: arch/alpha/vtophys.hh: base/object_file.hh: base/remote_gdb.cc: base/remote_gdb.hh: base/symtab.cc: base/symtab.hh: dev/alpha_console.cc: dev/simple_disk.cc: dev/simple_disk.hh: sim/base_cpu.cc: sim/base_cpu.hh: sim/exec_context.cc: sim/exec_context.hh: sim/exetrace.hh: sim/memtest.cc: sim/memtest.hh: sim/pc_event.cc: sim/pc_event.hh: sim/prog.cc: sim/prog.hh: sim/simple_cpu.cc: sim/simple_cpu.hh: sim/system.cc: sim/system.hh: test/nmtest.cc: test/symtest.cc: Massive renaming to (almost) eliminate all md_* and MD_* names in preparation for total exorcism of machine.def.
Most of the changes in this commit were performed with the following perl script (perl -pi <script> <files>). A small amount of manual fixup was needed to (mostly getting rid of the Addr typedefs in the various memory objects now that the former md_addr_t has that name).
# rename machine-dependent types and constants (will be moving into ISA traits object) s/md_addr_t/Addr/g; s/md_intreg_t/IntReg/g; s/md_gpr_t/IntRegFile/g; s/md_fpreg_t/FloatReg/g; s/md_fpr_t/FloatRegFile/g; s/md_ctrlreg_t/MiscReg/g; s/md_ctrl_t/MiscRegFile/g; s/md_ipr_t/InternalProcReg/g; s/md_anyreg_t/AnyReg/g; s/md_inst_t/MachInst/g; s/regs_t/RegFile/g; # manually fix declaration in old/regs.h and a few forward decls s/struct RegFile/RegFile/g; s/MD_NUM_IREGS/NumIntRegs/g; s/MD_NUM_FREGS/NumFloatRegs/g; s/MD_NUM_CREGS/NumMiscRegs/g; s/MD_IPR_NUM/NumInternalProcRegs/g; s/MD_TOTAL_REGS/TotalNumRegs/g; s/MD_REG_ZERO/ZeroReg/g; base/statistics.hh: test/stattest.cc: Create a functor() wrapper for the stats package. This wrapper makes it possible to write an actual function or functor that is evaluated in a Formula base/statistics.hh: test/stattest.cc: Implement operator += for formulas. This allows us to build a formula without knowing all variables involved at compile time sim/sim_object.cc: sim/sim_object.hh: Make a different regStats pass for the new stats package base/statistics.cc: base/statistics.hh: sim/main.cc: Move simulator specific stuff to its own file. rename elapsedFoo to simFoo so it's clear we're talking about what's been simulated. Use the functor method to get the time. sim/base_cpu.cc: sim/base_cpu.hh: sim/main.cc: sim/simple_cpu.cc: sim/simple_cpu.hh: Convert instruction counting to new stats package. Convert the rest of SimpleCPU to new stats Do a bit of cleanup while we're at it base/cprintf.cc: attempt to deal with the badbit problem sim/base_cpu.hh: sim/simple_cpu.cc: no need for reg_stats to be pure virtual base/statistics.cc: base/statistics.hh: sim/simple_cpu.hh: test/stattest.cc: change names of stat classes so they are simpler base/statistics.cc: no unregestering stats base/statistics.cc: base/statistics.hh: sim/main.cc: test/stattest.cc: make it so that none of the constructors for the various stats objects take any parameters so that users may put them in arrays and stuff. Instead provide initialization functions for the objects that needed parameters, and provide a way to verify that all statistics that need initialization do get initialized. sim/cache/lzss_compression.hh: Compression fixes. Added trivial data support to the IIC. Set the max write size in the compressed memory to 1024 bytes sim/memtest.cc: sim/memtest.hh: Added 'percent_uncacheable' option to MemTest base/statistics.cc: base/statistics.hh: keep track of more data in distributions use a struct to pass data to the display function take underflow and overflow out of the array base/statistics.cc: support for printing vector totals sim/memtest.cc: sim/memtest.hh: Fix uncacheables to go to their own memory space. sim/memtest.cc: Change default percentage of uncacheables to 10% base/statistics.cc: base/statistics.hh: Correctly calculate vector totals.
When a formula operates on vectors, it is incorrect to do calculate the formula for each vector element, and then sum the final formula vector. The correct way is to sum the individual vectors at the leaves of the expression tree. And then perform the calculation as if it were on scalar values.
Assume we have vectors A, and B, and X = A * B The old way would have been: total(X) = total(A * B) The new way is total(X) = total(A) * total(B)
Per thread miss rates are and example of something that would be calculated incorrectly. If you were to sum all of the miss rates, you could get a number greater than one. Calculating the overall miss rate should just be overall misses / overall accesses base/statistics.cc: base/statistics.hh: Create a #define STAT_DISPLAY_COMPAT that makes the new stat package output match the old one. arch/isa_parser.py: arch/alpha/alpha_memory.cc: arch/alpha/alpha_memory.hh: arch/alpha/arguments.cc: arch/alpha/ev5.cc: arch/alpha/ev5.hh: arch/alpha/fake_syscall.cc: arch/alpha/isa_desc: arch/alpha/isa_traits.hh: arch/alpha/vtophys.cc: arch/alpha/vtophys.hh: base/bitfield.hh: base/circlebuf.hh: base/object_file.hh: base/remote_gdb.cc: base/symtab.hh: dev/alpha_console.cc: dev/console.cc: sim/base_cpu.cc: sim/base_cpu.hh: sim/exec_context.cc: sim/exec_context.hh: sim/exetrace.cc: sim/exetrace.hh: sim/main.cc: sim/op_class.hh: sim/pc_event.cc: sim/pc_event.hh: sim/prog.cc: sim/prog.hh: sim/simple_cpu.cc: sim/simple_cpu.hh: sim/static_inst.cc: sim/static_inst.hh: sim/system.cc: sim/system.hh: New ISA description system. No more machine.def! Instructions are now decoded into StaticInst objects, and all static instruction properties (including execution behavior) are associated with those objects. Extended documentation in progress. Currently supports Alpha only; PISA will not compile. Use END_OF_MACHINE_DOT_DEF tag to extract previous version. arch/isa_parser.py: Make it more obvious that you shouldn't edit decoder.cc, and harder to do so accidentally. arch/alpha/isa_desc: base/statistics.cc: sim/exec_context.hh: make stuff compile in g++ 3.x fix some bad formatting Doxyfile: Put generated docs in local directory docs/doxygen. Don't bother generating LaTeX, and a few other minor tweaks. arch/isa_parser.py: arch/alpha/isa_desc: - Decouple isa_desc operand types from C++ types. - Handle signed operand writebacks. - Add a few comments to suppress doxygen warnings on decoder.cc. sim/static_inst.cc: sim/static_inst.hh: Add some basic decode cache hash-table stats dumping (ifdef'd out). sim/static_inst.cc: Make it compile w/gcc3. sim/static_inst.cc: ostream doesn't seem to exist in 2.95 arch/alpha/alpha_memory.cc: arch/alpha/alpha_memory.hh: TLB statistics arch/alpha/ev5.cc: always pass the execution context to an annotation arch/alpha/ev5.cc: revert a bunch of crap from the last commit that I didn't want yet. arch/isa_parser.py: make it so that the ext source directory is grabbed from the right place arch/alpha/alpha_memory.cc: arch/alpha/ev5.cc: arch/alpha/isa_desc: arch/alpha/vtophys.cc: base/remote_gdb.cc: dev/alpha_console.cc: sim/exec_context.hh: sim/simple_cpu.cc: get rid of MD_IPR_foo and call it IPR_foo add some comments to describe what the various PALtemp registers do formatting sim/base_cpu.cc: sim/base_cpu.hh: sim/exec_context.cc: sim/exec_context.hh: sim/simple_cpu.cc: Keep a list of execution contexts in BaseCPU Provide a mechanism to register per execution context statistics. base/socket.cc: base/remote_gdb.cc: dev/console.cc: dev/ethertap.cc: don't panic if accept fails sim/simple_cpu.cc: sim/simple_cpu.hh: keep track of fraction of cycles that are idle base/statistics.hh: make proxy nodes work better in formulas. (Now totals should work). sim/op_class.hh: Document OpClass enum. sim/op_class.hh: Need to document file for file members (enum, globals, etc.) to be extracted arch/alpha/faults.cc: arch/alpha/faults.hh: arch/alpha/isa_traits.hh: Move Fault into its own file, and provide a function to get the string name of a fault arch/alpha/ev5.cc: arch/alpha/ev5.hh: arch/alpha/osfpal.cc: arch/alpha/osfpal.hh: move PAL code defines and such into their own file. Also provide a function to get the name of a PAL code arch/alpha/osfpal.cc: make this actually compile and add it to the makefile kern/tru64/tru64.hh: dummy class for differentiating Tru64 kern/tru64/tru64_syscalls.cc: kern/tru64/tru64_syscalls.hh: Stuff on tru64 system calls arch/alpha/ev5.cc: arch/alpha/isa_desc: sim/exec_context.cc: sim/exec_context.hh: Add a bunch of full system statistics base/statistics.cc: base/statistics.hh: sim/sim_events.cc: support for printing stats to a file. For now we will continue to print to standard out so that the whole regression thing doesn't break. While we're at it, move the Stat param context to the new stats package sim/exec_context.hh: sim/main.cc: sim/simple_cpu.cc: sim/simple_cpu.hh: Today saw the wholesale slaughter of greened's code. When we asked the accused, Erik Hallnor, why he did it he responded, 'Because I was bored. And the underlying prefetch cache was soon to be 2 generations out of date.' sim/base_cpu.hh: sim/exec_context.cc: added a std::vector and using namespace std arch/alpha/fake_syscall.cc: Avoid conflicts with #defines in headers arch/alpha/fake_syscall.cc: I think this is what steve had in mind. base/endian.hh: get rid of the simplescalar endianness junk and make it a bit simpler base/cprintf.cc: base/cprintf.hh: base/cprintf_formats.hh: base/statistics.cc: test/cprintftest.cc: Break out the cprintf formatting stuff into per-type formatting so that we can do special formatting based on type. This makes %c work correctly for integer types. It also allows me to add a workaround for string format widths. Finally, it allows me to accept stringstream directly as an argument without having to use the .str() member. Doxyfile: Update Doxyfile to new version of doxygen and to use the newly install graphviz package. Doxyfile: Remove . from the file paths, instead of .. base/cprintf.cc: base/cprintf_formats.hh: base/statistics.cc: test/cprintftest.cc: Fix printing of strings. Seems that I just can't do what I want with templates. They're too smart for they're own good.
Fix format field widths for floating point numbers.
Remove some .str()'s that are no longer needed because cprintf supports them. base/statistics.cc: base/statistics.hh: test/stattest.cc: Make internal design a bit more consistent. Re-work Bins and Vectors and how they work together to remove a level of indirection. base/statistics.cc: base/statistics.hh: revert that last change base/statistics.cc: base/statistics.hh: test/stattest.cc: let's try this again. This time we'll make DistStat classes initialize their bins. Also add a test for this base/statistics.hh: Proxy -> VectorProxy Doxyfile: Don't hide undocumented classes. This helps when tracking includes through the new graphs. Doxyfile: Make things run faster until documentation errors are gone sim/prog.cc: sim/simple_cpu.cc: Change declarations to match defenitions. dev/alpha_access.h: dev/alpha_console.cc: dev/alpha_console.hh: dev/console.cc: dev/console.hh: dev/disk_image.cc: dev/disk_image.hh: dev/etherbus.cc: dev/etherbus.hh: dev/etherdump.cc: dev/etherdump.hh: dev/etherint.hh: dev/etherlink.cc: dev/etherlink.hh: dev/etherpkt.hh: dev/ethertap.cc: dev/ethertap.hh: dev/pcireg.h: dev/simple_disk.cc: dev/simple_disk.hh: sim/eventq.hh: sim/serialize.hh: sim/sim_object.hh: sim/simple_cpu.cc: Removal of 1200 doxygen warnings. The 600 left are mostly from StaticInstBase and decoder.cc. I basically un-documented the partially documented code by changing /** to /*. arch/alpha/ev5.cc: Add FULL_SYSTEM protection to match header file. Doxyfile: dev/alpha_console.hh: dev/etherint.hh: dev/simple_disk.hh: sim/simple_cpu.cc: sim/static_inst.hh: sim/cache/null_compression.hh: Down to 464 warnings, all in static_inst.hh or decoder.cc. Punt on the template instantiation thing by making them invisible to doxygen. arch/alpha/alpha_memory.cc: base/statistics.cc: base/statistics.hh: sim/simple_cpu.cc: test/stattest.cc: New way of specifying information about printing stats. old way: stat.setFormat(name, ...); new way: stat .name(...) .desc(...) .prereq(...) . . ;
This allows you to specify any information about the stats, and do it in any order. It also cleans up the kinda crufty setFormat interfaces. LICENSE: This is the M5 license as agreed upon by the original M5 authors, and blessed by the University of Michigan technology transfer office.
OK by Doug Hockstad <dhocksta@umich.edu> base/statistics.hh: missing_math is only for stats, so move it into its own place base/statistics.cc: test/stattest.cc: Fix stats sorting base/statistics.cc: base/statistics.hh: test/stattest.cc: Fix description printing stuff. Add a flag to the test script to turn descriptions on/off base/str.hh: wrapper to convert values to strings via stringstream base/statistics.hh: nitpick base/statistics.cc: base/statistics.hh: test/stattest.cc: Rework the printing of statistics to make the PrintOne function not need to know about the stats themselves. Also remove the overloading of function names for getting and setting parameters. base/statistics.cc: duh base/statistics.cc: Changes for _name issues base/statistics.cc: base/statistics.hh: Reorganize the base Stat class a bit and clean up handling of data base/statistics.cc: base/statistics.hh: Rework the stat printing stuff a bit so that the formatting parts need to know as little as possible about the type of stat being printed. base/statistics.hh: maybe not all vector stats will be registered in the future. (VectorProxies) base/statistics.hh: test/stattest.cc: VectorDistribution stat. To be used for per-thread distributions. Still need to implement total and zero() arch/alpha/isa_traits.hh: sim/static_inst.hh: don't use stdint.h, use either inttypes.h or host.h sim/main.cc: unneeded arch/alpha/isa_desc: only linux seems to support the rounding mode stuff right now base/statistics.hh: test/stattest.cc: VectorStandardDeviation and VectorAverageDeviation base/statistics.cc: just make sure the size is correct base/statistics.hh: use pointers internally instead of references arch/alpha/faults.cc: base/bitfield.hh: sim/cache/lzss_compression.hh: sim/cache/null_compression.hh: sim/op_class.hh: sim/sim_time.hh: sim/static_inst.cc: sim/static_inst.hh: test/stattest.cc: consistent $Id$ tags test/bitvectest.cc: test/circletest.cc: test/cprintftest.cc: test/initest.cc: test/lru_test.cc: test/nmtest.cc: test/offtest.cc: test/paramtest.cc: test/rangetest.cc: test/sized_test.cc: test/stattest.cc: test/strnumtest.cc: test/symtest.cc: test/tokentest.cc: arch/isa_parser.py: arch/alpha/alpha_memory.cc: arch/alpha/alpha_memory.hh: arch/alpha/arguments.cc: arch/alpha/arguments.hh: arch/isa_parser.py: arch/alpha/faults.cc: arch/alpha/faults.hh: arch/alpha/isa_traits.hh: arch/alpha/osfpal.cc: arch/alpha/osfpal.hh: arch/alpha/vtophys.cc: arch/alpha/vtophys.hh: util/tap/tap.cc: base/bitfield.hh: base/callback.hh: base/circlebuf.cc: base/circlebuf.hh: base/cprintf.cc: base/cprintf.hh: base/cprintf_formats.hh: base/date.cc: base/dbl_list.hh: base/endian.hh: base/fifo_buffer.cc: base/fifo_buffer.hh: base/hashmap.hh: base/inet.cc: base/inet.hh: base/inifile.cc: base/inifile.hh: base/intmath.cc: base/intmath.h: base/misc.cc: base/misc.hh: base/mod_num.hh: base/object_file.cc: base/object_file.hh: base/pollevent.cc: base/pollevent.hh: base/range.hh: base/refcnt.hh: base/remote_gdb.hh: base/res_list.hh: base/sched_list.hh: base/socket.cc: base/socket.hh: base/statistics.cc: base/statistics.hh: base/str.cc: base/str.hh: base/symtab.cc: base/symtab.hh: base/trace.cc: base/trace.hh: dev/alpha_access.h: dev/alpha_console.cc: dev/alpha_console.hh: dev/disk_image.cc: dev/disk_image.hh: dev/etherbus.cc: dev/etherbus.hh: dev/etherdump.cc: dev/etherdump.hh: dev/etherint.cc: dev/etherint.hh: dev/etherlink.cc: dev/etherlink.hh: dev/etherpkt.hh: dev/ethertap.cc: dev/ethertap.hh: dev/pcireg.h: dev/simple_disk.cc: dev/simple_disk.hh: kern/tru64/tru64.hh: kern/tru64/tru64_syscalls.cc: kern/tru64/tru64_syscalls.hh: sim/cache/null_compression.hh: sim/async.hh: sim/debug.cc: sim/debug.hh: sim/eventq.cc: sim/eventq.hh: sim/exetrace.cc: sim/exetrace.hh: sim/intr_control.cc: sim/intr_control.hh: sim/memtest.cc: sim/memtest.hh: sim/op_class.hh: sim/param.cc: sim/param.hh: sim/pc_event.cc: sim/pc_event.hh: sim/predictor.hh: sim/sat_counter.cc: sim/sat_counter.hh: sim/serialize.cc: sim/serialize.hh: sim/sim_events.cc: sim/sim_events.hh: sim/sim_exit.hh: sim/sim_object.cc: sim/sim_object.hh: sim/sim_time.hh: sim/simple_cpu.cc: sim/simple_cpu.hh: sim/static_inst.cc: sim/static_inst.hh: sim/std_types.hh: sim/system.cc: sim/system.hh: sim/universe.cc: sim/exec_context.cc: sim/exec_context.hh: license base/date.cc: move test/stattest.cc: remove dave's scary container stuff sim/base_cpu.cc: sim/base_cpu.hh: sim/simple_cpu.cc: rename the exec context list xc to contexts arch/alpha/alpha_memory.cc: arch/alpha/alpha_memory.hh: arch/alpha/fake_syscall.cc: dev/alpha_console.cc: sim/exec_context.hh: sim/memtest.cc: sim/prog.cc: sim/prog.hh: sim/simple_cpu.cc: sim/simple_cpu.hh: sim/system.cc: sim/system.hh: s/exe_ctx/xc/g sim/base_cpu.cc: Can't assume that context[0] exists. sim/cache/lzss_compression.cc: sim/cache/lzss_compression.hh: Our compression code free and clear. arch/alpha/fake_syscall.cc: base/range.hh: base/statistics.hh: sim/param.cc: sim/sim_object.cc: Changes to build with g++-3.3. Mostly added a bunch of includes of assert.h (not sure why older versions didn't need this). Also fixed up a couple other new warnings. arch/alpha/alpha_memory.cc: arch/alpha/alpha_memory.hh: arch/alpha/ev5.cc: arch/alpha/fake_syscall.cc: arch/alpha/isa_traits.hh: arch/alpha/vtophys.cc: arch/alpha/vtophys.hh: dev/alpha_console.hh: dev/console.cc: dev/console.hh: dev/disk_image.cc: dev/etherdump.cc: dev/simple_disk.cc: sim/simple_cpu.cc: sim/system.cc: sim/system.hh: a little style sim/eventq.cc: sim/main.cc: sim/prog.cc: sim/simple_cpu.cc: sim/smt.hh: smt.h -> smt.hh add license base/statistics.hh: missing_math.hh isn't really needed I guess arch/alpha/arguments.hh: arch/alpha/fake_syscall.cc: arch/alpha/isa_traits.hh: base/hashmap.hh: base/inet.cc: base/inet.hh: base/misc.cc: base/pollevent.cc: base/socket.cc: base/statistics.hh: base/symtab.cc: base/symtab.hh: base/trace.hh: dev/alpha_console.hh: dev/etherlink.hh: dev/etherpkt.hh: sim/eventq.hh: sim/exec_context.hh: sim/exetrace.hh: sim/host.hh: sim/main.cc: sim/param.hh: sim/serialize.hh: sim/sim_object.cc: sim/simple_cpu.cc: sim/static_inst.hh: sim/universe.cc: test/stattest.cc: Get rid of simplescalar host.h file and create our own host.hh file that has less junk. (with our license.) While we're at it, we consolidate all of the hashtable junk into one file hashmap.hh. (use this file if you need a hash_map.) Doxyfile: Avoid infinite recursion on build/src link. arch/alpha/isa_desc: sim/static_inst.hh: Add comments to get rid of doxygen warnings (and occasionally, as an accidental side effect, make the code more maintainable). Doxyfile: Turn off information messages and route error messages to stderr. arch/isa_parser.py: arch/alpha/isa_desc: sim/static_inst.hh: - Add some comments clarifying the semantics of StaticInst flags. - Make minor tweaks to the ISA description code to make corner cases consistent with the above comments :-). - Get rid of insn_counting code... instruction mix doesn't really change through the pipeline, and the overall mix can already be derived from existing stats. Plus it keeps changing when the ISA flags change even though the pipeline doesn't care. sim/hybrid_pred.cc: sim/hybrid_pred.hh: So said Steve Raasch:xi "I know that the following files should be under our license" base/fast_alloc.cc: base/fast_alloc.hh: David Wood said I could have my own code back :-). sim/sim_object.cc: sim/sim_object.hh: create a regFormulas pass that will go AFTER the regStats pass. sim/base_cpu.cc: sim/base_cpu.hh: sim/debug.cc: sim/eventq.cc: sim/exec_context.hh: sim/exetrace.cc: sim/exetrace.hh: sim/hybrid_pred.cc: sim/hybrid_pred.hh: sim/intr_control.hh: sim/main.cc: sim/memtest.cc: sim/memtest.hh: sim/op_class.hh: sim/param.cc: sim/param.hh: sim/pc_event.hh: sim/predictor.hh: sim/prog.cc: sim/prog.hh: sim/sat_counter.cc: sim/sat_counter.hh: sim/serialize.cc: sim/serialize.hh: sim/sim_object.hh: sim/sim_time.hh: sim/simple_cpu.hh: sim/smt.hh: sim/static_inst.cc: sim/static_inst.hh: sim/std_types.hh: sim/system.cc: style police base/statistics.cc: base/statistics.hh: test/stattest.cc: initial cut at a 2d vector stat base/statistics.cc: base/statistics.hh: Added a std:: and removed an unused bool arch/alpha/fake_syscall.cc: sim/base_cpu.cc: sim/base_cpu.hh: sim/prog.cc: sim/prog.hh: Steve Reinhardt says "I wrote these myself from scratch" base/date.cc: I probably changed this to a string in the first place, but it should be a const char * sim/main.cc: make this compile again base/random.cc: base/random.hh: sim/main.cc: Get rid of the Simplescalar random number junk. Since I didn't realize that we didn't even use it until after I wrote a simple replacement, I figure I'll commit the replacement in case we ever need it. base/str.hh: sim/main.cc: quote may be more generally useful sim/main.cc: sim/sim_object.cc: sim/sim_object.hh: Make the old stats package a bit more self contained to prepare for future extrication sim/main.cc: sim/sim_time.cc: sim/sim_time.hh: consolidate all of the time handling stuff sim/base_cpu.cc: sim/base_cpu.hh: sim/main.cc: sim/smt.hh: instead of initializing max_threads_per_cpu in main(), we turn it into a static function and initialize it upon the first call
Users of this should beware that all CPUs must be built before this function can be used. sim/main.cc: sim/universe.cc: sim_running_systems makes more sense in universe.cc sim/main.cc: this is not a simplescalar file, use our copyright say that the simulator is M5 and display our copyright cleanup change a few things here and there to use our style use endl instead of "\n" (for future portablility) sim/async.hh: sim/main.cc: sim/system.cc: sim/system.hh: sim/universe.cc: - Clean up a few simplescalar comments from main.cc that Nate missed. - Add some comments and some doxygen documentation. - Move sim_running_systems to static System::numSystemsRunning. arch/alpha/ev5.cc: Update num_running_systems to System::numSystemsRunning for full-sys too. sim/base_cpu.cc: sim/base_cpu.hh: sim/smt.hh: instead of polling all CPUs to find out the max number of threads across all CPUs, just have the CPUs themselves update the variable as they are created. arch/alpha/isa_desc: First pass at fixing cvtst... not tested. arch/alpha/ev5.cc: base/statistics.cc: base/statistics.hh: arch/alpha/isa_desc: Just use the TYPEFUNC not FULLFUNC arch/alpha/ev5.cc: base/statistics.cc: base/statistics.hh: committing from the wrong directory is a bad thing arch/alpha/isa_desc: I hope a final solution for the cmptxx issue. base/statistics.cc: All printable stats must first be initialized, so throw an assertion if they are not. This ought to help in debugging a bit. base/statistics.cc: base/statistics.hh: Two new flags: nozero, and nonan. This will supress printing stats if they are zero or NAN. For example, it will cause vector elements to be skipped if there is no value, or it will cause distribution buckets to be skipped. (or an entire scalar stat to be skipped.) This can be used in conjunction with prereq. The difference with prereq, is that prereq just checks if the other stat has ANY values, and won't selectively ignore individual vector elements. base/statistics.hh: this does not belong here arch/alpha/isa_desc: Just happened to notice small insidious bug in itofs. arch/isa_parser.py: New isa description language feature: multiple constants can be provided for a decode statement, e.g.: decode OP { 0, 1: foo(); 2, 3: bar(); } Documentation update included at no extra charge. sim/param.hh: this can be const sim/exec_context.cc: be more terse arch/alpha/isa_desc: Revamp decoding of IEEE FP instructions (opcode 0x16). I think we've got all the bases covered now.
Also implemented cvtql/v & cvtql/sv (actually the same instruction from M5's perspective). arch/isa_parser.py: - If isa_desc defines the global Python variable rcs_id, echo it into the output decoder.cc. - Only print last three components of ISA description path name in output. - Add RCS id string to this file. arch/alpha/isa_desc: Add RCS id string. arch/isa_parser.py: Get it right. arch/isa_parser.py: Oone more little glitch... kern/tru64/tru64_syscalls.cc: kern/tru64/tru64_syscalls.hh: add support for mach syscalls. base/trace.cc: base/trace.hh: Some reorganization and cleanup. Add the ability to ignore trace output from certain sources. The option is --trace:ignore. It takes a space separated list of SimObjects to ignore. The SimObject is listed in the normal dotted herarchy notation. (e.g. system0.cpu0.DL1) If an object is specified, the *all* child objects are ignored as well. You can use a wildcard (*) to match any object.
To ignore all trace statements from system1: --trace:ignore"system1"
To ignore all DL1 statements: --trace:ignore="*.*.DL1" sim/main.cc: Try the HOST varilable if HOSTNAME isn't found sim/exetrace.cc: sim/exetrace.hh: Minor tweeks to instruction execution tracing: - add a correct-path sequence number to all instructions - add colon characters to help delimit the instruction disassembly arch/alpha/ev5.cc: Move all of the kernel statistics into the .cc file while I am still messing around with them. Add support for tracking context switches, and mode switches. More detailed tracking of ipl changes. Don't display zeroes for stats such as syscalls, ipls, faults, since zeroes are very common and there are a ton of stats. base/hashmap.hh: don't forget about the hash_multimap oh, and string is used in here base/str.cc: convert strings that represent bool values to a bool arch/alpha/alpha_memory.cc: arch/alpha/alpha_memory.hh: arch/alpha/ev5.cc: rework the tlb lookup code so that it uses a map instead of a linear search. base/statistics.cc: a tiny bit of debugging assistance arch/alpha/alpha_memory.cc: arch/alpha/alpha_memory.hh: sim/exec_context.hh: No need for these functions to be virtual. Given that, they don't need to have the same interface. This eliminates a useless check in an expensive function. arch/alpha/isa_desc: This is an quick fix for the SimpleSclar-FP-Ops-Don't-Work-Right bug The SS_COMPATIBLE_FP #define at the top of the file forces the precision to match SS. This will change the precision for ALL CPU's.
Nate will be making a change shortly so that this not done for Full System arch/alpha/alpha_memory.cc: use i-> instead of (*i). (what was I thinking?) also try to do i-> only once if it can be helped. base/remote_gdb.cc: sim/simple_cpu.cc: Move remote debugger code to where it belongs clean it up a tad while we're at it. arch/alpha/isa_desc: Changes for the SS FP bug: SS-style FP done only if SS_COMPATIBLE_FP is defined in the makefile arch/alpha/isa_traits.hh: sim/memtest.cc: sim/memtest.hh: sim/simple_cpu.cc: sim/simple_cpu.hh: sim/cache/lzss_compression.cc: sim/cache/lzss_compression.hh: The new memory hierarchy. There is still some more changes to come, but this works now. IIC compression is broken, but no one else cares. DMA coherence might be broken (no way to test atm). There are doxygen warnings that I will clear up when I can stay connected for more than 3 minutes. Doxyfile:
Turn Graphics back on since we have squashed the warnings. base/misc.hh: Add #include <assert.h> for those who use m5_assert() macro. Somehow g++ 3.3 is pickier about this than 3.2. sim/exetrace.hh: sim/simple_cpu.cc: sim/std_types.hh: Style fixes... mostly changing 'struct foo_bar' to 'FooBar' for some older parts of the code. Doxyfile: Always have a detailed section. sim/host.hh: Get rid of an old simplescalar comment (plus improve some other comments). base/statistics.cc: base/statistics.hh: provide a way to get at the subdesc base/statistics.hh: Make it possible to counte a sample more than once base/statistics.cc: print the right value base/statistics.cc: base/statistics.hh: A bit of debugging support base/statistics.cc: base/statistics.hh: be more consistent base/statistics.hh: use the correct axis base/statistics.hh: remove dead code sim/main.cc: sim/param.cc: sim/param.hh: sim/sim_object.cc: Stats now sent by default to a file called "m5.stats". Get the old behavior back by saying "--stats:file=cerr" on cmd line.
Parameters and config-file stuff also sent to stats file where they belong.
A few informational messages are sent to both cerr and to the stats file. Default output is pretty minimal now. arch/alpha/faults.cc: base/bitfield.hh: base/random.cc: base/random.hh: sim/static_inst.cc: test/stattest.cc: Fix RCS Id strings. sim/base_cpu.hh: sim/main.cc: Check if user forgot to specify any CPUs and print a meaningful error message (not just "improperly exited event loop!"). base/statistics.cc: base/statistics.hh: Make subsequent calls to flags() add more flags instead of change them. Also add the concept of a reserved flag that the user is not allowed to set. (Basically for passing around extra parameters in the stats package.) sim/debug.cc: sim/param.cc: sim/param.hh: sim/prog.cc: sim/sim_events.cc: Check that VectorParam objects are valid before we let them be referenced. Fix up a few places where we were just referencing them w/o checking.
Also some const cleanup on Param object methods. sim/sim_object.cc: sim/sim_object.hh: Print SimObject class name when complaining about missing/broekn params. base/inifile.cc: Add "-undef" to cpp flags to not define system-specific macros. (A '#define linux 1' was giving me trouble.) base/statistics.hh: add support fo subnaming in the y direction for 2d vectors. make the printing of it pretty and compatible with the old style. also, suppress printing of a total for 2d vector if they x dimension is just 1. base/statistics.cc: rework a lot of the stuff between #ifdef STAT_DISPLAY_COMPAT so it's neater and also more accurate. add support for printing subdescriptions. LICENSE: arch/alpha/alpha_memory.cc: arch/alpha/alpha_memory.hh: arch/alpha/arguments.cc: arch/alpha/arguments.hh: arch/alpha/fake_syscall.cc: arch/alpha/faults.cc: arch/alpha/faults.hh: arch/alpha/isa_traits.hh: arch/alpha/osfpal.cc: arch/alpha/osfpal.hh: arch/alpha/vtophys.cc: arch/alpha/vtophys.hh: base/bitfield.hh: base/callback.hh: base/circlebuf.cc: base/circlebuf.hh: base/cprintf.cc: base/cprintf.hh: base/cprintf_formats.hh: base/date.cc: base/dbl_list.hh: base/endian.hh: base/fast_alloc.cc: base/fast_alloc.hh: base/fifo_buffer.cc: base/fifo_buffer.hh: base/hashmap.hh: base/inet.cc: base/inet.hh: base/inifile.cc: base/inifile.hh: base/intmath.cc: base/misc.cc: base/misc.hh: base/mod_num.hh: base/object_file.cc: base/object_file.hh: base/pollevent.cc: base/pollevent.hh: base/random.cc: base/random.hh: base/range.hh: base/refcnt.hh: base/remote_gdb.hh: base/res_list.hh: base/sched_list.hh: base/socket.cc: base/socket.hh: base/statistics.cc: base/statistics.hh: base/str.cc: base/str.hh: base/symtab.cc: base/symtab.hh: base/trace.cc: base/trace.hh: dev/alpha_console.cc: dev/alpha_console.hh: dev/disk_image.cc: dev/disk_image.hh: dev/etherbus.cc: dev/etherbus.hh: dev/etherdump.cc: dev/etherdump.hh: dev/etherint.cc: dev/etherint.hh: dev/etherlink.cc: dev/etherlink.hh: dev/etherpkt.hh: dev/ethertap.cc: dev/ethertap.hh: dev/simple_disk.cc: dev/simple_disk.hh: kern/tru64/tru64.hh: kern/tru64/tru64_syscalls.cc: kern/tru64/tru64_syscalls.hh: sim/async.hh: sim/base_cpu.cc: sim/base_cpu.hh: sim/debug.cc: sim/debug.hh: sim/eventq.cc: sim/eventq.hh: sim/exec_context.cc: sim/exec_context.hh: sim/exetrace.cc: sim/exetrace.hh: sim/host.hh: sim/hybrid_pred.cc: sim/hybrid_pred.hh: sim/intr_control.cc: sim/intr_control.hh: sim/main.cc: sim/memtest.cc: sim/memtest.hh: sim/op_class.hh: sim/param.cc: sim/param.hh: sim/pc_event.cc: sim/pc_event.hh: sim/predictor.hh: sim/prog.cc: sim/prog.hh: sim/sat_counter.cc: sim/sat_counter.hh: sim/serialize.cc: sim/serialize.hh: sim/sim_events.cc: sim/sim_events.hh: sim/sim_exit.hh: sim/sim_object.cc: sim/sim_object.hh: sim/cache/lzss_compression.cc: sim/cache/lzss_compression.hh: sim/cache/null_compression.hh: sim/sim_time.cc: sim/sim_time.hh: sim/simple_cpu.cc: sim/simple_cpu.hh: sim/smt.hh: sim/static_inst.cc: sim/static_inst.hh: sim/std_types.hh: sim/system.cc: sim/system.hh: sim/universe.cc: test/bitvectest.cc: test/circletest.cc: test/cprintftest.cc: test/initest.cc: test/lru_test.cc: test/nmtest.cc: test/offtest.cc: test/paramtest.cc: test/rangetest.cc: test/sized_test.cc: test/stattest.cc: test/strnumtest.cc: test/symtest.cc: test/tokentest.cc: util/tap/tap.cc: arch/isa_parser.py: Add attribution to license. sim/cache/lzss_compression.cc: sim/cache/lzss_compression.hh: Extend the compression algorithm to handle upto 4096 byte blocks. Improve compression of single bytes that can be sign extended. sim/cache/lzss_compression.hh: Remove some todos that I've already done. sim/hybrid_pred.cc: sim/hybrid_pred.hh: sim/memtest.cc: sim/prog.cc: sim/sat_counter.cc: sim/memtest.hh: sim/predictor.hh: sim/prog.hh: sim/sat_counter.hh: the new stats package. voila. the move to bitkeeper can go on, figuring what's happening can happen later. base/trace.cc: test/Makefile: test/cprintftest.cc: test/tracetest.cc: separate the context stuff for tracing from the actual tracing facility to make it easier to test. Add a test for tracing |