Commit Graph

18090 Commits

Author SHA1 Message Date
Gabe Black
a1554370ff cpu: Eliminate the unused hasBranchTarget method in StaticInst.
This was once used to implement GDB single stepping back when it was
reimplemented for each ISA, but has not been used since 2014 when that
code was refactored.

Change-Id: If37ccfec2c43a33320d753c68892aa6fefd16b4f
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/51531
Maintainer: Gabe Black <gabe.black@gmail.com>
Tested-by: kokoro <noreply+kokoro@google.com>
Reviewed-by: Daniel Carvalho <odanrc@yahoo.com.br>
Reviewed-by: ZHENGRONG WANG <seanyukigeek@gmail.com>
2021-10-19 00:48:36 +00:00
Giacomo Travaglini
6c9792d333 arch-arm: EL2&0 invalidations do not depend on VMID
When the PE is executing in host mode (HCR.E2H = HCR.TGE = 1)
The invalidation shouldn't depend on the current VMID

Change-Id: I3433485cc8f8dedb657139bcc3d71e05e9d7e4f1
Signed-off-by: Giacomo Travaglini <giacomo.travaglini@arm.com>
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/51671
Tested-by: kokoro <noreply+kokoro@google.com>
Reviewed-by: Andreas Sandberg <andreas.sandberg@arm.com>
Maintainer: Andreas Sandberg <andreas.sandberg@arm.com>
2021-10-18 13:47:18 +00:00
Giacomo Travaglini
655349a9ca arch-arm: Use EL2&0 regime for invalidation only if EL2 enabled
Change-Id: I467a27e48d077cea5e56afae08f9e0e72f529cfc
Signed-off-by: Giacomo Travaglini <giacomo.travaglini@arm.com>
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/51670
Tested-by: kokoro <noreply+kokoro@google.com>
Reviewed-by: Andreas Sandberg <andreas.sandberg@arm.com>
Maintainer: Andreas Sandberg <andreas.sandberg@arm.com>
2021-10-18 13:47:18 +00:00
Giacomo Travaglini
f49a15e00f arch-arm: Define a Lookup structure to simplify TLB code
The lookup/matching function signatures have been constantly amended to
include new parameters. We are replacing the parameter list with a
single lookup structure. This will make it easier to add new forms of
lookups and to propagate them through the MMU/TLB code

Change-Id: Ic45a64d778460b6d308551333c9dc230a02ecb6e
Signed-off-by: Giacomo Travaglini <giacomo.travaglini@arm.com>
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/51669
Tested-by: kokoro <noreply+kokoro@google.com>
Reviewed-by: Andreas Sandberg <andreas.sandberg@arm.com>
Maintainer: Andreas Sandberg <andreas.sandberg@arm.com>
2021-10-18 13:47:18 +00:00
Giacomo Travaglini
b29349671c arch-arm: EL2/EL3 TLB invalidations should ignore the ASID
By using the TLBIMVAA class we invalidate for every ASID

Change-Id: Ie53747067275b01eab42d49b5fa518334a86ac53
Signed-off-by: Giacomo Travaglini <giacomo.travaglini@arm.com>
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/51668
Tested-by: kokoro <noreply+kokoro@google.com>
Reviewed-by: Andreas Sandberg <andreas.sandberg@arm.com>
Maintainer: Andreas Sandberg <andreas.sandberg@arm.com>
2021-10-18 13:47:18 +00:00
Giacomo Travaglini
8fe7a740e3 arch-arm: Do not always print 0 stats in ArmTLB
We shouldn't print all TLB stats regardless of their value

For example there is no need to print the number of
read/write hits/misses/accesses in a instruction only TLB as
it will always inevitably be zero

With this patch we are flagging them as nozero, in order
to suppress their printing in the final stats file.
We are still printing them (regardless of their value) in the
unified TLB type

Change-Id: I54e57d856ceb451f6bacdd175a61768d030862aa
Signed-off-by: Giacomo Travaglini <giacomo.travaglini@arm.com>
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/51667
Tested-by: kokoro <noreply+kokoro@google.com>
2021-10-18 13:47:18 +00:00
Matt Sinclair
118677218d mem-ruby: fix typo in GPU VIPER TCC comment
72ee6d1a fixed a deadlock in the GPU VIPER TCC.  However, it
inadvertently added a typo to the comments explaining the change.  This
commit fixes that.

