Commit Graph

21799 Commits

Author SHA1 Message Date
Giacomo Travaglini
49ca08b01a arch-arm: Add isStage2 qualifier to the LongDecriptor
We are currently using the LongDecriptor for both stage1
and stage2 translations. There are several cases where
the bitfield meaning changes depending on the translation
stage.

Change-Id: Ic33d9ef225a57fd79ce2b4bf47896aeb6bdd8d9c
Signed-off-by: Giacomo Travaglini <giacomo.travaglini@arm.com>
2024-07-02 13:15:31 +01:00
Giacomo Travaglini
9cce68ca71 arch-arm: Replace isSecure boolean with SecurityState enum
Change-Id: If01b8b2811b2c028e669ea3700174c7945b07a06
Signed-off-by: Giacomo Travaglini <giacomo.travaglini@arm.com>
2024-07-02 12:45:24 +01:00
Alexander Richardson
d5c0383887 arch-arm: support 64-bit PMCCNTR from AArch32 (#1304)
For ARMv8 CPUs this register allows reading a 64-bit cycle counter in
from 32-bit execution state.

Change-Id: I7cd9e2711ada5156920440cc3c89e7a74ca54a49
2024-07-02 08:59:44 +01:00
Giacomo Travaglini
b28659d4f9 arch-arm: Implement FEAT_XS (#1303)
This patch is adding a functional implementation of FEAT_XS. Unless we
operate with DVM enabled, TLBIs broadcasting is accomplished in 0 time;
so there is no timing benefit introduced by enabling FEAT_XS other than
the way it affects TLB management (invalidation)

Change-Id: I067cb8b7702c59c40c9bbb8da536a0b7f3337b5d

Signed-off-by: Giacomo Travaglini <giacomo.travaglini@arm.com>
2024-07-02 08:52:59 +01:00
Bobby R. Bruce
093e3afc81 misc,github,tests: Attempt Fixes for flakey Daily Tests (#1310) 2024-07-01 15:26:32 -07:00
Bobby R. Bruce
8d88a37ec9 misc: v4.0.0 -> v4 for actions/download-artifact
This was fixed to v4.0.0 under the assumption the flaky nature or the
daily-tests.yaml workflow was due to a later, minor v4 version causing
issue. This did not work. Ergo this patch reverts back to using the
latest v4 version.

Change-Id: I72b8811022268f34309de193445987dbe0085951
2024-07-01 15:08:19 -07:00
Bobby R. Bruce
801b86e860 misc: Remove artifact merge from daily-tests.yaml
This Workflow is flakey and it appears to msotly around the usage of the
the merging of all the gem5 builds into a single artifact. In attempt to
stabalize the workflow this merge step has been removed. ALL jobs now
download all gem5 binaries.

Change-Id: Ib1e9d82514c3d5e5af9de974a477e213f8af2aaa
2024-07-01 15:05:08 -07:00
Bobby R. Bruce
3142464ff7 misc: Add 'scheduler.yaml' workflow (#1307)
This is made to run on the 'stable' branch to schedule workflow runs on
the `develop` branch. This solves the problem of GitHub Workflows being
scheduled to only run on 'stable' branch' thus ignoring changes made to
them on 'develop'

With this schedule we no longer need to force a checkout of 'develop' in
the workflows. As such these have been removed.

The scheduled workflows are now triggered via "workflow_dispatch" via
the "scheduler.yaml" workflow
2024-07-01 12:36:56 -07:00
Bobby R. Bruce
e5414a80a3 misc, tests: Fix missing 's' in GPU tests (#1305)
This caused the weekly tests to fail. It's 'tests' not 'test'.
2024-07-01 07:37:32 -07:00
Matt Sinclair
04a3fd5b5d gpu-compute,mem-ruby: Add RubyHitMiss flag for TCP and TCC cache (#1260)
Add hit and miss print for TCP and TCC cache with RubyHitMiss debug flag

Change-Id: I40ae3449020b917f39ac91d29fa4e1dd7c791e7b
2024-06-30 13:32:01 -05:00
Bobby R. Bruce
ca4897897c misc: Merge stable into develop (v24.0 release) (#1295)
This guarantees all changes put on the staging branch and, for whatever
reason, put on stable are on develop.

In addition this PR reverts specific release procedures (e.g., reverting
the removal removing the -Werror compilation flag, and changing the
versioning back to "DEVELOP").
2024-06-27 23:45:25 -07:00
Bobby R. Bruce
beff732ecf util-docker: Set dev container to ":latest"
Change-Id: I73bb569e05830d35f0aa63eb75026a83377ae3a5
2024-06-27 23:42:25 -07:00
Bobby R. Bruce
4a28b367d7 scons: Readd -Werror for the develop branch
This reverts commit 6e4c1c5db7.
2024-06-27 23:38:36 -07:00
Bobby R. Bruce
b3f23830c9 misc: Update versioning for develop branch
Develop for v24.1

Change-Id: I4ef34c4a4ef67d171505ff9380746ae193655305
2024-06-27 23:36:07 -07:00
Bobby R. Bruce
6fcc13cf55 misc: Merge branch stable into develop
This guarantees all changes put on the staging branch and, for whatever
reason, put on stable are on develop. This syncs the branches.

Change-Id: Ib3513f49977bb4ed3046c2d9d6cf162953b15887
2024-06-27 23:27:21 -07:00
Bobby R. Bruce
43769abaf0 misc: Merge v24.0 release staging branch to stable (#1274)
This merge officially marks the release of gem5 v24.0.
2024-06-27 23:22:40 -07:00
Harshil Patel
3acb6e59cf resources: Update elfie.py to work with obtain_resources (#1289)
Change-Id: I08c5e50a150c8434c6c2ca36af81fb6ec3915af8
2024-06-27 20:02:57 -07:00
Jarvis Jia
f56571fed9 Merge branch 'develop' into rubyhitmiss 2024-06-27 21:45:08 +08:00
Bobby R. Bruce
b471d5f382 stdlib,tests: Update resources to v24.0 in Pyunit test (#1290)
This needs a better fix. I don't like having to update these files for
every release. Though for now, this will mean the tests passing in v24.0
2024-06-27 05:48:48 -07:00
Jason Lowe-Power
c1825a9c0a misc: Update release notes
Change-Id: Ia8bd55ab46dca7f0eef533c0c3b7da1fe4c84cc9
Signed-off-by: Jason Lowe-Power <jason@lowepower.com>
2024-06-26 15:09:27 -07:00
Bobby R. Bruce
e4218a8c43 Merge branch 'stable' into release-staging-v24.0.0.0 2024-06-26 13:45:57 -07:00
Bobby R. Bruce
9d05b35884 misc: Improve gem5 Release notes for v24.0
Change-Id: I5d59f41a84919a9eba1cc00b116e2477ad0beb6e
2024-06-26 13:44:35 -07:00
Rajesh Shashi Kumar
3ce5e0584a arch-arm: This commit fixes a typo in the ARM ldaddalx instruction (#1279)
The acquire-release flavor of the ldadd instruction should read ldaddalx
(eg. ldaddalb/ldaddalh) according to specification. However, this is
currently noted as ldadd"la"x (eg. ldaddlab/ldaddlah).

Issue: https://github.com/gem5/gem5/issues/1224
Change-Id: Ib932fa0e572207729c923c27f24c34cc21dff0e5

Co-authored-by: Bobby R. Bruce <bbruce@ucdavis.edu>
2024-06-26 09:03:50 -07:00
Harshil Patel
e0d03fbc2f resources: fix check for additional_params for workloads
Change-Id: I0a4b5f0eef6e2f9faf35cea8130572a066aab6cd
2024-06-26 07:13:04 -07:00
Jason Lowe-Power
f68f4dd390 resources: fix check for additional_params for workloads (#1287)
Change-Id: I0a4b5f0eef6e2f9faf35cea8130572a066aab6cd
2024-06-26 09:08:45 -05:00
Harshil Patel
144a2071fe resources: fix check for additional_params for workloads
Change-Id: I0a4b5f0eef6e2f9faf35cea8130572a066aab6cd
2024-06-25 16:30:07 -07:00
Matthew Poremba
faa18576f2 misc: Add high level GPU model release notes
Change-Id: I73dfba5eeeffe1b812bc41a80b9d0901822e8062
2024-06-25 11:21:20 -07:00
Harshil Patel
241b8a09df resources: Update client_query to trim gem5 version (#1284)
- gem5 was querying the full version of gem5 that is `24.0.0.0` while
searching for resources.
This was causing an error to find resources on staging branch. 
This change trims the gem5 version to be just the major.minor version.

Change-Id: I30c3a1b38c631981f797ef0fd2b616e6a66ca18e
2024-06-25 09:04:13 -07:00
Harshil Patel
52fde944a5 resources: Update client_query to trim gem5 version (#1284)
- gem5 was querying the full version of gem5 that is `24.0.0.0` while
searching for resources.
This was causing an error to find resources on staging branch. 
This change trims the gem5 version to be just the major.minor version.

Change-Id: I30c3a1b38c631981f797ef0fd2b616e6a66ca18e
2024-06-25 09:01:36 -07:00
Jarvis Jia
341c72839b Fix hit issue
Change-Id: I28745489de693591d5ad8453b035a8c782adaf1f
2024-06-24 11:19:51 -07:00
Jarvis Jia
21b69975a6 Fix compilation error
Change-Id: I8273472b8d0cff8c02f2d1e1a9d66599af7c4866
2024-06-24 11:19:51 -07:00
Jarvis Jia
e957a882ed gpu-compute,mem-ruby: Add RubyHitMiss flag for TCP and TCC cache
Add hit and miss print for TCP and TCC cache with RubyHitMiss debug flag

Change-Id: I40ae3449020b917f39ac91d29fa4e1dd7c791e7b
2024-06-24 11:19:51 -07:00
Bobby R. Bruce
84c3b0c111 misc: Update dummy jobs for workflows
These give us clear indications if a workflow has passed or failed.

Change-Id: If61b9ac5dc4d2da54b4ad68e427b149bbcb4a30b
2024-06-22 12:59:42 -07:00
Bobby R. Bruce
09781fd78f misc: Update dummy jobs for workflows
These give us clear indications if a workflow has passed or failed.

Change-Id: If61b9ac5dc4d2da54b4ad68e427b149bbcb4a30b
2024-06-22 12:58:35 -07:00
Bobby R. Bruce
79a0a2a15f Merge branch 'stable' into release-staging-v24.0.0.0 2024-06-22 12:31:45 -07:00
Giacomo Travaglini
7f3afc211c misc: Add MPAM entry in the v24 release notes
Change-Id: If11d470003e21e51dd5a3b1831d50ed8a54e1919
Signed-off-by: Giacomo Travaglini <giacomo.travaglini@arm.com>
2024-06-21 11:05:22 +01:00
Mahyar Samani
21bd1c28ab Adding an example for Spatter (#1272)
This change adds a new utility function for processing Spatter traces
into SpatterKernels under parse_kernels.
Additionally, it adds documentation for all the utility functions in
spatter_kernel.py.
Lastly, it adds an example script for running one spatter trace using
SpatterGenerator to the examples.
2024-06-21 02:26:58 -07:00
Mahyar Samani
30bfdc8e52 stdlib: Getter method to get monolith range. (#1273)
This change extend the AbstractMemory class to add a getter method that
allows other components to get the memory's range without interleaving.
This method will be useful if other components in the system need to
interleave the memory range different to the way the memory has
interleaved them.
2024-06-21 02:26:50 -07:00
Mahyar Samani
18bc5227f6 stdlib: Getter method to get monolith range. (#1273)
This change extend the AbstractMemory class to add a getter method that
allows other components to get the memory's range without interleaving.
This method will be useful if other components in the system need to
interleave the memory range different to the way the memory has
interleaved them.
2024-06-21 02:23:58 -07:00
Mahyar Samani
590bb1fbbb Adding an example for Spatter (#1272)
This change adds a new utility function for processing Spatter traces
into SpatterKernels under parse_kernels.
Additionally, it adds documentation for all the utility functions in
spatter_kernel.py.
Lastly, it adds an example script for running one spatter trace using
SpatterGenerator to the examples.
2024-06-21 02:23:41 -07:00
Bobby R. Bruce
6f95d4f3c3 misc: Add content for v24.0 RELEASE_NOTES.md
First draft. Not yet complete.

Change-Id: I80fa4fa4e82e0367cb347df53e9cc9cb52670bfc
2024-06-20 15:37:13 -07:00
Bobby R. Bruce
6e4c1c5db7 scons: Remove -Werror for the gem5 v24.0 release
Removing -Werror flag on the stable branch ensures that as new compilers
are releases (likely withs stricter warnings) gem5 remains compilable.

Change-Id: I0267c895414b630c1d7cd9b28236249790b3006f
2024-06-20 14:47:09 -07:00
Bobby R. Bruce
ec120e0c58 util-docker: Update devontainer Dockerfile for v24.0
Change-Id: Id21fb1b12d8ad58338233d4f32be5b57e025f18b
2024-06-20 14:31:12 -07:00
Bobby R. Bruce
d9d7d7646a misc: Update Doxygen version to v24.0.0.0
Change-Id: Ibaa04b09813a1d497727ed9d2a903ee2b3049ffd
2024-06-20 13:53:20 -07:00
Bobby R. Bruce
888bf0d693 base: Update src/base/version.cc for v24.0
Change-Id: Iac980772a42853f9bfbdadb65d5efc3c5fdb6aed
2024-06-20 13:53:07 -07:00
Jason Lowe-Power
013f773d31 arch-riscv: Fix TLB lookup with vaddrs (#1264)
Previously, all of the TLB lookup/insert functions were using the full
virtual addresses even though the variables in the functions said "vpn."
This change explicitly converts the virtual address to the VPN without
any least significant zeros for the offset. I.e., vpn >> page_size.

The main bug solved in this changeset is the asid was |'d with the upper
bits of the virtual address, but sometimes there were all 1's.
Therefore, you could get a TLB hit even if the ASID was different.
Interestingly, the page that seemed to cause these issues was a 1 GiB
page.

This change also starts refactoring some of the page table details to
support sv46 and sv57 page table formats.

In my testing, the Linux kernel boot uses large pages (even OpenSBI uses
large pages), so it seems that large pages also work. However, this
seems like magic to me, so I'm not sure if it's correct.

This change also updates some asserts, and debug statements with more
useful debugging information.

Partially fixes #1235. More testing needs to be done to be confident.
2024-06-20 13:24:50 -07:00
Bobby R. Bruce
7137b73ca0 cpu: Fix std::min type mismatch in reg_class.hh (#1266)
Introduced in #1234, this caused compilation to faill in Apple Silicon
systems. This bug is the same as #582 where a more detailed explanation
is provided.
2024-06-20 13:02:08 -07:00
Mahyar Samani
7ff1e381c9 cpu,stdlib: Fix Access Trace for Accessing Indices in SpatterGen (#1258)
This change fixes the way indices are generated in a multi generator
setup.
It changes it from all cores generating the same trace of indices for
accessing the index array to each core generating an interleaved subset
of indices.
For an example look below for traces (indices to index array) in a 2
core setup.

Before:
core_0: 0, 1, 2, 3, 4, 5, 6, 7, ...
core_1: 0, 1, 2, 3, 4, 5, 6, 7, ...
After:
core_0: 0, 1, 2, 3, 8, 9, 10, 11, ...
core_1: 4, 5, 6, 7, 12, 13, 14, 15, ...

Additionally, this change fixes the SpatterKernel class in the standard
library to comply with the change in the SpatterGen source code.
2024-06-20 11:24:44 -07:00
Matthew Poremba
ed860dfe54 configs: Check before use replacement policy options (#1261)
Rather than adding the options to *every* config that might be using
GPU_VIPER.py, just change the Ruby config to check if the option is
available before trying to use it. Otherwise, reverts to what was the
default on stable.

Change-Id: Ia6f1d0827d489ee2a35c598b644461cbff59e247
2024-06-20 09:50:29 -07:00
TiredTumblrina
9fb0b18863 gpu-compute,mem,systemc: This commit corrects typos of 'cache' (#1263)
I noticed while using the stable branch that there were a few typos of
the word 'cache' and so I've corrected a few files where I found such
typos.

Change-Id: I7c7f64812039f34fe39d0c45c4f5ce921cba06d0
2024-06-20 09:45:13 -07:00