Commit Graph

21283 Commits

Author SHA1 Message Date
Bobby R. Bruce
aac28994ae misc: Merge branch BobbyRBruce/gem5 into minor-release
Change-Id: Id2154dd36df1916b9ed3ffe0c104c80c88190506
2023-07-28 00:18:20 -07:00
Bobby R. Bruce
340a5a9a57 misc: Add Pyunit Test info to TESTING.md
Change-Id: Ibff77963653600ac7c9d706edca882d95e5c47df
2023-07-28 00:15:47 -07:00
Bobby R. Bruce
22628b861c misc: Update GitHub Actions text in TESTING.md
This change simplifies the explanation of how GitHub actions works.

Change-Id: Ia1540008463b8584f172c40ca7b4826cbbf95eb7
2023-07-28 00:15:41 -07:00
Bobby R. Bruce
2b0a1df096 misc: Add 'testing resources' sec to TESTING.md
Change-Id: Ie8a9c9200461d4f9e272dea75de1755b1b18aceb
2023-07-28 00:15:35 -07:00
Bobby R. Bruce
2dfdcac40f misc: Remove test binary sections from TESTING.md
These sections are very out-of-date and confusing.

Change-Id: I61aae0686f38671e46412e27ea516a5e06f4e6f2
2023-07-28 00:15:29 -07:00
Bobby R. Bruce
bfdb20fa10 misc: Update TESTING.md for subset selection
This change:

1. Removes the 'Specifying a subset of tests to run' section. This
   section is no longer useful since tests are no longer divided up so
   neatly by tags as they once were.
2. Adds a section outlining the 'quick', 'long' and 'very-long' tests
   and how they may be selected and run.