Change-Id: Ibba835aa907be33fc3dd8e576ad2901d5f8f509c
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/51687
Maintainer: Matt Sinclair <mattdsinclair@gmail.com>
Reviewed-by: Jason Lowe-Power <power.jg@gmail.com>
Tested-by: kokoro <noreply+kokoro@google.com>
2021-10-17 04:07:49 +00:00
Bobby R. Bruce
7455087ca4 python: Improve the print statements in downloader.py
Most importantly, these print statements now make clear to the user
where the resources are being downloaded to.

Change-Id: Id2661d2567a7ea5ee3157142dc91e814e3e2edaf
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/51370
Reviewed-by: Bobby R. Bruce <bbruce@ucdavis.edu>
Maintainer: Bobby R. Bruce <bbruce@ucdavis.edu>
Tested-by: kokoro <noreply+kokoro@google.com>
2021-10-15 18:21:33 +00:00
Bobby R. Bruce
a3f6cac410 python: Set a default resource dir to download to
Prior to this patch the downloader would download resources to the
user's pwd unless explictly stated otherwise. This patch checks the
environment variable `GEM5_RESOURCE_DIR` for a resource directory and if
this is not set, it will default to `~/.cache/gem5`.

Change-Id: I672479a37342d2a97e8ac6404775f3fd969b07b8
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/51369
Reviewed-by: Jason Lowe-Power <power.jg@gmail.com>
Maintainer: Jason Lowe-Power <power.jg@gmail.com>
Tested-by: kokoro <noreply+kokoro@google.com>
2021-10-15 18:21:33 +00:00
Gabe Black
5c8c981cdd arch-sparc: Fix the build for SPARC.
The fp_enable_check mechanism was removed recently, but the removal was
only partial for SPARC which broke its build. This change completes the
removal by finishing the necessary code substitutions.

Change-Id: I3a6a6cd679b08556e5e4a2a2c4e98168ee7fe1fd
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/51673
Maintainer: Gabe Black <gabe.black@gmail.com>
Reviewed-by: Boris Shingarov <shingarov@labware.com>
Tested-by: kokoro <noreply+kokoro@google.com>
2021-10-15 10:13:42 +00:00
Gabe Black
18cb3af215 cpu,tests: Replace the deprecated Stats namespace with statistics.
The gups traffic generator was checked in recently and uses the
deprecated namespace. This change updates it.

Change-Id: I5e6f593aac086e6ef251f11fc50c0e3d3e545d06
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/51674
Maintainer: Gabe Black <gabe.black@gmail.com>
Reviewed-by: Daniel Carvalho <odanrc@yahoo.com.br>
Tested-by: kokoro <noreply+kokoro@google.com>
2021-10-15 09:39:46 +00:00
Mahyar Samani
c3e98d86a2 cpu: Updating stats for GUPSGen
This changes deletes the deprecated stat types for GUPSGen and
replaces them with the namespaces.

Change-Id: I3a6f1bd65c0b5ebad613b8769553942d9b0d8e0c
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/51608
Reviewed-by: Jason Lowe-Power <power.jg@gmail.com>
Maintainer: Jason Lowe-Power <power.jg@gmail.com>
Tested-by: kokoro <noreply+kokoro@google.com>
2021-10-14 22:06:09 +00:00
Gabe Black
a2f1400e06 mem: Add a translation gen helper class.
This class helps translate a region of memory one chunk at a time. The
generator returns an iterator through its begin and end methods which
can be used as part of a regular for loop, or as part of a range based
for loop. The iterator points to a Range object which holds the virtual
and physical address of the translation, the size of the region included
in the translation, and a Fault if the translation of that chunk
faulted.

When incrementing the iterator, if there was no fault it simply moves
ahead to the next region and attempts to translate it using a virtual
method implemented by subclasses. It's up to the subclass to determine
if there is now a fault, how many bytes have been translated if, for
instance, the page size is variable, and what the translated physical
address is.

