Commit Graph

21188 Commits

Author SHA1 Message Date
Tiago Mück
b652ab8558 mem-ruby: fix missing txnId for prefetch requests (#734)
Internal prefetch message generation at AllocateTBE_PfRequest was
missing the expected txnId value.

Change-Id: I7d1ead24db947a15133f6ec45b27a47c70096682

Signed-off-by: Tiago Mück <tiago.muck@arm.com>
2024-01-04 07:55:11 -08:00
Giacomo Travaglini
5e2e748f3a arch-arm: Handle invalid case for encodeAArch64SysReg (#732)
This patch is amending encodeAArch64SysReg so that it covers the case
where there are no arch numbers available for the misc index passed as
an argument.

This could happen if the register ID is a gem5 pseudo register which is
not associated with any architected op1/op2/crn/crm tuple.

Rather than panicking we return a nullopt.

Change-Id: I7ab70467105ef93c0c78ac4e999c7dc8e5e09925

Signed-off-by: Giacomo Travaglini <giacomo.travaglini@arm.com>
2024-01-04 10:04:40 +00:00
Alexander Richardson
e7d7199ea4 scons: Add option to use libc++ (#680)
this adds an option --with-libcxx, that adds the -stdlib=libc++ flag to
link against libc++ instead of libstdc++ on Linux. Currently this is
only possible with clang and may not work with all build configurations
(e.g. protobuf linked against libstdc++), so this needs to be opt-in
rather than being on by default for clang whenever libc++ is detected.

Change-Id: Ib4022a58bb2dbd32417c58f01c7443a02ff710fe
2023-12-28 12:49:44 -08:00
Bobby R. Bruce
88ea70886b misc: Merge v23.1 staging branch into develop (#716)
This is just to triple mark sure everything on staging is in the develop
branch.
2023-12-27 20:16:30 -08:00
Bobby R. Bruce
0615ba4748 misc: Merge branch 'release-staging-v23-1' into develop
Change-Id: I091b7788d67f1803ddb8f9c4f5661f1f24c3b594
2023-12-27 12:42:51 -08:00
Bobby R. Bruce
b90cc7f3bc misc: Merge branch stable into release-staging-v23-1
Change-Id: I3903331ec4c9d7ba83656bbf579ac3c1cac8518f
2023-12-27 12:39:52 -08:00
Bobby R. Bruce
2fe738911e misc: Change version information to develop for v24.0
Change-Id: I5a29cd574256f8a0f8963567ead0af45c1fce9f2
2023-12-27 12:29:52 -08:00
Bobby R. Bruce
7c882e17db scons: Re-enable warnings-as-errors for develop branch
Change-Id: I9c9898395858bad7365b36779b71d07f847bed70
2023-12-27 11:48:16 -08:00
Bobby R. Bruce
4ea676471a misc: Merge branch 'release-staging-v23-1' into develop
This is just a stanity check to ensure all changes are in the `develop`
branch.

Change-Id: I7f6e6709338ae9a386bc7527d5cf4daf10d768c2
2023-12-27 11:42:56 -08:00
Bobby R. Bruce
012c4a3fbd misc: Merge branch stable into release-staging-v23-1
Change-Id: I3903331ec4c9d7ba83656bbf579ac3c1cac8518f
2023-12-27 11:41:50 -08:00
Yu-Cheng Chang
5c4e41ad23 misc: Fix kconfig section format of RELEASE-NOTE.md (#714)
Change-Id: Iff6edca7db3c46d2ff1c3d4b19cc0907d4f2922d
2023-12-27 11:20:56 -08:00
Harshil Patel
cafc5e685d misc: Add release notes for version 23.1 (#447) 2023-12-23 18:23:06 -08:00
Bobby R. Bruce
025ccadc68 configs: Fix SMT cpu type checking (#698)
The args.cpu_type is not a type but a string so the isinstance checking
will always fail and an assertion will always be thrown

A cherry-pick of #684 to develop

Signed-off-by: Giacomo Travaglini <giacomo.travaglini@arm.com>
Co-authored-by: Giacomo Travaglini <giacomo.travaglini@arm.com>
2023-12-22 11:30:45 -08:00
Bobby R. Bruce
4c02ae214f scons: Remove warnings-as-errors comp feature for v23.1 (#708) 2023-12-21 19:45:12 -08:00
Bobby R. Bruce
2134ec5163 scons: Remove warnings-as-errors comp feature for v23.1
Change-Id: Iae1981e06cd98aa12e1e2362487e36388602dc7b
2023-12-21 19:15:51 -08:00
Bobby R. Bruce
d48ed780d2 misc: Cherry-pick commits from develop to v23.1 staging (#707)
This PR includes commits from:

* #696
* #706 
* #705 
* #695 
* #704
2023-12-21 18:50:09 -08:00
Jason Lowe-Power
a28a2be4e6 Revert "tests: Fix garnet and memcheck tests to use X86"
This reverts commit b22ca02a65.
2023-12-21 18:46:45 -08:00
Jason Lowe-Power
8eded999f4 mem-ruby,configs: Enable Ruby with NULL build
After removing `get_runtime_isa`, the `send_evicts` function in the ruby
configs assumes that there is an ISA built. This change short-circuits
that logic if the current build is the NULL (none) ISA.

Change-Id: I75fefe3d70649b636b983c4d2145c63a9e1342f7
Signed-off-by: Jason Lowe-Power <jason@lowepower.com>
2023-12-21 18:46:37 -08:00
Bobby R. Bruce
646b1f4882 cpu: 'suppressFuncErrors' -> 'pkt->suppressFuncError()' fix
Change-Id: If4aa71e9f6332df2a3daa51b69eaad97f6603f6b
2023-12-21 18:46:25 -08:00
Bobby R. Bruce
585ce62703 tests: Fix garnet and memcheck tests to use X86
These tests previously used "build/NULL" but due to changes in the
"Ruby" and "garnet_synth_traffic.py" scripts, "NULL" fails as the script
exists "X86TimingSimple" with MESI_Two_Level.

This change fixes the tests by compiling and using the correct
compilation of gem5. It shouldn't affect the tests in any negative way.
As far as I'm aware it does not matter what ISA is used for these tests.

Change-Id: I8ae84b49f65968e97bef4904268de5a455f06f5c
2023-12-21 18:46:16 -08:00
Bobby R. Bruce
aadd59b1f0 configs: Add hasattr guard to ensure DerivO3CPU compiled
configs/ruby/Ruby.py fails when `DerivO3CPU` is not compiled into the
gem5 binary. The `isinstance` check fails. This fix addds a guard.

Change-Id: I1e5503ab18ec94683056c6eb28cebeda6632ae8e
2023-12-21 18:46:09 -08:00
Harshil Patel
70aeaaa0e9 mem: Updated bytesRead and bytesWritten stat (#705)
- The bytesRead and bytesWritten stat had duplicate names. Updated
bytesRead and bytesWritten for dram_interface and nvm_interface

Change-Id: I7658e8a0d12ef6b95819bcafa52a85424f01ac76
2023-12-21 18:46:02 -08:00
Bobby R. Bruce
c4146d8813 misc: Fix 'maybe-uninitialized' warn turn off (#706)
https://github.com/gem5/gem5/pull/696 was implemented incorrectly and
and causes error when running with GCC 12.1. This patch fixes the error.
2023-12-21 18:45:56 -08:00
Bobby R. Bruce
e95389920a misc: Turn off 'maybe-uninitialized' warn for regex include (#696)
https://github.com/gem5/gem5/pull/636 triggered a bug with the GCC
compiler and its interaction with the CPP stdlib regex library, outlined
here: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=105562.

This was causing the gem5 Compiler tests to fail for GCC-12:
https://github.com/gem5/gem5/actions/runs/7219055796

This fix turns off the 'maybe-unitialized' warning when we include the
regex headers in "src/kern/linux/helpers.cc".
2023-12-21 18:45:47 -08:00
Bobby R. Bruce
d6b798431f mem-ruby,configs: Enable Ruby with NULL build (#704)
After removing `get_runtime_isa`, the `send_evicts` function in the ruby
configs assumes that there is an ISA built. This change short-circuits
that logic if the current build is the NULL (none) ISA.
2023-12-21 10:22:42 -08:00
Harshil Patel
5288dbbf90 mem: Updated bytesRead and bytesWritten stat (#705)
- The bytesRead and bytesWritten stat had duplicate names. Updated
bytesRead and bytesWritten for dram_interface and nvm_interface

Change-Id: I7658e8a0d12ef6b95819bcafa52a85424f01ac76
2023-12-21 10:21:40 -08:00
Bobby R. Bruce
25e0e96741 misc: Fix 'maybe-uninitialized' warn turn off (#706)
https://github.com/gem5/gem5/pull/696 was implemented incorrectly and
and causes error when running with GCC 12.1. This patch fixes the error.
2023-12-21 10:21:20 -08:00
Jason Lowe-Power
bab8af44fb Revert "tests: Fix garnet and memcheck tests to use X86"
This reverts commit b22ca02a65.
2023-12-20 15:32:57 -08:00
Jason Lowe-Power
7adaaa6f2a mem-ruby,configs: Enable Ruby with NULL build
After removing `get_runtime_isa`, the `send_evicts` function in the ruby
configs assumes that there is an ISA built. This change short-circuits
that logic if the current build is the NULL (none) ISA.

Change-Id: I75fefe3d70649b636b983c4d2145c63a9e1342f7
Signed-off-by: Jason Lowe-Power <jason@lowepower.com>
2023-12-20 15:26:03 -08:00
Bobby R. Bruce
82b5c332b7 tests: Fix Daily memory tests (#695)
Fixes a series of issues in the Daily memory tests causing test failure.
Discussed in #697.
2023-12-20 13:11:25 -08:00
Bobby R. Bruce
2f58f1c87b misc: Turn off 'maybe-uninitialized' warn for regex include (#696)
https://github.com/gem5/gem5/pull/636 triggered a bug with the GCC
compiler and its interaction with the CPP stdlib regex library, outlined
here: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=105562.

This was causing the gem5 Compiler tests to fail for GCC-12:
https://github.com/gem5/gem5/actions/runs/7219055796

This fix turns off the 'maybe-unitialized' warning when we include the
regex headers in "src/kern/linux/helpers.cc".
2023-12-20 13:10:56 -08:00
Bobby R. Bruce
213d0b0bfe cpu: 'suppressFuncErrors' -> 'pkt->suppressFuncError()' fix
Change-Id: If4aa71e9f6332df2a3daa51b69eaad97f6603f6b
2023-12-20 09:15:15 -08:00
Giacomo Travaglini
4f5d4b9baf mem-ruby: Implement WriteUniqueZero CHI transaction (#692)
The WriteUniqueZero is an immediate write to a Snoopable address region
that does not require any data transfer (cacheline is zeroed)

Change-Id: Ia8c9b40e08a3b7d613f0b62ce0ac4b0547860871

Reviewed-by: Tiago Muck <tiago.muck@arm.com>

Signed-off-by: Giacomo Travaglini <giacomo.travaglini@arm.com>
2023-12-19 11:12:50 +00:00
Bobby R. Bruce
211d00f48f misc: Cherry pick changes from develop to the v23.1 staging branch (#699)
This PR includes:

* #689 
* #510
2023-12-18 17:29:46 -08:00
Harshil Patel
d76a01973a util: Added script to copy resources from mongodb (#510)
- This script copies all resources from a mongodb database locally The
script creates a resources.json and downloads all the resources. It also
updates the resources.json to point to these local downloads instead of
the cloud bucket.

Change-Id: I15480c4ba82bbf245425205c9c1ab7c0f3501cc3
2023-12-18 17:28:19 -08:00
Tiberiu Bucur
27d89379d2 sim: Remove trailing / from proc/meminfo special path (#689)
Note: A bug was identified in that the one of the special file paths,
namely /proc/meminfo contained an extra trailing /, implicitly making
the incorrect assumption that meminfo was a directory, when it is, in
fact, a (pseudo-)file. This was causing application in SE mode to fail
opening the meminfo pseudo-file with errno 13. This commit fixes this
issue.

Change-Id: I93fa81cab49645d70775088f1e634f067b300698
Reviewed-by: Richard Cooper <richard.cooper@arm.com>
2023-12-18 17:28:10 -08:00
Alexander Richardson
2700f392cb tests: Silence Clang 16 warnings (#679)
I was trying to build with clang 16 and ran into these -Werror warnings

Change-Id: I9207990fcfe9c1a5485945294969f21d1d812a7c
2023-12-18 14:57:11 -08:00
Bobby R. Bruce
b22ca02a65 tests: Fix garnet and memcheck tests to use X86
These tests previously used "build/NULL" but due to changes in the
"Ruby" and "garnet_synth_traffic.py" scripts, "NULL" fails as the script
exists "X86TimingSimple" with MESI_Two_Level.

This change fixes the tests by compiling and using the correct
compilation of gem5. It shouldn't affect the tests in any negative way.
As far as I'm aware it does not matter what ISA is used for these tests.

Change-Id: I8ae84b49f65968e97bef4904268de5a455f06f5c
2023-12-18 14:39:28 -08:00
Bobby R. Bruce
5d09ff4525 configs: Add hasattr guard to ensure DerivO3CPU compiled
configs/ruby/Ruby.py fails when `DerivO3CPU` is not compiled into the
gem5 binary. The `isinstance` check fails. This fix addds a guard.

Change-Id: I1e5503ab18ec94683056c6eb28cebeda6632ae8e
2023-12-18 14:37:51 -08:00
Harshil Patel
b42d9fabf7 util: Added script to copy resources from mongodb (#510)
- This script copies all resources from a mongodb database locally The
script creates a resources.json and downloads all the resources. It also
updates the resources.json to point to these local downloads instead of
the cloud bucket.

Change-Id: I15480c4ba82bbf245425205c9c1ab7c0f3501cc3
2023-12-18 12:41:52 -08:00
Giacomo Travaglini
ce6fd7f084 configs: Fix SMT cpu type checking (#684)
The args.cpu_type is not a type but a string so the isinstance checking
will always fail and an assertion will always be thrown

Change-Id: I6a88d1a514bb323c517949632f4e76be40e87e8c

Signed-off-by: Giacomo Travaglini <giacomo.travaglini@arm.com>
2023-12-17 22:08:49 -08:00
Tiberiu Bucur
9b0bf33f79 sim: Remove trailing / from proc/meminfo special path (#689)
Note: A bug was identified in that the one of the special file paths,
namely /proc/meminfo contained an extra trailing /, implicitly making
the incorrect assumption that meminfo was a directory, when it is, in
fact, a (pseudo-)file. This was causing application in SE mode to fail
opening the meminfo pseudo-file with errno 13. This commit fixes this
issue.

Change-Id: I93fa81cab49645d70775088f1e634f067b300698
Reviewed-by: Richard Cooper <richard.cooper@arm.com>
2023-12-17 22:07:39 -08:00
Giacomo Travaglini
a008cd2611 mem-ruby: Implement a dummy StashOnceShared/Unique (#688)
Stash requests will simply be discarded by the Home Node This will
return a CompI response to the RNF

Change-Id: I9c2ce5d4d42f380d1a554933d381cf8a8590ba22

Reviewed-by: Tiago Muck <tiago.muck@arm.com>

Signed-off-by: Giacomo Travaglini <giacomo.travaglini@arm.com>
2023-12-16 14:43:45 -08:00
Bobby R. Bruce
9064249fab misc: Cherry-pick PR #666 from develop to release-staging-v23-1 (#683)
This was supposed to be part of the #682 but got missed. Adding now as a
separate PR.
2023-12-14 01:51:40 -08:00
Bobby R. Bruce
29b77260f3 arch-x86: Fix two_byte_opcodes.isa 0x6 -> 0x0 (#666)
This bug was introduced by https://github.com/gem5/gem5/pull/593 and
caused Issue https://github.com/gem5/gem5/issues/664.

Change-Id: Ia55de364ee8260e1fe315e37e1cffbc71ab229fb
2023-12-14 00:41:09 -08:00
Bobby R. Bruce
a84cfd2f0d misc: Cherry-pick from develop to release-staging-v23-1 [Nov 13th] (#682)
This PR includes all the commits from the following PRs which appear on
the `develop` branch but are required in the v23.1 release and are
therefore being cherry-picked to the `release-staging-v23-1` branch.

* https://github.com/gem5/gem5/pull/645
* https://github.com/gem5/gem5/pull/671
* https://github.com/gem5/gem5/pull/675
* https://github.com/gem5/gem5/pull/677
* https://github.com/gem5/gem5/pull/674
2023-12-14 00:10:59 -08:00
Roger Chang
654e7c6019 arch: Fix inst flag of RISC-V vector store macro instructions
Correct the instruction flags of RISC-V vector store instructions, such
as `vse64_v`, `vse32_v`. The `vse64_v`  in `decoder.isa` is
`Mem_vc.as<uint64_t>()[i] = Vs3_ud[i];` and it will generate the code
`Mem.as<uint64_t>()[i] = Vs3[i];`. The current regex of assignRE only
mark the operand `Mem` as `dest` only if meet the formats like `Mem = Rd`
or `Mem[i] = Rd` because the code ` = Rd` or `[i] = Rd` match the
`assignRE` respectively. For the expression `Mem.as<uint64_t>()[i]`,
the operand `Mem` will falsely mark the operand as `src` because the
code `.as<uint64_t>()[i]` is not match the  `assignRE`.

The PR will ensure the operand `Mem` is dest for the format like
`Mem.as<xxx>()[i] = yyy`.

Change-Id: I9c57986a64f1efb81eb9c7ade90712b118e0788d
2023-12-14 00:05:26 -08:00
Roger Chang
a9f8db7044 arch-riscv: Fix the vector store indexed instructions declaration
Change-Id: I6f8701ef0819c22eda8cb20d09c40101f2d001a0
2023-12-14 00:05:17 -08:00
Harshil Patel
9aab380775 arch-riscv: fix riscv matched board for se mode (#677) 2023-12-14 00:05:02 -08:00
Bobby R. Bruce
d8cc530597 stdlib: Add get_local_path() call to Looppoint resources
Due to a change introduced in https://github.com/gem5/gem5/pull/625, a
gem5 resource will not download any external files until
`get_local_path()` is called. In the construction of the Looppoint
Resources this function was not called, the `local_path` variable was
called directly. As such, an error occured.

The downside of this fix is the Looppoint resources external files are
downloaded when `obtain_resource` is called, thus the bandwidth savings
introduced with https://github.com/gem5/gem5/pull/625 will not occur for
Looppoint resources. However, https://github.com/gem5/gem5/issues/644
proposes a fix which would supercede the
https://github.com/gem5/gem5/pull/625 solution.

Change-Id: I52181382a03e492ec1cb58b01e71bc4820af9ccc
2023-12-14 00:04:10 -08:00