Commit Graph

19374 Commits

Author SHA1 Message Date
Bobby R. Bruce
3a1c9ad904 stdlib: Fix 'set_{text/json}_stats_output' in Simulator
These functions were using "os.is_path_exists_or_creatable". This is a
non-existant function. It has been replaced with a simple test to ensure
the specified stats file either exists or is creatable.

Change-Id: I9a1b2c575d18356fdc87c8b1848c09735e0f18e7
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/62971
Maintainer: Jason Lowe-Power <power.jg@gmail.com>
Tested-by: kokoro <noreply+kokoro@google.com>
Reviewed-by: Jason Lowe-Power <power.jg@gmail.com>
2022-09-02 18:42:18 +00:00
Gabe Black
d791827f17 scons: Add build_opts/ALL.
This enables all the ISAs, sets PROTOCOL to MI_example, and leaves
BUILD_GPU unset.

Change-Id: Id6243bb1b12fc70b8afee0aa213168ca421aff62
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/62201
Reviewed-by: Bobby Bruce <bbruce@ucdavis.edu>
Maintainer: Gabe Black <gabe.black@gmail.com>
Tested-by: kokoro <noreply+kokoro@google.com>
2022-09-02 10:20:51 +00:00
Gabe Black
e05c6875a5 arch-x86,cpu: Override the int div latency local to x86.
Remove the ISA check when selecting the default integer division latency
for O3. Instead, create a different default FUPool which is specific to
x86.

Change-Id: I1ef9ee94f4b16aebe03e043df5cdc6167efe6e64
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/52497
Maintainer: Gabe Black <gabe.black@gmail.com>
Reviewed-by: Jason Lowe-Power <power.jg@gmail.com>
Tested-by: kokoro <noreply+kokoro@google.com>
Reviewed-by: Andreas Sandberg <andreas.sandberg@arm.com>
2022-09-02 10:20:51 +00:00
Gabe Black
605c7ac88e arch,cpu: Distribute KVM checks and get rid of ISA switch statement.
Because tags don't work properly on SimObject()s right now (which will
be fixed by my SCons series), there are extra checks which manually
exclude files that should be excluded by their tags automatically.

Change-Id: Idb110269d6400ae6892eac994e673121e49b937c
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/52495
Maintainer: Gabe Black <gabe.black@gmail.com>
Reviewed-by: Gabe Black <gabe.black@gmail.com>
Reviewed-by: Andreas Sandberg <andreas.sandberg@arm.com>
Tested-by: kokoro <noreply+kokoro@google.com>
Maintainer: Andreas Sandberg <andreas.sandberg@arm.com>
2022-09-02 10:20:51 +00:00
Gabe Black
d759b42869 arch: Decentralize the arch tag TagImplies in arch/SConscript.
Put the TagImplies for each ISA in its own SConscript.

Change-Id: I90d72aa6f493ac2c27ec54e3ac02ff8151e2f518
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/52494
Maintainer: Andreas Sandberg <andreas.sandberg@arm.com>
Maintainer: Giacomo Travaglini <giacomo.travaglini@arm.com>
Reviewed-by: Giacomo Travaglini <giacomo.travaglini@arm.com>
Reviewed-by: Andreas Sandberg <andreas.sandberg@arm.com>
Tested-by: kokoro <noreply+kokoro@google.com>
2022-09-02 10:20:51 +00:00
Gabe Black
190c47270e arch,cpu: Centralize the single arch CPU Simobject files.
The way these were set up, there would be a conflict between SimObject
files with the same name set up for different ISAs.

This change creates a single file which tries to determine how many ISAs
are enabled, and if there is exactly one, it creates a backwards
compatible alias for the ISA specific CPU types.

Change-Id: Iab358c2880d49222e814a98354c81d0f306fe1fc
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/52493
Reviewed-by: Andreas Sandberg <andreas.sandberg@arm.com>
Maintainer: Gabe Black <gabe.black@gmail.com>
Reviewed-by: Gabe Black <gabe.black@gmail.com>
Tested-by: kokoro <noreply+kokoro@google.com>
Maintainer: Andreas Sandberg <andreas.sandberg@arm.com>
2022-09-02 10:20:51 +00:00
Gabe Black
073c32be2c misc: Replace TARGET_ISA with USE_${ISA} variables.
The TARGET_ISA variable would let you select one ISA from a list of
possible ISAs. That has now been replaced with USE_ARM_ISA, USE_X86_ISA,
etc, variables which are boolean on or off. That will allow any number
of ISAs to be enabled or disabled individually. Enabling something other
than exactly one of these will probably prevent you from getting a
working gem5 binary, but those problems are being addressed in other,
parallel change series.