If there was a fault, the iterator does not increment, it just clears
the fault and tries the previous translation again. This gives consumers
of the translation generator a chance to fix up faulting addresses
without having to abort the whole process and try again. This might be
useful if, for instance, you've reached the end of the stack and a new
page needs to be demand-paged in.

Change-Id: I8c4023845d989fe3781b1b73ab12f7c8855c9171
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/50758
Reviewed-by: Gabe Black <gabe.black@gmail.com>
Reviewed-by: Matthew Poremba <matthew.poremba@amd.com>
Maintainer: Gabe Black <gabe.black@gmail.com>
Tested-by: kokoro <noreply+kokoro@google.com>
2021-10-14 20:49:23 +00:00
Bobby R. Bruce
1dbc78e611 python: Update the gem5 lib downloader 'is_zipped' checker
Previously, gem5 resources' resources.json file set the 'is_zipped'
field to a string, either "True" or "False". As JSON supports booleans,
this was updated in an upcoming patch to use boolean values instead:
https://gem5-review.googlesource.com/c/public/gem5-resources/+/51168.

This patch updates the gem5 library downloader to use the new true/false
values but remains backwards compataible with the old string-based way
of declaring the value of this field.

Change-Id: I804ce66e8ca1989955b09041b7d1c894de74dac0
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/51329
Reviewed-by: Jason Lowe-Power <power.jg@gmail.com>
Maintainer: Jason Lowe-Power <power.jg@gmail.com>
Tested-by: kokoro <noreply+kokoro@google.com>
2021-10-14 19:17:45 +00:00
Bobby R. Bruce
1e7a312e03 python: Rename 'artifact' to 'resources' in downloader
As part of an upcoming change in the gem5 resources resources.json file,
https://gem5-review.googlesource.com/c/public/gem5-resources/+/51169,
the terminology 'artifact' will be replaced with 'resources'. This is
in-keeping with the terminology we use elsewhere in the project. This
patch is designed to work with both 'artifact' and 'resource' type name
while the resources.json schema is changed.

Change-Id: Ia1facc86000b9abf1e426b9b0eb0c7e0245bdcfa
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/51328
Tested-by: kokoro <noreply+kokoro@google.com>
Reviewed-by: Jason Lowe-Power <power.jg@gmail.com>
Maintainer: Jason Lowe-Power <power.jg@gmail.com>
2021-10-14 19:17:45 +00:00
Bobby R. Bruce
f5ea0fa3f8 python: Update gem5 lib downloader for new url_base field
This patch is designed to accomodate the upcoming change to the gem5
resources resources.json file:
https://gem5-review.googlesource.com/c/public/gem5-resources/+/51167.
The change extracts the base url ('http://dist.gem5.org/dist/develop')
from the urls. This patch is both compataible with the current
resources.json scheme and the upcoming schema.

Change-Id: I2a5b87cf94ba1afcb47d1f7d3ea48d0945ff21c4
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/51327
Reviewed-by: Bobby R. Bruce <bbruce@ucdavis.edu>
Maintainer: Bobby R. Bruce <bbruce@ucdavis.edu>
Tested-by: kokoro <noreply+kokoro@google.com>
2021-10-14 19:17:45 +00:00
Bobby R. Bruce
468765e14e tests: Re-enable 'Hello World' 32-bit tests
Due to a faul recorded here:
https://gem5.atlassian.net/browse/GEM5-1074, running 32-bit binaries in
SE mode was causing a segfault to occur. These tests were therefore
disabled until a fix could be developed. A fix was submitted here:
https://gem5-review.googlesource.com/c/public/gem5/+/51489, and, as-such
the tests should be re-enabled.

Change-Id: Id01a6d85fb5e30319e53dda97f6247bcc5302477
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/51612
Reviewed-by: Gabe Black <gabe.black@gmail.com>
Maintainer: Gabe Black <gabe.black@gmail.com>
Tested-by: kokoro <noreply+kokoro@google.com>
2021-10-14 17:31:53 +00:00
Gabe Black
2887a996e1 fastmodel: Don't try to "staticify" system libraries.
We want to insist that the fast model libraries are the static versions
so they don't have to be found on non-system paths at run time, but we
don't need or want to do the same for system libraries which are from
standard paths on the host system.