Change-Id: I61370dd80cc925a15d1a22755faa7d62e810862f
2023-07-28 00:15:22 -07:00
Bobby R. Bruce
aeefea862c Merge branch 'minor-release-staging-v23-0-1-0' into minor-release-v23-0-1-0 2023-07-27 17:51:05 -07:00
Bobby R. Bruce
501d72f121 Merge branch 'minor-release-staging-v23-0-1-0' into v23-0-1-0-release-notes 2023-07-27 17:46:28 -07:00
Bobby R. Bruce
010baba2a7 misc: Update version to v23.0.1.0 (#125)
Change-Id: Icd673083f23a465205bea12407bf265e2ba6fb4a
2023-07-27 17:42:18 -07:00
Bobby R. Bruce
e2725bb2e4 Merge branch 'minor-release-staging-v23-0-1-0' into v23-0-1-0-housekeeping 2023-07-27 17:42:09 -07:00
Bobby R. Bruce
b588ff0f5d Merge branch 'minor-release-staging-v23-0-1-0' into v23-0-1-0-release-notes 2023-07-27 17:41:51 -07:00
Bobby R. Bruce
07fb53d3d7 Merge branch 'minor-release-staging-v23-0-1-0' into minor-release-v23-0-1-0 2023-07-27 17:39:58 -07:00
Bobby R. Bruce
1be9501ecd misc: Merge stable into minor-release-staging-v23-0-1-0 (#139) 2023-07-27 17:39:39 -07:00
Bobby R. Bruce
48b4788bbe misc: Merge develop .github into stable (#122) 2023-07-27 17:38:14 -07:00
Bobby R. Bruce
dcf3c4ba98 misc: Sync CONTRIBUTING.md with website
This change syncs the repo's contributing documentation with that of the
website's contributing documentation:
https://www.gem5.org/contributing

From now on we'll attempt to keep the repo's CONTRIBUTING.md
documentation in sync with that on the website.

Change-Id: I2c91e6dd5cd7a9b642377878b007d7da3f0ee2ad
2023-07-27 10:11:46 -07:00
Bobby R. Bruce
0f358732cb misc: Add ".github" changes to minor release
This is a simple copy of the current state of the .github on the develop
branch, as of 2023-07-27. The stable branch .github dir should never be
ahead of that on develop. Therefore this should be safe to do.

Change-Id: I1e39de2d1f923d1834d0a77f79a1ff3220964bba
2023-07-27 09:46:28 -07:00
Bobby R. Bruce
65b99fffc9 util: Ignore line length check for #include pragma in C/C++ files (#134)
The length of the path of #include pragmas can be more than
79-character long. The length of the path of a #include pragma
can be outside of user's control.
2023-07-27 09:39:18 -07:00
Bobby R. Bruce
42b65cad68 misc: Add missing dependency to daily tests (#136)
The refactoring to the daily tests was missing the dependency on the
'name-artifacts' job, which is necessary for downloading all the gem5
artifacts. This adds it in so the tests run as expected.

Change-Id: I0d71ab147395f41c881f2b24597bc07006e1f9c0
2023-07-27 09:38:23 -07:00
Bobby R. Bruce
5aa955212f learning-gem5: Add a missing override (#135) 2023-07-27 09:37:52 -07:00
Jason Lowe-Power
ea18c2f417 cpu: Set SLC bit for GPU tester (#133)
This fixes issue #131 by reverting to the old behavior of performing all
atomics at the system level. To do this the SLC bit needs to be set for
all atomic requests.

Change-Id: I63f4e449be1b02c933832d09700237f8c8026f4c
2023-07-27 07:37:52 -07:00
Melissa Jost
415a6eb9d4 misc: Add missing dependency to daily tests
The refactoring to the daily tests was missing the dependency
on the 'name-artifacts' job, which is necessary for downloading
all the gem5 artifacts.  This adds it in so the tests run as
expected.

Change-Id: I0d71ab147395f41c881f2b24597bc07006e1f9c0
2023-07-26 23:49:39 -07:00
Hoa Nguyen
f19945e9cb ext: Remove the test
Change-Id: I5c174ad388f63e7846dab5d9497ab2faa73ca6f7
Signed-off-by: Hoa Nguyen <hn@hnpl.org>
2023-07-26 21:29:00 -07:00
Bobby R. Bruce
5888ea68a3 misc: Split up tests in daily-tests.yaml (#105)
This splits up the gem5 library example tests by Suite UID, as right now
running them together uses the runner for a long period of time. It is
important to note that doing this means additional tests from this
directory will need to be manually added, such as the kvm tests.

Change-Id: Ib2a0aca08f9b51b60e9dd0528324372cf2d98c05
2023-07-26 21:04:18 -07:00
Hoa Nguyen
bd82e6f1a7 learning-gem5: Add a missing override
Change-Id: I9acebe6f3096b499fa2c69b6d757373431f63c71
Signed-off-by: Hoa Nguyen <hn@hnpl.org>
2023-07-26 20:01:37 -07:00
Hoa Nguyen
9ec7a1c14a util: Ignore line length check for #include pragma in C/C++ files
The length of the path of the #include pragma can be more than
79-character long.

Change-Id: Id72250c166370c7f456bd1f7d05589a49c14c33d
Signed-off-by: Hoa Nguyen <hn@hnpl.org>
2023-07-26 19:41:04 -07:00
Matthew Poremba
ff7e67ee93 cpu: Set SLC bit for GPU tester
This fixes #131 by reverting to the old behavior of performing all
atomics at the system level. To do this the SLC bit needs to be set for
all atomic requests.

Change-Id: I63f4e449be1b02c933832d09700237f8c8026f4c
2023-07-26 21:18:26 -05:00
Jason Lowe-Power
21b4ad609f mem: Make functional request a response when satisfied by queue (#124)
In the memory controller, MemCtrl::MemoryPort::recvFunctional, when the
functional request is satisfied by the ctrl-response queue, correctly
make the packet a response.

This change mirrors AbstractMemory::functionalAccess, which uses
Packet::makeResponse() after satisfying the request.

Note:
bool trySatisfyFunctional(..) functions return true or false based on
whether the request was satisfied.
void recvFunctional(..) functions modify the packet to indicate
successful request satisfaction.
2023-07-26 17:03:16 -07:00
Bobby R. Bruce
6a503d52cd misc: Updating TESTING.md (#121)
This updates the TESTING.md to reflect the current state of the tests in
the gem5 repository and how they interact with the GitHub Actions
infrastructure.
2023-07-26 16:24:56 -07:00
Bobby R. Bruce
c056ef07a5 tests: Deprecate Gerrit/Jenkins testing scripts (#126)
These testing scripts are no longer used since moving to GitHub. The
Nightly (now refered to as "Daily" tests), the Weekly Tests, Compiler
Tests and the CI (Kokoro, pre-commit) tests are run via the GitHub
Actions infrastructure. Their setup is described via Workflow files in
".github/workflows". To run tests locally please consult the
"TESTING.md" file.

These scripts may still be useful to reference and are therefore being
moved into a deprecated state.

Change-Id: Ie75c2f4f1179eb73d0f45ba0b259e8d79aa02ace
2023-07-26 16:24:41 -07:00
Melissa Jost
7371dd51b9 misc: Move gem5 library example tests into a matrix
This moves the gem5 library example tests into a separate matrix,
so they can run on separate runners

Change-Id: Ie9f51b5bae9e7e424d1c98b545b4cf92b481a2fb
2023-07-26 16:19:12 -07:00
Melissa Jost
62df5ae35f misc: Refactor daily-tests.yaml
This changes the daily tests to use a matrix in order to run
tests.  It also includes forces the cleaning step to run
regardless of success or failure.  With this refactoring, now
all builds of gem5 must finish before any tests run, and all
tests download all artifacts from all the build runs.

Change-Id: I16e1bc9acaf619feb85fba53eb6129e7df3fe409
2023-07-26 16:19:11 -07:00
Bobby R. Bruce
2513d39392 misc: Update RELEASE-NOTES.md for v23.0.1.0
Change-Id: I5ae5081e0ac5524271e6c8300917d7d1e16d71ee
2023-07-26 12:50:49 -07:00
Adwaith R Krishna
7665c338e2 mem-garnet: Fix packet_id val in flit (#72)
Change-Id: I163b5a32972783bf2e99f3383b9f86776577b727

Co-authored-by: Bobby R. Bruce <bbruce@ucdavis.edu>
2023-07-26 12:32:33 -07:00
Jason Lowe-Power
4516a00593 cpu-minor: Check pc valid before printing
In https://gem5-review.googlesource.com/c/public/gem5/+/52047 inst.pc
was changed from an object to a pointer. It is possible that this
pointer is null (e.g., if there is an interrupt and there is a bubble).
Make sure to check that it's not null before printing.

I believe that other places this pointer is dereferenced without an
explicit null check are safe, but I'm not certain.

Change-Id: Idbe246cfdb62d4d75416d41b451fb3c076233bbc
Signed-off-by: Jason Lowe-Power <jason@lowepower.com>
2023-07-26 12:32:14 -07:00
Hoa Nguyen
41abc6ab77 cpu-kvm: Make using perf when using KVM CPU optional (#95)
* cpu-kvm: Add a variable signifying whether we are using perf

Change-Id: Iaa081e364f85c863f781723b5524d267724ed0e4
Signed-off-by: Hoa Nguyen <hoanguyen@ucdavis.edu>

* cpu-kvm: Making it clear the functionalities are specific to KVM

Change-Id: I982426f294d90655227dc15337bf73c42a260ded
Signed-off-by: Hoa Nguyen <hoanguyen@ucdavis.edu>

* cpu-kvm: Make perf optional

Change-Id: I8973c2a96575383976cea7ca3fda478f83e95c3f
Signed-off-by: Hoa Nguyen <hoanguyen@ucdavis.edu>

* configs: Add an example config of using KVM without perf

Change-Id: Ic69fa7dac4f1a2c8fe23712b0fa77b5b22c5f2df
Signed-off-by: Hoa Nguyen <hoanguyen@ucdavis.edu>

* Apply suggestions from code review

Co-authored-by: Jason Lowe-Power <jason@lowepower.com>

* misc: Add an example to the panic

Change-Id: Ic1fdfb955e5d8b9ad1d4f0a2bf30fa8050deba70
Signed-off-by: Hoa Nguyen <hoanguyen@ucdavis.edu>

* misc: Add warning of not using perf when using KVM CPU

Change-Id: I96c0832fb48c63a79773665ca6228da778ef0497
Signed-off-by: Hoa Nguyen <hoanguyen@ucdavis.edu>

* misc: Fix stuff

Change-Id: Ib407ae7407955b695f0e0f2718324f41bb0d768f
Signed-off-by: Hoa Nguyen <hoanguyen@ucdavis.edu>

* misc: style fix

Change-Id: I7275942e43f46140fdd52c975f76abb3c81b8b0a
Signed-off-by: Hoa Nguyen <hoanguyen@ucdavis.edu>

---------

Signed-off-by: Hoa Nguyen <hoanguyen@ucdavis.edu>
Co-authored-by: Jason Lowe-Power <jason@lowepower.com>
2023-07-26 12:31:47 -07:00
rogerchang23424
919dd5efbd scons: Add extra parent dir to CPPPATH if --no-duplicate-sources (#104)
In the previous version of gem5, the source files of extra directories
will copy to build directory for compilation. It will not be a problem
if the extra directories include *.h(*.hh) from the other extra
directories.

After the patch applied from the change
(https://gem5-review.googlesource.com/c/public/gem5/+/68758). The
source files of extra directories will not copy to the build directory
unless the user compiles gem5 with "--duplicate-sources". It will
cause the compilation error if the code includes a header file from
other repositories.

For example, assume we want to compile gem5 with "foo/bar1" and
"foo/bar2" repositories and they are gem5-independent. There are some
header files in "foo/bar1/a.h" "foo/bar1/b.h" and "foo/bar2/d.h". If
the code "foo/bar1/sample.c" tries to include the file "foo/bar2/d.h".
They usually include the file by declare "#include bar2/d.h" in
foo/bar1/sample.c. It can work if --duplicate-sources is specified in
gem5 build because they will copy to <builddir>/bar1 and
<builddir>/bar2 respectively, and -I<builddir> is specified by default
whether duplicate_sources or not. It will raise the compilation error
if the user does not specify it.

The change is aimed to let the situation work without
duplicate-sources specified by adding parent extra directory, and
adding them before the extra directories. If the --duplicate-sources
specified, it will not add parent extra directories to avoid repeat
include paths.

Change-Id: I461e1dcb8266d785f1f38eeff77f9d515d47c03d
2023-07-26 12:31:15 -07:00
Bobby R. Bruce
fa7c00935d misc: Update version to v23.0.1.0
Change-Id: Icd673083f23a465205bea12407bf265e2ba6fb4a
2023-07-26 12:17:07 -07:00
Bobby R. Bruce
ce8e1b6aaa tests: Deprecate Gerrit/Jenkins testing scripts
These testing scripts are no longer used since moving to GitHub. The
Nightly (now refered to as "Daily" tests), the Weekly Tests, Compiler
Tests and the CI (Kokoro, pre-commit) tests are run via the GitHub
Actions infrastructure. Their setup is described via Workflow files
in ".github/workflows". To run tests locally please consult the
"TESTING.md" file.

These scripts may still be useful to reference and are therefore being
moved into a deprecated state.

Change-Id: Ie75c2f4f1179eb73d0f45ba0b259e8d79aa02ace
2023-07-26 10:54:57 -07:00
Giacomo Travaglini
f78fc5b2f7 arch-arm: Hook TLBIOS instructions to the TlbiShareable obj
FEAT_TLBIOS has been introduced by a recent patch [1] which
was however missing to include the outer shareable case in the
Msr disambiguation switch. Which meant the TLBIOS instructions
were decoded as normal MSR instructions, with no effect whatsoever
on the TLBs

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

Change-Id: I41665a4634fbe0ee8cc30dbc5d88d63103082ae9
Signed-off-by: Giacomo Travaglini <giacomo.travaglini@arm.com>
2023-07-26 10:42:19 -07:00
Atri Bhattacharyya
256729a40c mem: Make functional request a response when satisfied by queue
In the memory controller, MemCtrl::MemoryPort::recvFunctional,
when the functional request is satisfied by the ctrl-response queue,
correctly make the packet a response.

This change mirrors AbstractMemory::functionalAccess, which uses
Packet::makeResponse() after satisfying the request.

Change-Id: I47917062d3270915a97eed2c9fade66ba17019eb
2023-07-26 17:34:24 +02:00
Bobby R. Bruce
949119b5bb misc: Add Pyunit Test info to TESTING.md
Change-Id: Ibff77963653600ac7c9d706edca882d95e5c47df
2023-07-25 20:42:02 -07:00
Bobby R. Bruce
56a9bec602 misc: Update GitHub Actions text in TESTING.md
This change simplifies the explanation of how GitHub actions works.

Change-Id: Ia1540008463b8584f172c40ca7b4826cbbf95eb7
2023-07-25 20:22:00 -07:00
Bobby R. Bruce
cb98715514 misc: Add 'testing resources' sec to TESTING.md
Change-Id: Ie8a9c9200461d4f9e272dea75de1755b1b18aceb
2023-07-25 20:04:43 -07:00
Bobby R. Bruce
2846df946a misc: Remove test binary sections from TESTING.md
These sections are very out-of-date and confusing.

Change-Id: I61aae0686f38671e46412e27ea516a5e06f4e6f2
2023-07-25 19:50:17 -07:00
Bobby R. Bruce
00b2846109 misc: Update TESTING.md for subset selection
This change:

1. Removes the 'Specifying a subset of tests to run' section. This
   section is no longer useful since tests are no longer divided up so
   neatly by tags as they once were.
2. Adds a section outlining the 'quick', 'long' and 'very-long' tests
   and how they may be selected and run.

Change-Id: I61370dd80cc925a15d1a22755faa7d62e810862f
2023-07-25 19:43:24 -07:00
Bobby R. Bruce
7601fcfba6 cpu-minor: Check pc valid before printing (#107)
In https://gem5-review.googlesource.com/c/public/gem5/+/52047 inst.pc
was changed from an object to a pointer. It is possible that this
pointer is null (e.g., if there is an interrupt and there is a bubble).
Make sure to check that it's not null before printing.

I believe that other places this pointer is dereferenced without an
explicit null check are safe, but I'm not certain.

Should fix #97 

Change-Id: Idbe246cfdb62d4d75416d41b451fb3c076233bbc
2023-07-25 17:14:38 -07:00
Melissa Jost
556c9154dd base: Add maybe_unused to findLsbSetFallback (#109)
When compiling with clang-14 I received the following error:

```
src/base/bitfield.hh:328:1: error: function 'findLsbSetFallback' is not needed and will not be emitted [-Werror,-Wunneeded-internal-declaration]
```

This function was introduced in PR #76.
This fixes this compiler warning/error by using `[[maybe_unused]]`.

Change-Id: I0b99eab0a9e42ee1687e7a0594a5a7bf9588b422
2023-07-25 10:41:59 -07:00
Giacomo Travaglini
189d514f2f arch-arm: Hook TLBIOS instructions to the TlbiShareable obj (#114)
FEAT_TLBIOS has been introduced by a recent patch [1] which was however
missing to include the outer shareable case in the Msr disambiguation
switch. Which meant the TLBIOS instructions were decoded as normal MSR
instructions, with no effect whatsoever on the TLBs

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

Change-Id: I41665a4634fbe0ee8cc30dbc5d88d63103082ae9
2023-07-25 11:57:50 +02:00
Bobby R. Bruce
78849ac4fb Merge branch 'develop' into fix-bitfield-unused 2023-07-24 11:05:05 -07:00
Bobby R. Bruce
9f56bbd7dd misc: Update ci-tests.yaml to always clean runner (#111)
Adds line to make sure the runners are always cleaned whether or not the
previous tests pass

Change-Id: I980c0232305999fb3548464ea1b6eaeca7bcdbd6
2023-07-24 11:02:18 -07:00