I decided to use the USE_ prefix since it was consistent with most other
on/off variables we have in gem5. One noteable exception is the
BUILD_GPU setting which, you could convincingly argue, is a better
prefix than USE_. Another option would be to use CONFIG_, in
anticipation of using a kconfig style config mechanism in gem5.

It seemed premature to start using a CONFIG_ prefix here, and if we
decide to switch to some other prefix like BUILD_, it should be a
purposeful choice and not something somebody just starts using.

Change-Id: I90fef2835aa4712782e6c1313fbf564d0ed45538
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/52491
Tested-by: kokoro <noreply+kokoro@google.com>
Maintainer: Gabe Black <gabe.black@gmail.com>
Reviewed-by: Jason Lowe-Power <power.jg@gmail.com>
Reviewed-by: Giacomo Travaglini <giacomo.travaglini@arm.com>
2022-09-02 10:20:51 +00:00
Giacomo Travaglini
daf0cbb134 configs: Fix segfault when using --standard-switch and --repeat-switch
This is similar to:

https://gem5-review.googlesource.com/c/public/gem5/+/56812

We should really prune some of these options and take stronger
steps on discouraging se.py usage

Change-Id: Id750fb5731698a17d64ed60e65e1253c620c911e
Signed-off-by: Giacomo Travaglini <giacomo.travaglini@arm.com>
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/62915
Reviewed-by: Jason Lowe-Power <power.jg@gmail.com>
Maintainer: Jason Lowe-Power <power.jg@gmail.com>
Tested-by: kokoro <noreply+kokoro@google.com>
2022-09-02 09:01:26 +00:00
Jui-Min Lee
c5c9f48e3f arch-riscv: Make ISA class the source of CSR info
Previously, all components assume the info in arch/riscv/regs/misc.hh to
be the single source of CSR info. That will however make adding
non-standard CSRs difficult as all those CSRs will need to go into the
same header & data structure and might conflict with each other.

In this CL, we add two new functions to the ISA class that provide
information about CSR. The rationale is that, the ISA class is already
the owner of CSR data, so it'll also be in a better position to provide
necessary CSR metadata. With the change, we can create two CPU models
with slightly different custom CSRs easily by creating two derived
RiscvISA classes and overriding the two functions.

We assume that, any customized CSR set is still compatible with standard
CSRs, so we could still utilize the same global map if only standard
CSRs are accessed in the use case.

Note that this does not necessarily mean you cannot or should not add
your customize CSRs into the MiscRegIndex enum. You'll usually still
required to do that to give each CSR an unique id. However, the ability
to override CSRDataMap/CSRMaskMap provide an opportunity to remap how
the CSR index encoded in the instruction maps to CSR, and also give you
a chance to make the read/write logic of certain custom CSRs different.

Change-Id: I168188bdb1baed11cb3e217eb021f289a13bb036
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/62891
Reviewed-by: Jason Lowe-Power <power.jg@gmail.com>
Maintainer: Jason Lowe-Power <power.jg@gmail.com>
Tested-by: kokoro <noreply+kokoro@google.com>
2022-09-02 01:32:13 +00:00
Jiajie Chen
63556899e4 arch-x86: Fix gem5Op not writing to rax in time
This commit adds rax to the destination register of gem5Op and sets the
result correctly. So that in O3CPU, the correct register dependency is
determined and the following instructions can get the correct value.

Jira Issue: https://gem5.atlassian.net/browse/GEM5-1273

Change-Id: Ic6e094a548648da09ee08e8d5f7d9afa5408b18e
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/62992
Tested-by: kokoro <noreply+kokoro@google.com>
Reviewed-by: Jason Lowe-Power <power.jg@gmail.com>
Maintainer: Jason Lowe-Power <power.jg@gmail.com>
2022-09-02 01:13:38 +00:00
Alexandru Dutu
241023329d arch-vega: DS_OR_B32 does not return data
The DS_OR_B32 instruction should not return data. This
changeset updates its implementation.

Change-Id: Ib5fccdbb69cd1ad2639bbf54824dc363a3fbf599
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/62656
Maintainer: Matt Sinclair <mattdsinclair@gmail.com>
Tested-by: kokoro <noreply+kokoro@google.com>
Reviewed-by: Matt Sinclair <mattdsinclair@gmail.com>
2022-09-01 15:16:37 +00:00
Giacomo Travaglini
56de5df7af arch-arm: Properly assign the global tag to TLB entries
Translation entries from regimes with no ASID support are
tagged as global.