Split the set of libraries fast model adds to the build into ones that
come from fast model itself, and ones it needs which should be
provided by the system. The ones from fast model itself should still
go through staticify, but the system libraries should be passed to the
compiler generically so it can pick which version it wants.

Change-Id: I222c94f8117143b86377150e686a4af669a994fe
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/51627
Maintainer: Gabe Black <gabe.black@gmail.com>
Reviewed-by: Yu-hsin Wang <yuhsingw@google.com>
Tested-by: kokoro <noreply+kokoro@google.com>
2021-10-14 11:39:52 +00:00
Giacomo Travaglini
133997d515 arch-arm: Add chdir implementation to the Syscall Table
Signed-off-by: Giacomo Travaglini <giacomo.travaglini@arm.com>
Change-Id: I584d9269b0445347dd65071f7fc5569c8ac24b89
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/51549
Reviewed-by: Jason Lowe-Power <power.jg@gmail.com>
Maintainer: Jason Lowe-Power <power.jg@gmail.com>
Tested-by: kokoro <noreply+kokoro@google.com>
2021-10-14 08:52:39 +00:00
Giacomo Travaglini
54d48c0244 sim-se, kern: Add flags parameter to unlinkat
The unlinkat syscall expects a "third" flags parameter [1].

It is using it to implement a sort of rmdirat (in case the parameter
includes the AT_REMOVEDIR flag)

[1]: https://man7.org/linux/man-pages/man2/unlink.2.html

Signed-off-by: Giacomo Travaglini <giacomo.travaglini@arm.com>
Change-Id: I38dd9268ae4de0f289abe779c4da03e969248065
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/51548
Reviewed-by: Jason Lowe-Power <power.jg@gmail.com>
Maintainer: Jason Lowe-Power <power.jg@gmail.com>
Tested-by: kokoro <noreply+kokoro@google.com>
2021-10-14 08:52:39 +00:00
Giacomo Travaglini
65ef21a308 sim-se: Define rmdirImpl helper
This will be used by the following commit when properly reimplementing
unlinkat syscall

Signed-off-by: Giacomo Travaglini <giacomo.travaglini@arm.com>
Change-Id: If207bed196ad467decaa1cfee70a538e6dfe8d1d
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/51547
Reviewed-by: Jason Lowe-Power <power.jg@gmail.com>
Maintainer: Jason Lowe-Power <power.jg@gmail.com>
Tested-by: kokoro <noreply+kokoro@google.com>
2021-10-14 08:52:39 +00:00
Gabe Black
bad6fa679d scons: Don't explicitly list include dependencies for the cxx config.
SCons will scan c/c++ files for include dependencies itself, there's no
need to list them explicitly.

Change-Id: I295c22e52e38c53ab7705193f2fe2c98227ea70d
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/49403
Maintainer: Bobby R. Bruce <bbruce@ucdavis.edu>
Tested-by: kokoro <noreply+kokoro@google.com>
Reviewed-by: Yu-hsin Wang <yuhsingw@google.com>
2021-10-14 01:59:23 +00:00
Matt Sinclair
16c49af22e tests: convert all nightly GPU tests from GUID to GID
As part of the docker commands for the nightly GPU regression tests,
earlier commits inadvertently used GUID instead of GID, where GUID does
not exist.  This causes some failures when run in Jenkins.  This patch
fixes this issue.

Change-Id: I429c079ae3df9fd97a956f23a2fc9baeed3f7377
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/51567
Reviewed-by: Jason Lowe-Power <power.jg@gmail.com>
Reviewed-by: Bobby R. Bruce <bbruce@ucdavis.edu>
Maintainer: Jason Lowe-Power <power.jg@gmail.com>
Maintainer: Bobby R. Bruce <bbruce@ucdavis.edu>
Tested-by: kokoro <noreply+kokoro@google.com>
2021-10-14 01:20:31 +00:00
Gabe Black
7290bf52f3 mem: Replace SatCounter with SatCounter8 in the SHiP replacement policy.
Change-Id: Ibbc8e78df7119cdff62ad08b5c68f4237ca25cfe
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/51530
Reviewed-by: Daniel Carvalho <odanrc@yahoo.com.br>
Maintainer: Daniel Carvalho <odanrc@yahoo.com.br>
Tested-by: kokoro <noreply+kokoro@google.com>
2021-10-13 23:13:57 +00:00
Bobby R. Bruce
66db68359a tests: Fix the nightly GPU tests
The nightly tests failed:
https://www.mail-archive.com/gem5-dev@gem5.org/msg40828.html

