[gem5-dev] Re: The Nightly Build system is now Live (Compiler tests too!)

2020-07-28 Thread Bobby Bruce via gem5-dev
It's running on a Google Cloud VM. We're currently getting a feel for what
kind of processing power we need, especially as we start to expand and
automate more testing over the next few months. So, right now, this gives
us flexibility. There are plenty of ways to expand from here: a beefier VM,
dedicated notes to spin jobs off to, etc.

FYI (bit of an @all): Seems like Jenkins doesn't like pestering people with
emails if a built was successful, so no email last night. I'm looking
forward to seeing our first failure be posted here (well, kinda...), but if
you want to see our tests passing, just visit https://jenkins.gem5.org :).

Kind regards,
Bobby
--
Dr. Bobby R. Bruce
Room 2235,
Kemper Hall, UC Davis
Davis,
CA, 95616

web: https://www.bobbybruce.net


On Mon, Jul 27, 2020 at 11:48 PM Ciro Santilli 
wrote:

> Fantastic!!!
>
> Which infrastructure does it run on? Google Cloud or something else?
> --
> *From:* Bobby Bruce via gem5-dev 
> *Sent:* Monday, July 27, 2020 7:54 PM
> *To:* gem5 Developer List 
> *Cc:* Bobby Bruce 
> *Subject:* [gem5-dev] The Nightly Build system is now Live (Compiler
> tests too!)
>
> Dear all,
>
> After some tinkering, we now have a nightly build system deployed, run
> from our Jenkins: https://jenkins.gem5.org. If I've set up the
> permissions correctly, everyone should be able to see the status of all our
> builds from there. Please note, at the time of writing, we're still
> experimenting with other testing/building setups, so there may be builds
> there that I haven't explained in this email. These can be ignored.
>
> Right now, the Nightly Builds compile the NULL, ARM, MIPS, POWER, RISCV,
> SPARC, and X86 ".opt" variants of gem5, run the unit tests (those executed
> via `scons build/null/unittests.opt`), and the "long" testlib regression
> tests (those executed via `scons ./main.py run --length long` from the
> `tests` directory) on the gem5 develop branch. In order to test that our
> email provider is functioning correctly, I've set this up to send an email
> to the gem5-dev mailing list on success or failure, though once I've
> confirmed the email notifications are working correctly I'll switch this to
> send on failure only.
>
> The nightly builds will execute every day at 11PM PST (6AM UTC). They take
> around 6 to 7 hours to complete, therefore normally finishing around 6 to 7
> AM PST (1PM to 2PM UTC). The email sent on the failure will list the
> commits included since the last run (in addition to the stdout/stderr logs,
> and a link to an archive of the `test/.testing-results` directory) which
> should help us narrow down any cause-of-failure.
>
> In addition to the Nightly Builds, there are also Compile Tests, which
> I've setup to run every Wednesday. These take roughly 24 hours to complete
> in our current setups, so expect results on Thursdays. The Compiler Tests
> simply run the `./util/compiler-tests.sh` script on the develop branch. In
> short, these run all variants of gem5, ".opt" and '.fast", across all major
> versions of our supported compilers (not a complete cross product, but
> decent coverage -- please see the script if you want to know exactly what's
> run).
>
> That's pretty much it for now. We've got plans to expand what's tested in
> the near future: running more tests, more frequently, as well as improve
> testing for gem5 in general. I hope this email has given a decent overview
> of what's going on, but please don't hesitate to get in contact with me if
> you have any questions.
>
> I'd also like to take this opportunity to thank Mike Upton for helping us
> set up the Jenkins server and deal with all the teething problems. His
> assistance is much appreciated.
>
> Kind regards,
> Bobby
> --
> Dr. Bobby R. Bruce
> Room 2235,
> Kemper Hall, UC Davis
> Davis,
> CA, 95616
>
> web: https://www.bobbybruce.net
> IMPORTANT NOTICE: The contents of this email and any attachments are
> confidential and may also be privileged. If you are not the intended
> recipient, please notify the sender immediately and do not disclose the
> contents to any other person, use it for any purpose, or store or copy the
> information in any medium. Thank you.
>
___
gem5-dev mailing list -- gem5-dev@gem5.org
To unsubscribe send an email to gem5-dev-le...@gem5.org
%(web_page_url)slistinfo%(cgiext)s/%(_internal_name)s