For complete translations we cannot simply check for the EL
being EL2 or EL3 as the EL2&0 translation regime does support
ASIDs to differentiate userspace host applications.

We therefore change the LongDescriptor::global method to cover
the EL2&0 case.

We also fix the partial translation logic which was labelling
partial translations as non global without checking for the
translation regime

Change-Id: I9375a34eba6ede97d70ed80e43ce363a57678d55
Signed-off-by: Giacomo Travaglini <giacomo.travaglini@arm.com>
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/62452
Maintainer: Andreas Sandberg <andreas.sandberg@arm.com>
Maintainer: Jason Lowe-Power <power.jg@gmail.com>
Reviewed-by: Jason Lowe-Power <power.jg@gmail.com>
Reviewed-by: Andreas Sandberg <andreas.sandberg@arm.com>
Tested-by: kokoro <noreply+kokoro@google.com>
2022-09-01 08:27:31 +00:00
Giacomo Travaglini
e0af8bc0ee util: Use dist_bigLITTLE as an example dist-gem5 node
This is one of the steps towards deprecating fs.py usage

With the patch we are updating the commandline and default
kernel + disk image to reflect a more modern version [1]

[1]: https://www.gem5.org/documentation/general_docs/\
    fullsystem/guest_binaries

Signed-off-by: Giacomo Travaglini <giacomo.travaglini@arm.com>
Change-Id: I82fd5d232b6fd9a1962d0896a1d9462caad7ebed
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/62513
Reviewed-by: Richard Cooper <richard.cooper@arm.com>
Reviewed-by: Jason Lowe-Power <power.jg@gmail.com>
Reviewed-by: Andreas Sandberg <andreas.sandberg@arm.com>
Tested-by: kokoro <noreply+kokoro@google.com>
Maintainer: Jason Lowe-Power <power.jg@gmail.com>
2022-09-01 08:07:02 +00:00
Giacomo Travaglini
566cdd81a8 util: Warn line breaking the gem5-dist script
Once the switch node in a dist-gem5 simulation gets started it listens
the first available port starting from the initially supplied one.

To bind full system nodes to the switch, the switch logfile
is parsed for the exact port number.

This is fragile and it broke when the following line:

info: tcp_iface listening on port

changed to

build/ARM/dev/net/tcp_iface.cc:97: info: tcp_iface listening on port

This patch is fixing the problem with a more robust regex matching

Signed-off-by: Giacomo Travaglini <giacomo.travaglini@arm.com>
Change-Id: I2721b3c04653ac1e09878e80d8b1ea34ec1a0f73
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/62512
Maintainer: Jason Lowe-Power <power.jg@gmail.com>
Reviewed-by: Richard Cooper <richard.cooper@arm.com>
Reviewed-by: Andreas Sandberg <andreas.sandberg@arm.com>
Tested-by: kokoro <noreply+kokoro@google.com>
2022-09-01 08:07:02 +00:00
Giacomo Travaglini
0dc2a87666 dev-arm: Fix PCI range in VExpress_GEM5_Foundation
When we added the PCI mem range in the VExpress_GEM5_Foundation [1], we
meant to add a 256GiB region starting at 0x40 0000 0000.

By mistake the end address was set to 0x8 0000 0000 rather than
0x80 0000 0000

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

Signed-off-by: Giacomo Travaglini <giacomo.travaglini@arm.com>
Change-Id: I848b8fee11fb742939c9343aae4ee5205aa836e4
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/62511
Maintainer: Andreas Sandberg <andreas.sandberg@arm.com>
Reviewed-by: Andreas Sandberg <andreas.sandberg@arm.com>
Reviewed-by: Richard Cooper <richard.cooper@arm.com>
Tested-by: kokoro <noreply+kokoro@google.com>
2022-09-01 08:07:02 +00:00
yiwkd2
411e986a91 stdlib: Add PrivateL1SharedL2CacheHierarchy
This is implemented based on PrivateL1PrivateL2CacheHierarchy

Following modifications are made.

* The associativities of caches are parameterized
* Only single L2bus and L2cache exist
* Connections of L2cache (i.e., l2bus - l2cache, membus - l2cache) are
done out of for loop which is repeated num_cpus times.

Jira Issue: https://gem5.atlassian.net/browse/GEM5-1274