This failure was due to new GPU tests assuming tests were executed from
the `tests` directory. They are actually executed from the gem5 root.
This patch fixes the error.

Change-Id: Ie5f86ef4eb13134a2a3d0291422f65c9ee355a92
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/51607
Maintainer: Bobby R. Bruce <bbruce@ucdavis.edu>
Maintainer: Matt Sinclair <mattdsinclair@gmail.com>
Reviewed-by: Matt Sinclair <mattdsinclair@gmail.com>
Tested-by: kokoro <noreply+kokoro@google.com>
2021-10-13 22:37:53 +00:00
Mahyar Samani
eb25cbd9d7 cpu: Adding GUPSGen ClockedObject.
This patch adds the code base to implement GUPSGen which is a
ClockedObject that creates read/write requests to the memory
to update elements in an array. The choosing of elements in
the array follow a random distribution. Each element is read
from and return as GUPSGen implements a key-value store program.
Specifications are found in HPCC website from RandomAccess
benchmark. link below.
https://icl.cs.utk.edu/projectsfiles/hpcc/RandomAccess/

Change-Id: I5c07f230bee317fff2cceec04d15d0218e8ede9a
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/47439
Reviewed-by: Jason Lowe-Power <power.jg@gmail.com>
Reviewed-by: Bobby R. Bruce <bbruce@ucdavis.edu>
Maintainer: Jason Lowe-Power <power.jg@gmail.com>
Tested-by: kokoro <noreply+kokoro@google.com>
2021-10-13 22:19:25 +00:00
Matt Sinclair
86e3e52857 tests: add additional space in weekly DNNMark tests
Add space between -c and binary name for all DNNMark tests to conform to
the other tests style and reduce confusion.

Change-Id: I6d0777ba2186f0eedfe7e99db51161106837a624
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/51453
Reviewed-by: Jason Lowe-Power <power.jg@gmail.com>
Reviewed-by: Bobby R. Bruce <bbruce@ucdavis.edu>
Maintainer: Jason Lowe-Power <power.jg@gmail.com>
Maintainer: Bobby R. Bruce <bbruce@ucdavis.edu>
Tested-by: kokoro <noreply+kokoro@google.com>
2021-10-13 21:35:02 +00:00
Matt Sinclair
6133ba5f6b tests: fix LULESH weekly regression command
7756c5e added LULESH to the weekly regression script.  However,
it assumed a local installation of gem5-resources which it should
not have.  This commit fixes that so the weekly regression builds the
LULESH binary and then runs it instead.

Change-Id: If91f4340f2d042b0bcb366c5da10f7d0dc5643c5
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/51207
Maintainer: Matt Sinclair <mattdsinclair@gmail.com>
Maintainer: Bobby R. Bruce <bbruce@ucdavis.edu>
Reviewed-by: Jason Lowe-Power <power.jg@gmail.com>
Reviewed-by: Bobby R. Bruce <bbruce@ucdavis.edu>
Tested-by: kokoro <noreply+kokoro@google.com>
2021-10-13 21:34:56 +00:00
Gabe Black
1ee4c4ce43 arch-power: Replace the Loader namespace with loader.
The Loader namespace is deprecated, and is replaced with loader.

Change-Id: Ic973eefd55c6f8a43d3d41346b8b6e4795e19e55
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/51527
Reviewed-by: Boris Shingarov <shingarov@labware.com>
Reviewed-by: Daniel Carvalho <odanrc@yahoo.com.br>
Maintainer: Gabe Black <gabe.black@gmail.com>
Tested-by: kokoro <noreply+kokoro@google.com>
2021-10-13 20:29:08 +00:00
Gabe Black
8304ed1967 base,arch-arm: Replace Stats namespace with statistics.
The Stats namespace is deprecated.