[gem5-dev] Change in gem5/gem5[develop]: base,scons: `-wno-deprecated-copy` added for hdf5.cc with GCC

2020-07-28 Thread Bobby R. Bruce (Gerrit) via gem5-dev
Bobby R. Bruce has submitted this change. (  
https://gem5-review.googlesource.com/c/public/gem5/+/31754 )


Change subject: base,scons: `-wno-deprecated-copy` added for hdf5.cc with  
GCC

..

base,scons: `-wno-deprecated-copy` added for hdf5.cc with GCC

As highlighted by Ciro here:
https://gem5-review.googlesource.com/c/public/gem5/+/31216, and
here: https://gem5.atlassian.net/browse/GEM5-365,  It appears that GCC
versions >= 9 requires `-wno-deprecated-copy` which was removed in
commit: https://gem5-review.googlesource.com/c/public/gem5/+/31216.
`-wno-deprecated-copy` appears to work for all versions of GCC. Clang
does not require `-wno-deprecated-copy` nor `-wno-deprecated` for
sucessfull compilation. Therefore branching has been introduced to the
SConscript to address this and simplify the solution.

Change-Id: I233b32aa945d479dd429bb5591272608ba342d8d
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/31754
Reviewed-by: Bobby R. Bruce 
Reviewed-by: Gabe Black 
Maintainer: Bobby R. Bruce 
Tested-by: kokoro 
---
M src/base/SConscript
1 file changed, 4 insertions(+), 1 deletion(-)

Approvals:
  Gabe Black: Looks good to me, approved
  Bobby R. Bruce: Looks good to me, approved; Looks good to me, approved
  kokoro: Regressions pass



diff --git a/src/base/SConscript b/src/base/SConscript
index 657528c..b7a0c1b 100644
--- a/src/base/SConscript
+++ b/src/base/SConscript
@@ -91,7 +91,10 @@
 Source('stats/group.cc')
 Source('stats/text.cc')
 if env['USE_HDF5']:
-Source('stats/hdf5.cc', append={'CXXFLAGS': '-Wno-deprecated'})
+if main['GCC']:
+Source('stats/hdf5.cc',  
append={'CXXFLAGS': '-Wno-deprecated-copy'})

+else:
+Source('stats/hdf5.cc')

 GTest('addr_range.test', 'addr_range.test.cc')
 GTest('addr_range_map.test', 'addr_range_map.test.cc')

--
To view, visit https://gem5-review.googlesource.com/c/public/gem5/+/31754
To unsubscribe, or for help writing mail filters, visit  
https://gem5-review.googlesource.com/settings


Gerrit-Project: public/gem5
Gerrit-Branch: develop
Gerrit-Change-Id: I233b32aa945d479dd429bb5591272608ba342d8d
Gerrit-Change-Number: 31754
Gerrit-PatchSet: 6
Gerrit-Owner: Bobby R. Bruce 
Gerrit-Reviewer: Bobby R. Bruce 
Gerrit-Reviewer: Ciro Santilli 
Gerrit-Reviewer: Gabe Black 
Gerrit-Reviewer: Jason Lowe-Power 
Gerrit-Reviewer: kokoro 
Gerrit-MessageType: merged
___
gem5-dev mailing list -- gem5-dev@gem5.org
To unsubscribe send an email to gem5-dev-le...@gem5.org
%(web_page_url)slistinfo%(cgiext)s/%(_internal_name)s

[gem5-dev] Change in gem5/gem5[develop]: configs, mem: Support running VIPER with GCN3

2020-07-28 Thread Kyle Roarty (Gerrit) via gem5-dev
Kyle Roarty has submitted this change. (  
https://gem5-review.googlesource.com/c/public/gem5/+/30274 )


Change subject: configs, mem: Support running VIPER with GCN3
..

configs, mem: Support running VIPER with GCN3

This changeset adds the necessary changes for running
GCN3 ISA with VIPER in apu_se.py.

Changes to the VIPER protocol configs are made to add support
for DMA and scalar caches.

hsaTopology is added to help the pseudo FS create the files
needed by ROCm to understand the device on which the SW is
being run.

Change-Id: I0f47a6a36bb241a26972c0faafafcf332a7d7d1f
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/30274
Reviewed-by: Matt Sinclair 
Maintainer: Bradford Beckmann 
Tested-by: kokoro 
---
M configs/example/apu_se.py
A configs/example/hsaTopology.py
M configs/ruby/GPU_VIPER.py
M src/mem/request.hh
M src/mem/ruby/protocol/GPU_VIPER-SQC.sm
5 files changed, 311 insertions(+), 73 deletions(-)

Approvals:
  Matt Sinclair: Looks good to me, approved
  Bradford Beckmann: Looks good to me, approved
  kokoro: Regressions pass



diff --git a/configs/example/apu_se.py b/configs/example/apu_se.py
index 0ff80d8..4e9c75f 100644
--- a/configs/example/apu_se.py
+++ b/configs/example/apu_se.py
@@ -32,7 +32,7 @@
 from __future__ import print_function
 from __future__ import absolute_import

-import optparse, os, re
+import optparse, os, re, getpass
 import math
 import glob
 import inspect
@@ -49,6 +49,9 @@
 from common import Simulation
 from common import GPUTLBOptions, GPUTLBConfig

+import hsaTopology
+from common import FileSystemConfig
+
 ## Script Options 
 def setOption(parser, opt_str, value = 1):
 # check to make sure the option actually exists
@@ -77,9 +80,7 @@
 parser.add_option("--cpu-only-mode", action="store_true", default=False,
   help="APU mode. Used to take care of problems in "\
"Ruby.py while running APU protocols")
-parser.add_option("-k", "--kernel-files",
-  help="file(s) containing GPU kernel code (colon  
separated)")

-parser.add_option("-u", "--num-compute-units", type="int", default=1,
+parser.add_option("-u", "--num-compute-units", type="int", default=4,
   help="number of GPU compute units"),
 parser.add_option("--num-cp", type="int", default=0,
   help="Number of GPU Command Processors (CP)")
@@ -89,21 +90,34 @@
 # it an option/knob
 parser.add_option("--cu-per-sqc", type="int", default=4, help="number of  
CUs" \

   "sharing an SQC (icache, and thus icache TLB)")
+parser.add_option('--cu-per-scalar-cache', type='int', default=4,
+  help='Number of CUs sharing a scalar cache')
 parser.add_option("--simds-per-cu", type="int", default=4, help="SIMD  
units" \

   "per CU")
+parser.add_option('--cu-per-sa', type='int', default=4,
+  help='Number of CUs per shader array. This must be a '
+  'multiple of options.cu-per-sqc and  
options.cu-per-scalar')

+parser.add_option('--sa-per-complex', type='int', default=1,
+  help='Number of shader arrays per complex')
+parser.add_option('--num-gpu-complexes', type='int', default=1,
+  help='Number of GPU complexes')
 parser.add_option("--wf-size", type="int", default=64,
   help="Wavefront size(in workitems)")
 parser.add_option("--sp-bypass-path-length", type="int", default=4, \
-  help="Number of stages of bypass path in vector ALU for  
Single Precision ops")

+  help="Number of stages of bypass path in vector ALU for "
+  "Single Precision ops")
 parser.add_option("--dp-bypass-path-length", type="int", default=4, \
-  help="Number of stages of bypass path in vector ALU for  
Double Precision ops")

+  help="Number of stages of bypass path in vector ALU for "
+  "Double Precision ops")
 # issue period per SIMD unit: number of cycles before issuing another  
vector

 parser.add_option("--issue-period", type="int", default=4, \
   help="Number of cycles per vector instruction issue  
period")

 parser.add_option("--glbmem-wr-bus-width", type="int", default=32, \
-  help="VGPR to Coalescer (Global Memory) data bus width  
in bytes")

+  help="VGPR to Coalescer (Global Memory) data bus width "
+  "in bytes")
 parser.add_option("--glbmem-rd-bus-width", type="int", default=32, \
-  help="Coalescer to VGPR (Global Memory) data bus width  
in bytes")
+  help="Coalescer to VGPR (Global Memory) data bus width  
in "

+  "bytes")
 # Currently we only support 1 local memory pipe
 parser.add_option("--shr-mem-pipes-per-cu", type="int", default=1, \
   help="Number of Shared 

[gem5-dev] Change in gem5/gem5[develop]: dev-arm: relax GenericTimer check for CPU count

2020-07-28 Thread Ciro Santilli (Gerrit) via gem5-dev
Ciro Santilli has uploaded this change for review. (  
https://gem5-review.googlesource.com/c/public/gem5/+/31894 )



Change subject: dev-arm: relax GenericTimer check for CPU count
..

dev-arm: relax GenericTimer check for CPU count

At Iff9ad68d64e67b3df51682b7e4e272e5f355bcd6 a check was added to prevent
segfaults when unserializing the GenericTimer in case the new number of
thread contexts was smaller than the old one pre-checkpoint.

However, GenericTimer objects are only created dynamically as needed after
timer miscreg accesses. Therefore, if we take the checkpoint before
touching those registers, e.g. from a simple baremetal example, then the
checkpoint saves zero timers, and upon restore the assert would fail
because we have one thread context and not zero:


fatal: The simulated system has been initialized with 1 CPUs, but the

Generic Timer checkpoint expects 0 CPUs. Consider restoring the checkpoint
specifying 0 CPUs.

This commit solves that by ensuring only that the new thread context count
larger than, but not necessarily equal to the number of cores.

Change-Id: I8bcb05a6faecd4b4845f7fd4d71df95041bf6c99
JIRA: https://gem5.atlassian.net/browse/GEM5-703
---
M src/dev/arm/generic_timer.cc
1 file changed, 1 insertion(+), 1 deletion(-)



diff --git a/src/dev/arm/generic_timer.cc b/src/dev/arm/generic_timer.cc
index bf6cd4e..0a44adf 100644
--- a/src/dev/arm/generic_timer.cc
+++ b/src/dev/arm/generic_timer.cc
@@ -426,7 +426,7 @@
 cpu_count = OLD_CPU_MAX;
 }

-if (cpu_count != system.threads.size()) {
+if (cpu_count > system.threads.size()) {
 fatal("The simulated system has been initialized with %d CPUs, "
   "but the Generic Timer checkpoint expects %d CPUs. Consider "
   "restoring the checkpoint specifying %d CPUs.",

--
To view, visit https://gem5-review.googlesource.com/c/public/gem5/+/31894
To unsubscribe, or for help writing mail filters, visit  
https://gem5-review.googlesource.com/settings


Gerrit-Project: public/gem5
Gerrit-Branch: develop
Gerrit-Change-Id: I8bcb05a6faecd4b4845f7fd4d71df95041bf6c99
Gerrit-Change-Number: 31894
Gerrit-PatchSet: 1
Gerrit-Owner: Ciro Santilli 
Gerrit-MessageType: newchange
___
gem5-dev mailing list -- gem5-dev@gem5.org
To unsubscribe send an email to gem5-dev-le...@gem5.org
%(web_page_url)slistinfo%(cgiext)s/%(_internal_name)s

[gem5-dev] Change in gem5/gem5[develop]: sim: add UNSERIALIZE_ARRAY_INCOMPLETE

2020-07-28 Thread Ciro Santilli (Gerrit) via gem5-dev
Ciro Santilli has uploaded this change for review. (  
https://gem5-review.googlesource.com/c/public/gem5/+/31895 )



Change subject: sim: add UNSERIALIZE_ARRAY_INCOMPLETE
..

sim: add UNSERIALIZE_ARRAY_INCOMPLETE

This new serialization method allows the number of unserialized array
elements to be smaller than the new number of elements.

This allows new entries to be added to the end of arrays without breaking
checkpoints.

Change-Id: Ia9588dde24d1eb988d34789fca2883a1c9e7b39d
---
M src/sim/serialize.hh
1 file changed, 22 insertions(+), 5 deletions(-)



diff --git a/src/sim/serialize.hh b/src/sim/serialize.hh
index 1f31dd2..b8c0c8c 100644
--- a/src/sim/serialize.hh
+++ b/src/sim/serialize.hh
@@ -586,7 +586,7 @@
 template 
 void
 arrayParamIn(CheckpointIn , const std::string ,
- T *param, unsigned size)
+ T *param, unsigned size, bool exact_size = true)
 {
 const std::string (Serializable::currentSection());
 std::string str;
@@ -604,9 +604,15 @@
 // Need this if we were doing a vector
 // value.resize(tokens.size());

-fatal_if(tokens.size() != size,
- "Array size mismatch on %s:%s (Got %u, expected %u)'\n",
- section, name, tokens.size(), size);
+if (exact_size) {
+fatal_if(tokens.size() != size,
+ "Array size mismatch on %s:%s (Got %u, expected %u)'\n",
+ section, name, tokens.size(), size);
+} else {
+fatal_if(tokens.size() > size,
+ "Array size smaller on %s:%s (Got %u, expected %u)'\n",
+ section, name, tokens.size(), size);
+}

 for (std::vector::size_type i = 0; i < tokens.size();  
i++) {

 // need to parse into local variable to handle vector,
@@ -717,8 +723,8 @@
 std::string str;
 if (!cp.find(section, name, str)) {
 fatal("Can't unserialize '%s:%s'\n", section, name);
-}
 param.clear();
+}

 std::vector tokens;
 tokenize(tokens, str, ' ');
@@ -814,6 +820,17 @@
 arrayParamIn(cp, #member, member, size)

 /**
+ * \def UNSERIALIZE_ARRAY_INCOMPLETE(member, size)
+ *
+ * Unserialize an array, and allow the serialization data to be
+ * smaller than the container size.
+ *
+ * @ingroup api_serialize
+ */
+#define UNSERIALIZE_ARRAY_INCOMPLETE(member, size) \
+arrayParamIn(cp, #member, member, size, false)
+
+/**
  * \def SERIALIZE_CONTAINER(member)
  *
  * @ingroup api_serialize

--
To view, visit https://gem5-review.googlesource.com/c/public/gem5/+/31895
To unsubscribe, or for help writing mail filters, visit  
https://gem5-review.googlesource.com/settings


Gerrit-Project: public/gem5
Gerrit-Branch: develop
Gerrit-Change-Id: Ia9588dde24d1eb988d34789fca2883a1c9e7b39d
Gerrit-Change-Number: 31895
Gerrit-PatchSet: 1
Gerrit-Owner: Ciro Santilli 
Gerrit-MessageType: newchange
___
gem5-dev mailing list -- gem5-dev@gem5.org
To unsubscribe send an email to gem5-dev-le...@gem5.org
%(web_page_url)slistinfo%(cgiext)s/%(_internal_name)s

[gem5-dev] Change in gem5/gem5[develop]: sim: Add checkpoint parameters for VMA list

2020-07-28 Thread Ian Jiang (Gerrit) via gem5-dev
Ian Jiang has uploaded this change for review. (  
https://gem5-review.googlesource.com/c/public/gem5/+/31875 )



Change subject: sim: Add checkpoint parameters for VMA list
..

sim: Add checkpoint parameters for VMA list

Add checkpoint parameters (together with corresponding serialization
and unserialization) for VMA list of class MemState into a separate
section named 'vmalist'.

Without these VMA list parameters, a page table fault will occur when
running with --restore-simpoint-checkpoint, because of an empty VMA
list. For example:

  $ ./build/RISCV/gem5.debug --debug-flags=Exec configs/example/se.py \
  -c tests/test-progs/hello/bin/riscv/linux/hello \
  --cpu-type=NonCachingSimpleCPU --restore-simpoint-checkpoint \
  --checkpoint-dir m5out/ -r 2
  ...
  2404000: system.switch_cpus: T0 : @_int_malloc+3392: sd a5, 8(a0) \
  : MemWrite :  D=0x0001ed21 A=0x862e8
  panic: Page table fault when accessing virtual address 0x862e8
  ...

Example checkpoint output:

  [system.cpu.workload.vmalist]
  size=3

  [system.cpu.workload.vmalist.Vma0]
  vmaName=stack
  addrRangeStart=...
  addrRangeEnd=...

  [system.cpu.workload.vmalist.Vma1]
  vmaName=heap
  addrRangeStart=...
  addrRangeEnd=...

  [system.cpu.workload.vmalist.Vma2]
  ...

Change-Id: Ib2fa7ad2c34fe667ce95bc4b10a1affcf60d9c1f
Signed-off-by: Ian Jiang 
---
M src/sim/mem_state.hh
1 file changed, 25 insertions(+), 0 deletions(-)



diff --git a/src/sim/mem_state.hh b/src/sim/mem_state.hh
index 1ca80da..bb4fab3 100644
--- a/src/sim/mem_state.hh
+++ b/src/sim/mem_state.hh
@@ -190,7 +190,18 @@
 paramOut(cp, "stackMin", _stackMin);
 paramOut(cp, "nextThreadStackBase", _nextThreadStackBase);
 paramOut(cp, "mmapEnd", _mmapEnd);
+
+ScopedCheckpointSection sec(cp, csprintf("vmalist"));
+paramOut(cp, "size", _vmaList.size());
+int count = 0;
+for (auto vma : _vmaList) {
+ScopedCheckpointSection sec(cp, csprintf("Vma%d", count++));
+paramOut(cp, "vmaName", vma.getName());
+paramOut(cp, "addrRangeStart", vma.start());
+paramOut(cp, "addrRangeEnd", vma.end());
+}
 }
+
 void
 unserialize(CheckpointIn ) override
 {
@@ -201,6 +212,20 @@
 paramIn(cp, "stackMin", _stackMin);
 paramIn(cp, "nextThreadStackBase", _nextThreadStackBase);
 paramIn(cp, "mmapEnd", _mmapEnd);
+
+int count;
+ScopedCheckpointSection sec(cp, csprintf("vmalist"));
+paramIn(cp, "size", count);
+for (int i = 0; i < count; ++i) {
+ScopedCheckpointSection sec(cp, csprintf("Vma%d", i));
+std::string name;
+Addr start;
+Addr end;
+paramIn(cp, "vmaName", name);
+paramIn(cp, "addrRangeStart", start);
+paramIn(cp, "addrRangeEnd", end);
+_vmaList.emplace_back(AddrRange(start, end), _pageBytes, name);
+}
 }

 /**

--
To view, visit https://gem5-review.googlesource.com/c/public/gem5/+/31875
To unsubscribe, or for help writing mail filters, visit  
https://gem5-review.googlesource.com/settings


Gerrit-Project: public/gem5
Gerrit-Branch: develop
Gerrit-Change-Id: Ib2fa7ad2c34fe667ce95bc4b10a1affcf60d9c1f
Gerrit-Change-Number: 31875
Gerrit-PatchSet: 1
Gerrit-Owner: Ian Jiang 
Gerrit-MessageType: newchange
___
gem5-dev mailing list -- gem5-dev@gem5.org
To unsubscribe send an email to gem5-dev-le...@gem5.org
%(web_page_url)slistinfo%(cgiext)s/%(_internal_name)s

[gem5-dev] Change in gem5/gem5[develop]: sim: Move checkpoint parameters for ptable into seperate section

2020-07-28 Thread Ian Jiang (Gerrit) via gem5-dev
Ian Jiang has uploaded this change for review. (  
https://gem5-review.googlesource.com/c/public/gem5/+/31874 )



Change subject: sim: Move checkpoint parameters for ptable into seperate  
section

..

sim: Move checkpoint parameters for ptable into seperate section

In checkpoint output files, the parameters for page table including
size and entries are organized not very clearly. For example:

  [system.cpu.workload]
  ...
  ptable.size=...

  [system.cpu.workload.Entry0]
  vaddr=...
  paddr=...
  flags=...

  [system.cpu.workload.Entry1]
  ...

This commit moves these parameters into a separate section named
'ptable'. For example:

  [system.cpu.workload.ptable]
  size=...

  [system.cpu.workload.ptable.Entry0]
  vaddr=...
  paddr=...
  flags=...

  [system.cpu.workload.ptable.Entry1]
  ...

Change-Id: Iaa4129b3f4f090e8c3651bde90524abba0999c7f
Signed-off-by: Ian Jiang 
---
M src/mem/page_table.cc
1 file changed, 4 insertions(+), 2 deletions(-)



diff --git a/src/mem/page_table.cc b/src/mem/page_table.cc
index 400500b..20faf9b 100644
--- a/src/mem/page_table.cc
+++ b/src/mem/page_table.cc
@@ -168,7 +168,8 @@
 void
 EmulationPageTable::serialize(CheckpointOut ) const
 {
-paramOut(cp, "ptable.size", pTable.size());
+ScopedCheckpointSection sec(cp, csprintf("ptable"));
+paramOut(cp, "size", pTable.size());

 PTable::size_type count = 0;
 for (auto  : pTable) {
@@ -185,7 +186,8 @@
 EmulationPageTable::unserialize(CheckpointIn )
 {
 int count;
-paramIn(cp, "ptable.size", count);
+ScopedCheckpointSection sec(cp, csprintf("ptable"));
+paramIn(cp, "size", count);

 for (int i = 0; i < count; ++i) {
 ScopedCheckpointSection sec(cp, csprintf("Entry%d", i));

--
To view, visit https://gem5-review.googlesource.com/c/public/gem5/+/31874
To unsubscribe, or for help writing mail filters, visit  
https://gem5-review.googlesource.com/settings


Gerrit-Project: public/gem5
Gerrit-Branch: develop
Gerrit-Change-Id: Iaa4129b3f4f090e8c3651bde90524abba0999c7f
Gerrit-Change-Number: 31874
Gerrit-PatchSet: 1
Gerrit-Owner: Ian Jiang 
Gerrit-MessageType: newchange
___
gem5-dev mailing list -- gem5-dev@gem5.org
To unsubscribe send an email to gem5-dev-le...@gem5.org
%(web_page_url)slistinfo%(cgiext)s/%(_internal_name)s

[gem5-dev] Re: The Nightly Build system is now Live (Compiler tests too!)

2020-07-28 Thread Ciro Santilli via gem5-dev
Fantastic!!!

Which infrastructure does it run on? Google Cloud or something else?

From: Bobby Bruce via gem5-dev 
Sent: Monday, July 27, 2020 7:54 PM
To: gem5 Developer List 
Cc: Bobby Bruce 
Subject: [gem5-dev] The Nightly Build system is now Live (Compiler tests too!)

Dear all,

After some tinkering, we now have a nightly build system deployed, run from our 
Jenkins: https://jenkins.gem5.org. If I've set up the permissions correctly, 
everyone should be able to see the status of all our builds from there. Please 
note, at the time of writing, we're still experimenting with other 
testing/building setups, so there may be builds there that I haven't explained 
in this email. These can be ignored.

Right now, the Nightly Builds compile the NULL, ARM, MIPS, POWER, RISCV, SPARC, 
and X86 ".opt" variants of gem5, run the unit tests (those executed via `scons 
build/null/unittests.opt`), and the "long" testlib regression tests (those 
executed via `scons ./main.py run --length long` from the `tests` directory) on 
the gem5 develop branch. In order to test that our email provider is 
functioning correctly, I've set this up to send an email to the gem5-dev 
mailing list on success or failure, though once I've confirmed the email 
notifications are working correctly I'll switch this to send on failure only.

The nightly builds will execute every day at 11PM PST (6AM UTC). They take 
around 6 to 7 hours to complete, therefore normally finishing around 6 to 7 AM 
PST (1PM to 2PM UTC). The email sent on the failure will list the commits 
included since the last run (in addition to the stdout/stderr logs, and a link 
to an archive of the `test/.testing-results` directory) which should help us 
narrow down any cause-of-failure.

In addition to the Nightly Builds, there are also Compile Tests, which I've 
setup to run every Wednesday. These take roughly 24 hours to complete in our 
current setups, so expect results on Thursdays. The Compiler Tests simply run 
the `./util/compiler-tests.sh` script on the develop branch. In short, these 
run all variants of gem5, ".opt" and '.fast", across all major versions of our 
supported compilers (not a complete cross product, but decent coverage -- 
please see the script if you want to know exactly what's run).

That's pretty much it for now. We've got plans to expand what's tested in the 
near future: running more tests, more frequently, as well as improve testing 
for gem5 in general. I hope this email has given a decent overview of what's 
going on, but please don't hesitate to get in contact with me if you have any 
questions.

I'd also like to take this opportunity to thank Mike Upton for helping us set 
up the Jenkins server and deal with all the teething problems. His assistance 
is much appreciated.

Kind regards,
Bobby
--
Dr. Bobby R. Bruce
Room 2235,
Kemper Hall, UC Davis
Davis,
CA, 95616

web: https://www.bobbybruce.net
___
gem5-dev mailing list -- gem5-dev@gem5.org
To unsubscribe send an email to gem5-dev-le...@gem5.org
%(web_page_url)slistinfo%(cgiext)s/%(_internal_name)s