Change-Id: I1307954ffff4fab2bf5f61e225881b03a352a1e1
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/62655
Maintainer: Jason Lowe-Power <power.jg@gmail.com>
Reviewed-by: Jason Lowe-Power <power.jg@gmail.com>
Tested-by: kokoro <noreply+kokoro@google.com>
2022-09-01 03:22:56 +00:00
yiwkd2
9f206c2bfc mem-cache: Fix description for writeback_clean.
The description explains when we have to set this True (when a
downstream cache acts as a victim cache). Also, it describes general
(default) setup, but this seems inaccurate and not consistent with
default vaule.

Change-Id: I389adb0af0d6421e8a9672c4cf5d23510eb38242
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/62832
Maintainer: Jason Lowe-Power <power.jg@gmail.com>
Reviewed-by: Jason Lowe-Power <power.jg@gmail.com>
Tested-by: kokoro <noreply+kokoro@google.com>
2022-09-01 03:22:29 +00:00
yiwkd2
a39f68d5fb stdlib: Fix default values in classic caches
By default, caches in classic memory system are assume to be a mostly
inclusive cache with respect to their upstream caches.
Therefore, `writeback_clean` should be `False` by default, which is
consistent with src/mem/cache/Cache.py

Change-Id: I1395690f7f5fafee7fb151906302877ada953861
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/62831
Reviewed-by: Jason Lowe-Power <power.jg@gmail.com>
Maintainer: Jason Lowe-Power <power.jg@gmail.com>
Tested-by: kokoro <noreply+kokoro@google.com>
2022-09-01 03:22:07 +00:00
Bobby R. Bruce
86a8da1a32 tests: Improve Resource Downloader Test Suite
Theses improvements are:

1. Renames the test suite to the correct "ResourceDownloaderTestSuite".
   This was correctly named MD5FileTestSuite due to a copy-and-paste
   error.
2. Adds the `setUpClass` and `tearDownClass` from the Python's unittest
   framework. These are used to create the simple "resources.json" file
   used for testing, set the "GEM5_RESOURCE_JSON", and delete these when
   the test is complete.
3. The tests have been updated to utilize the improvements added in 2.

Change-Id: Ia54e45892452bf23b54c8b5a6bb4a94910d83c5f
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/62651
Reviewed-by: Jason Lowe-Power <power.jg@gmail.com>
Maintainer: Jason Lowe-Power <power.jg@gmail.com>
Tested-by: kokoro <noreply+kokoro@google.com>
2022-08-31 02:08:25 +00:00
Bobby R. Bruce
329a917c71 stdlib: Add Workload to the stdlib
This commit adds the concept of a "Workload" to the stdlib. Workloads
specify the details needed to run a particular gem5 workload on an
stdlib board. These are specified as part of gem5-resources and loaded
via the `Workload` class though can be specified locally via the
`CustomWorkload` class.

Tests are included in this commit to verify the functionality of these
Workloads.

Change-Id: I8840d281eb01ee4138f01ee499cae96bf7e0579d
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/62532
Maintainer: Jason Lowe-Power <power.jg@gmail.com>
Reviewed-by: Jason Lowe-Power <power.jg@gmail.com>
Tested-by: kokoro <noreply+kokoro@google.com>
2022-08-31 02:08:25 +00:00
Bobby R. Bruce
eb1242d96a stdlib: Remove deprecated "artifact" type
Change-Id: I40331242912d330bcd3924587c85211732e93f6f
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/62531
Reviewed-by: Jason Lowe-Power <power.jg@gmail.com>
Maintainer: Jason Lowe-Power <power.jg@gmail.com>
Tested-by: kokoro <noreply+kokoro@google.com>
2022-08-31 02:08:25 +00:00
Ayaz Akram
291be70b1e stdlib: fix HBM2Stack component get_mem_port
This change makes sure that the ruby directory controllers
see the entire address range covered by a single HBMCtrl
(including two pseudo channels/dram interfaces)

Change-Id: I89d01d7bc78e98ee0ef6113dc0c97de6acf2e256
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/62873
Maintainer: Jason Lowe-Power <power.jg@gmail.com>
Tested-by: kokoro <noreply+kokoro@google.com>
Reviewed-by: Jason Lowe-Power <power.jg@gmail.com>
2022-08-30 09:01:49 +00:00
Jason Lowe-Power
74bdd087f9 configs: Fix stat names after switchable changes
b6e0e72d9 changed the names of the switchable processor cores. This
change updates the stats after the nightlies failed.