Change-Id: I17b1aa7fbced5db7b325e5339395281f3b3eda0b
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/51528
Reviewed-by: Giacomo Travaglini <giacomo.travaglini@arm.com>
Reviewed-by: Daniel Carvalho <odanrc@yahoo.com.br>
Maintainer: Giacomo Travaglini <giacomo.travaglini@arm.com>
Tested-by: kokoro <noreply+kokoro@google.com>
2021-10-13 20:28:52 +00:00
Gabe Black
4fe9af8d17 mem: Stop using SlavePort as a base class.
There are other classes like "ExternalSlave" which still have the word
"Slave" in them, but at least this will make the build quit complaining
about the deprecated SlavePort.

Change-Id: I917c2880574cb77ea37c69dc2727ac5e84b83cd5
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/51529
Reviewed-by: Jason Lowe-Power <power.jg@gmail.com>
Reviewed-by: Daniel Carvalho <odanrc@yahoo.com.br>
Maintainer: Jason Lowe-Power <power.jg@gmail.com>
Tested-by: kokoro <noreply+kokoro@google.com>
2021-10-13 20:28:05 +00:00
Gabe Black
2d9e742540 cpu: Stop excluding the protobuf tracer for x86.
Change-Id: I71d9eca4b13809273cdddf8ae175379e382ab9d7
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/50332
Reviewed-by: Andreas Sandberg <andreas.sandberg@arm.com>
Maintainer: Gabe Black <gabe.black@gmail.com>
Tested-by: kokoro <noreply+kokoro@google.com>
2021-10-13 20:22:37 +00:00
Gabe Black
ee10eb1cc6 scons: Make the SimObject list from the 'gem5 lib' tag.
Only include SimObject files which match the gem5 lib tag. This way we
can declare SimObjects, and then filter them out based on tags.

Change-Id: I0aca1ef830bcc7beaee80c54d58ba8a188968491
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/50331
Reviewed-by: Andreas Sandberg <andreas.sandberg@arm.com>
Maintainer: Gabe Black <gabe.black@gmail.com>
Tested-by: kokoro <noreply+kokoro@google.com>
2021-10-13 20:22:37 +00:00
Gabe Black
ad944025ab scons,arch: Make the gem5 lib tag imply the current arch tag.
That way you can use the tag to specify when a source file should be
built, instead of conditionally declaring the file to SCons.

Change-Id: Ia3a23860d2ee39ec6b32ee2195648b4d88564c83
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/50330
Reviewed-by: Andreas Sandberg <andreas.sandberg@arm.com>
Maintainer: Gabe Black <gabe.black@gmail.com>
Tested-by: kokoro <noreply+kokoro@google.com>
2021-10-13 20:22:37 +00:00
Gabe Black
79953cf973 scons: Add tag support to ISADesc.
Change-Id: Icac027cc4df48d0a3c06911bd6fa0a8b5b72c60a
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/50329
Reviewed-by: Andreas Sandberg <andreas.sandberg@arm.com>
Maintainer: Gabe Black <gabe.black@gmail.com>
Tested-by: kokoro <noreply+kokoro@google.com>
2021-10-13 20:22:37 +00:00
Gabe Black
29705f96ee scons: Add tag support to GdbXml.
Change-Id: I81c015fa8a5cc8f62aeb3f6cc409dc10fd3326e7
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/50328
Reviewed-by: Andreas Sandberg <andreas.sandberg@arm.com>
Maintainer: Gabe Black <gabe.black@gmail.com>
Tested-by: kokoro <noreply+kokoro@google.com>
2021-10-13 13:13:39 +00:00
Giacomo Travaglini
7260394d4b mem: Make ruby AbstractController compatible with XBar
At the moment the ruby AbstractController is trying to re-send the same
memory request every clock cycle until it finally succeeds [1]
(in other words it is not waiting for a recvReqRetry from the peer
port)

This polling behaviour is not compatible with the gem5 XBar, which is
panicking if it receives two consecutive requests to the same BUSY
layer [2]

This patch is fixing the incompatibility by inhibiting the
AbstractController retry until it gets a notification from the peer
response port

[1]: https://github.com/gem5/gem5/blob/v21.1.0.1/\
    src/mem/ruby/slicc_interface/AbstractController.cc#L303
[2]: https://github.com/gem5/gem5/blob/v21.1.0.1/src/mem/xbar.cc#L196

Change-Id: I0ac38ce286051fb714844de569c2ebf85e71a523
Signed-off-by: Giacomo Travaglini <giacomo.travaglini@arm.com>
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/50367
Reviewed-by: Jason Lowe-Power <power.jg@gmail.com>
Maintainer: Jason Lowe-Power <power.jg@gmail.com>
Tested-by: kokoro <noreply+kokoro@google.com>
2021-10-13 08:45:25 +00:00
Gabe Black
bc1438414a sparc: Stop using fp_enable_check.
SPARC and MIPS are the only ISAs using this mechanism. This is a step
towards making them self sufficient and simplifying the ISA parser, it's
interface to the rest of gem5, and it's assumptions about how ISAs are
structured.

Change-Id: Ied85d5012a806321fd717f654d940171da3450af
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/48717
Tested-by: kokoro <noreply+kokoro@google.com>
Reviewed-by: Boris Shingarov <shingarov@labware.com>
Maintainer: Gabe Black <gabe.black@gmail.com>
2021-10-13 07:59:52 +00:00
Gabe Black
645c6b3ceb sparc: Stop special casing FP enable checks for full system.
Set the actual state which gets checked in full system, and then do that
all the time.

Change-Id: I27ea0939ad71f7399b676e22ec2e73e3e0dd6476
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/48716
Tested-by: kokoro <noreply+kokoro@google.com>
Reviewed-by: Boris Shingarov <shingarov@labware.com>
Maintainer: Gabe Black <gabe.black@gmail.com>
2021-10-13 07:59:52 +00:00
Gabe Black
7d92144e1b arch,sparc: Get rid of the unused checkVecEnableFault mechanism.
The method was only defined in SPARC, and SPARC does not use the vector
register file.

Change-Id: I4112eadaecb1f1c6c6db12975bec0cd1fa245d6c
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/48715
Tested-by: kokoro <noreply+kokoro@google.com>
Reviewed-by: Boris Shingarov <shingarov@labware.com>
Maintainer: Gabe Black <gabe.black@gmail.com>
2021-10-13 07:59:52 +00:00
Giacomo Travaglini
851e543b2f misc: Using OS::off_t in syscall signature
Change-Id: Iefa1e207a3e825959b0fe8df30e6be182d73a0f8
Signed-off-by: Giacomo Travaglini <giacomo.travaglini@arm.com>
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/51490
Reviewed-by: Jason Lowe-Power <power.jg@gmail.com>
Reviewed-by: Gabe Black <gabe.black@gmail.com>
Maintainer: Jason Lowe-Power <power.jg@gmail.com>
Tested-by: kokoro <noreply+kokoro@google.com>
2021-10-13 07:44:00 +00:00
Giacomo Travaglini
37495f8823 misc: Using OS::size_t in syscall signature
Using the host size_t is confusing the guest ABI engine every time
the host and the guest adopt a different data model (ILP32 vs LP64)

For example when a LP64 machine is running an ILP32 application in SE
mode, "size_t" will wrongly inform the guest ABI engine to retrieve the
argument by loading a 64 bit (instead of 32) value from the stack

JIRA: https://gem5.atlassian.net/browse/GEM5-1074