Change-Id: If349ff07dea08ad3999e02ee95da389bab903b3e
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/62791
Reviewed-by: Bobby Bruce <bbruce@ucdavis.edu>
Maintainer: Bobby Bruce <bbruce@ucdavis.edu>
Maintainer: Jason Lowe-Power <power.jg@gmail.com>
Tested-by: kokoro <noreply+kokoro@google.com>
2022-08-28 14:04:23 +00:00
Ayaz Akram
09b3ff5187 mem: Fix the respondEvent check in DRAM interface
This change fixes the respondEvent schedule check
in DRAM interface to make sure that the correct respondEvent
is checked for a given pseudo channel.

Change-Id: Ie5edf48db9f6cf2e7ee4cafe7b774441464d77a4
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/61629
Reviewed-by: Jason Lowe-Power <power.jg@gmail.com>
Tested-by: kokoro <noreply+kokoro@google.com>
Maintainer: Jason Lowe-Power <power.jg@gmail.com>
2022-08-28 01:20:43 +00:00
Ayaz Akram
10c51f0856 stdlib: Add a component for HBM2 stack
This change adds a component for HBM2 stack in the gem5 stdlib.
For HBM2 stack, the atom size is used to interleave across pseudo
channels in a single physical channel or HBMCtrl and the bits
beyond that will be used to interleave across channels/controllers.

Change-Id: I95a279504981a5c000f38c9a6ad0e03484eb258e
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/61489
Reviewed-by: Jason Lowe-Power <power.jg@gmail.com>
Tested-by: kokoro <noreply+kokoro@google.com>
Maintainer: Jason Lowe-Power <power.jg@gmail.com>
2022-08-28 01:20:18 +00:00
Ayaz Akram
78f9081e23 mem: Add a flag to disable pkt q size check
This change adds a flag to MemCtrl to allow disabling
response port's queue size sanity check. This is needed
for cases/tests where you might want to drive the memory
system with a much higher bandwidth, for example as in
HBM2.

Change-Id: If8d621339ce8f3ab92cbe2b94039486705c64fc1
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/62372
Maintainer: Jason Lowe-Power <power.jg@gmail.com>
Reviewed-by: Jason Lowe-Power <power.jg@gmail.com>
Tested-by: kokoro <noreply+kokoro@google.com>
2022-08-28 01:20:18 +00:00
Jason Lowe-Power
c3e21ceac4 python: Fix up arrow in interactive shell
Simply by importing the readline module, the up arrow will work in
gem5's interactive shell now.

Change-Id: I41d87adc34253abf5a00ac484da377f9f065a27a
Signed-off-by: Jason Lowe-Power <jason@lowepower.com>
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/62671
Tested-by: kokoro <noreply+kokoro@google.com>
Reviewed-by: Bobby Bruce <bbruce@ucdavis.edu>
Maintainer: Bobby Bruce <bbruce@ucdavis.edu>
2022-08-27 15:56:59 +00:00
Bobby R. Bruce
c8031233e8 stdlib: Remove setting of 'kvm_vm' from SwitchableProcessor
This stops a `kvm_mv already has parent` warning from happening when
using a SwitchableProcessor.

Change-Id: I495a040e03c33228ceafc99a94b0d0957f4ff6a2
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/62657
Tested-by: kokoro <noreply+kokoro@google.com>
Reviewed-by: Jason Lowe-Power <power.jg@gmail.com>
Maintainer: Jason Lowe-Power <power.jg@gmail.com>
2022-08-26 18:37:48 +00:00
Bobby R. Bruce
50fd37a3b1 stdlib: Fix SwitchableProcessor to allow switch to KVM
An exception was raised if the SwitchableProcessor was setup to
switch to a KVM core from a non-KVM core (i.e., if KVM cores were
present they needed to be the starting core). This was due to a bug in
the Simulator module where the `root.sim_quantum` as not setup for cases
where the SwitchableProcessor was not starting with a KVM core, thus
causing an error when switched to KVM cores.

This has been fixed by modifying the Simulator module to always set
root.sim_quantum. This is acceptable as this is only used in KVM setups.

Change-Id: If57352ba67b7bca81882eae2ef1e9013ef45272f
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/62471
Reviewed-by: Bobby Bruce <bbruce@ucdavis.edu>
Maintainer: Bobby Bruce <bbruce@ucdavis.edu>
Tested-by: kokoro <noreply+kokoro@google.com>
2022-08-26 18:37:48 +00:00
Bobby R. Bruce
18ab41965c stdlib: Fix incorrect return type in cpu_types and isa
`get_cpu_types_str_set()` and `get_isas_str_set()` return `Set[str]` not
`Set[CPUTypes]`/`Set[ISA]`.

Change-Id: I703ce4c19e77eb6a3931cabb759f25d28aabb412
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/61773
Reviewed-by: Bobby Bruce <bbruce@ucdavis.edu>
Tested-by: kokoro <noreply+kokoro@google.com>
Maintainer: Bobby Bruce <bbruce@ucdavis.edu>
2022-08-26 18:37:48 +00:00
Bobby R. Bruce
639e407270 arch-mips,cpu-minor: Add MinorCPU to X86 ISA
While it may not be well supported, it's better to incorporate the
MinorCPU into the X86 ISA gem5 binary than leave it out.

Change-Id: I98d015c23e347276f6b943291877dc15026eb0da
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/61539
Reviewed-by: Bobby Bruce <bbruce@ucdavis.edu>
Tested-by: kokoro <noreply+kokoro@google.com>
Maintainer: Bobby Bruce <bbruce@ucdavis.edu>
2022-08-26 18:37:48 +00:00
Bobby R. Bruce
ca59b200ad arch-mips,cpu-minor: Add MinorCPU to SPARC ISA
While it may not be well supported, it's better to incorporate the
MinorCPU into the SPARC ISA gem5 binary than leave it out.

Change-Id: Iff8016b2a9857888cf66d1d2060581e979111b9f
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/61538
Reviewed-by: Bobby Bruce <bbruce@ucdavis.edu>
Tested-by: kokoro <noreply+kokoro@google.com>
Maintainer: Bobby Bruce <bbruce@ucdavis.edu>
2022-08-26 18:37:48 +00:00
Bobby R. Bruce
c04551e494 arch-power,cpu-minor: Add MinorCPU to POWER ISA
While it may not be well supported, it's better to incorporate the
MinorCPU into the POWER ISA gem5 binary than leave it out.

Change-Id: I408b0329ff2633e70995e9751ac4c6715dd38cb7
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/61537
Tested-by: kokoro <noreply+kokoro@google.com>
Maintainer: Bobby Bruce <bbruce@ucdavis.edu>
Reviewed-by: Bobby Bruce <bbruce@ucdavis.edu>
2022-08-26 18:37:48 +00:00
Bobby R. Bruce
840e030db3 arch-mips,cpu-minor: Add MinorCPU to MIPS ISA
While it may not be well supported, it's better to incorporate the
MinorCPU into the MIPS ISA gem5 binary than leave it out.

Change-Id: If44aa0531f287f4c3d8789c54025c7bb5259586a
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/61536
Reviewed-by: Bobby Bruce <bbruce@ucdavis.edu>
Maintainer: Bobby Bruce <bbruce@ucdavis.edu>
Tested-by: kokoro <noreply+kokoro@google.com>
2022-08-26 18:37:48 +00:00
Bobby R. Bruce
b2fee855d8 stdlib: Fix SimpleSwitchableProcessor to allow Minor type
Without setting the correct memory mode the SimpleSwitchableProcessor,
the Minor CPU could not be used as a valid core. This patch corrects
this issue by setting the memory mode to TIMING for Minor CPU cores.

Due to the increasingly complex if-else to determine the memory mode, a
function has been added to CPUTypes to determine what MemMode is
required for each CPUType.

Change-Id: I9384b4a9c0673af34cca04917d763ca45d0ea434
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/61535
Tested-by: kokoro <noreply+kokoro@google.com>
Maintainer: Jason Lowe-Power <power.jg@gmail.com>
Reviewed-by: Jason Lowe-Power <power.jg@gmail.com>
2022-08-26 18:37:48 +00:00
Bobby R. Bruce
117f1dd38c stdlib,tests: Fix stdlib SE mode for multicore setups
The `set_se_binary_workload` function was only setting up the binary to
work on one (the first) processor core. This caused an exception to be
thrown when trying to run an SE mode binary on a multicore system.

Tests have been added to ensure this works as intended.

Note: While this implementation fixes the bugs, it is limited. Future
work is needed to allow for multiprogram workloads.

Change-Id: I33dbaf5015705c299215dc83e8449b16df301cd4
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/62014
Maintainer: Bobby Bruce <bbruce@ucdavis.edu>
Reviewed-by: Bobby Bruce <bbruce@ucdavis.edu>
Tested-by: kokoro <noreply+kokoro@google.com>
2022-08-26 18:37:48 +00:00
Bobby R. Bruce
0d921a84de tests: Add "tests/gem5/se_mode" directory for SE tests
At present only the "test_hello_se.py" tests are run, but this directory
will serve as a directory for other SE tests going forward.