Change-Id: Id7d7740ac429f534a4089331bedf21dc3951bbad
Signed-off-by: Giacomo Travaglini <giacomo.travaglini@arm.com>
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/51489
Reviewed-by: Jason Lowe-Power <power.jg@gmail.com>
Reviewed-by: Gabe Black <gabe.black@gmail.com>
Maintainer: Jason Lowe-Power <power.jg@gmail.com>
Tested-by: kokoro <noreply+kokoro@google.com>
2021-10-13 07:44:00 +00:00
Giacomo Travaglini
43910b5312 arch-arm: Add ftruncate implementation to the Syscall Table
Change-Id: I27c526c5c8107f888aee7c99b952f086d4fa0e35
Signed-off-by: Giacomo Travaglini <giacomo.travaglini@arm.com>
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/51488
Reviewed-by: Jason Lowe-Power <power.jg@gmail.com>
Maintainer: Jason Lowe-Power <power.jg@gmail.com>
Tested-by: kokoro <noreply+kokoro@google.com>
2021-10-13 07:44:00 +00:00
Giacomo Travaglini
2644cc3cac arch-arm: Add sendto and recvfrom implementations to the Syscall Table
Change-Id: Id3fd65778ad3b5af8ec54381a0b8824115c309f6
Signed-off-by: Giacomo Travaglini <giacomo.travaglini@arm.com>
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/51487
Reviewed-by: Jason Lowe-Power <power.jg@gmail.com>
Maintainer: Jason Lowe-Power <power.jg@gmail.com>
Tested-by: kokoro <noreply+kokoro@google.com>
2021-10-13 07:44:00 +00:00
Austin Harris
058e4699d8 python: Fix L1 data cache size in cache components
Change-Id: I96119e2a002de3904e87625a3de89abb3cc724a9
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/51452
Reviewed-by: Jason Lowe-Power <power.jg@gmail.com>
Maintainer: Jason Lowe-Power <power.jg@gmail.com>
Tested-by: kokoro <noreply+kokoro@google.com>
2021-10-12 23:32:53 +00:00
Bobby R. Bruce
af73f13ac2 tests: Fix argparse description in simple_binary_run.py
Change-Id: I3a86cf9e3326a06f442315d2510c5aec326af358
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/51451
Reviewed-by: Jason Lowe-Power <power.jg@gmail.com>
Maintainer: Jason Lowe-Power <power.jg@gmail.com>
Tested-by: kokoro <noreply+kokoro@google.com>
2021-10-12 23:01:17 +00:00
Gabe Black
9844b9e8cb scons: Rearrange functions to be next to the code that uses them.
The code which generated SimObject related param wrappers, cxx wrappers,
enum headers, etc was organized strangely. All the functions which
were used as SCons Actions were listed next to each other, and then all
the code which would set up each of those types of files and actually
use the Actions were next to each other.

This change rearranges that code so that the Action function is
immediately before the code which applies it. Or in other words, this
section of the SConscript is now grouped by the files being created,
rather than the type of the piece of machinery being defined to do that.

Change-Id: Ideee7bd44dac89c51840ec5970d95f6ccbbd1c8f
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/49402
Tested-by: kokoro <noreply+kokoro@google.com>
Reviewed-by: Bobby R. Bruce <bbruce@ucdavis.edu>
Maintainer: Bobby R. Bruce <bbruce@ucdavis.edu>
2021-10-12 22:18:28 +00:00
Gabe Black
3f9b493982 scons: Pull the code which generates debug/flags.cc into a helper script.
Change-Id: Ib4ce51ae0311428e3bcd2dae431cfb0abe185c5d
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/49401
Reviewed-by: Yu-hsin Wang <yuhsingw@google.com>
Maintainer: Gabe Black <gabe.black@gmail.com>
Tested-by: kokoro <noreply+kokoro@google.com>
2021-10-12 22:18:17 +00:00
Giacomo Travaglini
4fdf61493b mem-ruby: HTMSequencer stats initialized twice
HTMSequencer stats are already initialized in the constructor

This is a bug from:

[1]: https://gem5-review.googlesource.com/c/public/gem5/+/36478

Change-Id: Id7d9b11f45035a46af32584ed86470c65d2a80b6
Signed-off-by: Giacomo Travaglini <giacomo.travaglini@arm.com>
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/51407
Reviewed-by: Hoa Nguyen <hoanguyen@ucdavis.edu>
Reviewed-by: Jason Lowe-Power <power.jg@gmail.com>
Maintainer: Jason Lowe-Power <power.jg@gmail.com>
Tested-by: kokoro <noreply+kokoro@google.com>
2021-10-12 17:58:19 +00:00
Matt Sinclair
c84b22d858 tests: fix square and HeteroSync nightly regression command
Square and HeteroSync's pre-built binaries were downloaded into the
tests folder in the nightly regression script, but the docker
command running them assumed we were in GEM5_ROOT.  This commit
fixes this problem by specificying the benchmark root for the
applications.

Change-Id: I905c8bde7231bc708db01bff196fd85d99c7ceac
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/51247
Tested-by: kokoro <noreply+kokoro@google.com>
Reviewed-by: Jason Lowe-Power <power.jg@gmail.com>
Maintainer: Bobby R. Bruce <bbruce@ucdavis.edu>
2021-10-12 17:02:08 +00:00