Change-Id: I814d1e673df0195960d3af69277db8d397f299e5
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/62012
Reviewed-by: Jason Lowe-Power <power.jg@gmail.com>
Maintainer: Jason Lowe-Power <power.jg@gmail.com>
Tested-by: kokoro <noreply+kokoro@google.com>
2022-08-26 18:37:48 +00:00
Bobby R. Bruce
ff1ea07ca4 tests: Fix incorrect doc-string in test_hello_se.py
Change-Id: Ic21e59cfc8fba92f93661d8b33803bd4c4c6fc58
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/62011
Reviewed-by: Jason Lowe-Power <power.jg@gmail.com>
Maintainer: Jason Lowe-Power <power.jg@gmail.com>
Tested-by: kokoro <noreply+kokoro@google.com>
2022-08-26 18:37:48 +00:00
Jason Lowe-Power
b6e0e72d92 stdlib: Improve core names in switchable processor
Currently, when using the switchable processor the first N cores are the
starting cores and the next N cores (e.g., board.processor.core<N+1>)
are the switched in cores. This is confusing when looking at the stats.

This change makes it so that the names of the different processor lists
used in the dictionary when constructing the switchable processor are
used in for the member names as well. This will allow users to have
names like board.processor.ff_cores and board.processor.detailed_cores.

A bit of refactoring of the base processor was required for this.

Change-Id: I244ee5f6080599acb60a777da979da048cf7463e
Signed-off-by: Jason Lowe-Power <jason@lowepower.com>
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/62652
Tested-by: kokoro <noreply+kokoro@google.com>
Reviewed-by: Bobby Bruce <bbruce@ucdavis.edu>
Maintainer: Bobby Bruce <bbruce@ucdavis.edu>
2022-08-25 14:55:07 +00:00
yiwkd2
35a60a45b8 stdlib: Minor typo fixed
In hbm.py, it says "Interfaces for LPDDR5 memory devices".

I think LPDDR5 should be replaced with HBM.

Change-Id: I87e0beafa79e6e3d9176edaf69b34a38230e9271
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/62654
Tested-by: kokoro <noreply+kokoro@google.com>
Reviewed-by: Jiajie Chen <c@jia.je>
Maintainer: Bobby Bruce <bbruce@ucdavis.edu>
2022-08-25 05:18:49 +00:00
Bobby R. Bruce
c0df86fb3e misc: Add gerrit commit message hook to pre-commit
This pre-commit hook adds the Change-ID etc. to the commit message.

Change-Id: I43b239468ab60ce1a8aaabb53dd6905819a2ce05
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/62575
Maintainer: Jason Lowe-Power <power.jg@gmail.com>
Reviewed-by: Andreas Sandberg <andreas.sandberg@arm.com>
Tested-by: kokoro <noreply+kokoro@google.com>
2022-08-24 21:47:07 +00:00
Bobby R. Bruce
6bb7b09749 misc: Update CONTRIBUTING.md for pre-commit
This patch does two things:

1. Ensures that both the 'pre-commit' and 'commit-msg' hooks are
   installed. The `pre-commit install` by itself will only install the
   'pre-commit' hooks. This expanded instlal command will also install
   the 'commit-msg' hook.
2. How to run pre-commit to automatically format your code.

Change-Id: I0561f2918568bb9191e4ec457c297fcd264248c0
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/62573
Reviewed-by: Jason Lowe-Power <power.jg@gmail.com>
Maintainer: Jason Lowe-Power <power.jg@gmail.com>
Reviewed-by: Andreas Sandberg <andreas.sandberg@arm.com>
Tested-by: kokoro <noreply+kokoro@google.com>
2022-08-24 21:47:07 +00:00
Bobby R. Bruce
5a88dcfdef scons: Update automatic hook install for pre-commit
This replaces the old hooks with the pre-commit check. If Python
pre-commit has not been installed an error is thrown asking the user to
install the requirements via pip.

Change-Id: I2d42f42624e10d38d0da39b473f0363db128ce1c
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/62553
Tested-by: kokoro <noreply+kokoro@google.com>
Maintainer: Jason Lowe-Power <power.jg@gmail.com>
Reviewed-by: Jason Lowe-Power <power.jg@gmail.com>
Reviewed-by: Andreas Sandberg <andreas.sandberg@arm.com>
2022-08-24 21:47:07 +00:00
Bobby R. Bruce
68c00268cc python: Add 'requirements.txt'
Change-Id: Ic7ef47bbef8879d6235ef669ff39a17f602f5cfd
Issue-on: https://gem5.atlassian.net/browse/GEM5-1268
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/62632
Reviewed-by: Jason Lowe-Power <power.jg@gmail.com>
Tested-by: kokoro <noreply+kokoro@google.com>
Maintainer: Jason Lowe-Power <power.jg@gmail.com>
Reviewed-by: Andreas Sandberg <andreas.sandberg@arm.com>
2022-08-24 21:47:07 +00:00
Bobby R. Bruce
2bc5a8b71a misc: Run pre-commit run on all files in repo
The following command was run:

```
pre-commit run --all-files
```

This ensures all the files in the repository are formatted to pass our
checks.

Change-Id: Ia2fe3529a50ad925d1076a612d60a4280adc40de
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/62572
Tested-by: kokoro <noreply+kokoro@google.com>
Reviewed-by: Andreas Sandberg <andreas.sandberg@arm.com>
Maintainer: Jason Lowe-Power <power.jg@gmail.com>
Reviewed-by: Jason Lowe-Power <power.jg@gmail.com>
2022-08-24 21:47:07 +00:00
Bobby R. Bruce
64add0e04d misc: Exclude test ref directories from pre-commit
The files in "tests/*./ref" directories are used in tests to check the
output of a test is valid. As such these should not be automatically
formatted by the pre-commit.

Change-Id: I82be1a91132a0b6c66c8bbb8f6d7dcc6e72abe77
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/62631
Reviewed-by: Andreas Sandberg <andreas.sandberg@arm.com>
Reviewed-by: Jason Lowe-Power <power.jg@gmail.com>
Tested-by: kokoro <noreply+kokoro@google.com>
Maintainer: Jason Lowe-Power <power.jg@gmail.com>
2022-08-24 21:47:07 +00:00
Bobby R. Bruce
ab04acc26e misc: Add the legacy gem5 .git/hooks to the pre-commit
The gem5 commit msg checker must be run during the 'commit-msg'
stage ergo this is explicitly set. The other hooks are only applicable
to the "commit" stage, the `default_stage` for the hooks.

To install all the hooks, you need to run the following:

```
pre-commit install -t pre-commit -t commit-msg
```

This ensures both the 'commit-msg' and 'pre-commit' hooks are installed.
If you run just `pre-commit install`, only the pre-commit hooks are
installed.

Change-Id: I4a0dcc7159ed5048baa120adf80bbf65f63c11dd
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/62552
Tested-by: kokoro <noreply+kokoro@google.com>
Reviewed-by: Andreas Sandberg <andreas.sandberg@arm.com>
Reviewed-by: Jason Lowe-Power <power.jg@gmail.com>
Maintainer: Jason Lowe-Power <power.jg@gmail.com>
2022-08-24 21:47:07 +00:00
Kyle Roarty
4ea8f35e50 configs: Add default to max_cu_tokens CLA
Fixes nightly tests

Change-Id: Ibad2e8a52afb62b0605ffa7ca958e378df799dae
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/62653
Tested-by: kokoro <noreply+kokoro@google.com>
Reviewed-by: Matt Sinclair <mattdsinclair@gmail.com>
Maintainer: Matt Sinclair <mattdsinclair@gmail.com>
2022-08-24 18:26:33 +00:00
Kyle Roarty
5f2a26701f configs: Add CLA for max_cu_tokens to apu_se.py
Adds a command-line argument for the Compute Unit's maximum
number of coalescer tokens

Change-Id: Ie00c3ac7e28ad162b801643bff345b4cf434a878
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/62551
Tested-by: kokoro <noreply+kokoro@google.com>
Maintainer: Matthew Poremba <matthew.poremba@amd.com>
Reviewed-by: Matt Sinclair <mattdsinclair@gmail.com>
Reviewed-by: Matthew Poremba <matthew.poremba@amd.com>
Maintainer: Matt Sinclair <mattdsinclair@gmail.com>
2022-08-23 03:43:49 +00:00
Jiajie Chen
963c96c600 misc: Fix dynamic decision of TranslatingPortProxy.
In commit 83b14e56, getVirtProxy is replaced by inline ternary operators
to decide between FS or SE version. However, dynamic dispatch will not
work in this scenario and the virtual function of SETranslatingPortProxy
will not be called. It may lead to failure in m5op read_file in SE mode.

Change-Id: I9b5f757096cfdbd6fb8bc14b1b0e02245703a0ac
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/62611
Tested-by: kokoro <noreply+kokoro@google.com>
Reviewed-by: Jason Lowe-Power <power.jg@gmail.com>
Maintainer: Jason Lowe-Power <power.jg@gmail.com>
2022-08-22 22:53:23 +00:00