[gem5-dev] Build failed in Jenkins: compiler-checks #104

2021-06-23 Thread jenkins-no-reply--- via gem5-dev
See 


Changes:

[yazakram] arch-riscv: update all pmp rules on pmp addr update

[Bobby R. Bruce] scons,python: revert Always generate default create() methods.

[Bobby R. Bruce] python,scons: Only generate pybind if using python


--
Started by timer
Running as SYSTEM
Building in workspace 
Selected Git installation does not exist. Using Default
The recommended git tool is: NONE
No credentials specified
 > git rev-parse --resolve-git-dir 
 >  # timeout=10
Fetching changes from the remote Git repository
 > git config remote.origin.url https://gem5.googlesource.com/public/gem5 # 
 > timeout=10
Fetching upstream changes from https://gem5.googlesource.com/public/gem5
 > git --version # timeout=10
 > git --version # 'git version 2.25.1'
 > git fetch --tags --force --progress -- 
 > https://gem5.googlesource.com/public/gem5 
 > +refs/heads/*:refs/remotes/origin/* # timeout=10
 > git rev-parse refs/remotes/origin/develop^{commit} # timeout=10
Checking out Revision c05e0868148b25701ab4432881e194b5beb300e5 
(refs/remotes/origin/develop)
 > git config core.sparsecheckout # timeout=10
 > git checkout -f c05e0868148b25701ab4432881e194b5beb300e5 # timeout=10
Commit message: "python,scons: Only generate pybind if using python"
 > git rev-list --no-walk e7a941ee081f7dac8f96cd38c50519cf6581d946 # timeout=10
[compiler-checks] $ /bin/sh -xe /tmp/jenkins6833390878138215740.sh
+ ./tests/compiler-tests.sh -j 12
Starting build tests with 'gcc-version-10'...
'gcc-version-10' was found in the comprehensive tests. All ISAs will be built.
  * Building target 'X86_MOESI_AMD_Base.opt' with 'gcc-version-10'...
Done.
  * Building target 'X86_MOESI_AMD_Base.fast' with 'gcc-version-10'...
Done.
  * Building target 'GCN3_X86.opt' with 'gcc-version-10'...
Done.
  * Building target 'GCN3_X86.fast' with 'gcc-version-10'...
Done.
  * Building target 'NULL_MOESI_CMP_directory.opt' with 'gcc-version-10'...
Done.
  * Building target 'NULL_MOESI_CMP_directory.fast' with 'gcc-version-10'...
Done.
  * Building target 'MIPS.opt' with 'gcc-version-10'...
Done.
  * Building target 'MIPS.fast' with 'gcc-version-10'...
Done.
  * Building target 'SPARC.opt' with 'gcc-version-10'...
Done.
  * Building target 'SPARC.fast' with 'gcc-version-10'...
Done.
  * Building target 'NULL_MOESI_hammer.opt' with 'gcc-version-10'...
Done.
  * Building target 'NULL_MOESI_hammer.fast' with 'gcc-version-10'...
Done.
  * Building target 'X86.opt' with 'gcc-version-10'...
Done.
  * Building target 'X86.fast' with 'gcc-version-10'...
Done.
  * Building target 'ARM_MESI_Three_Level.opt' with 'gcc-version-10'...
Done.
  * Building target 'ARM_MESI_Three_Level.fast' with 'gcc-version-10'...
Done.
  * Building target 'Garnet_standalone.opt' with 'gcc-version-10'...
Done.
  * Building target 'Garnet_standalone.fast' with 'gcc-version-10'...
Done.
  * Building target 'NULL_MESI_Two_Level.opt' with 'gcc-version-10'...
Done.
  * Building target 'NULL_MESI_Two_Level.fast' with 'gcc-version-10'...
Done.
  * Building target 'NULL_MOESI_CMP_token.opt' with 'gcc-version-10'...
Done.
  * Building target 'NULL_MOESI_CMP_token.fast' with 'gcc-version-10'...
Done.
  * Building target 'RISCV.opt' with 'gcc-version-10'...
Done.
  * Building target 'RISCV.fast' with 'gcc-version-10'...
Done.
  * Building target 'ARM.opt' with 'gcc-version-10'...
Done.
  * Building target 'ARM.fast' with 'gcc-version-10'...
Done.
  * Building target 'POWER.opt' with 'gcc-version-10'...
Done.
  * Building target 'POWER.fast' with 'gcc-version-10'...
Done.
Starting build tests with 'gcc-version-9'...
  * Building target 'NULL_MOESI_CMP_token.opt' with 'gcc-version-9'...
Done.
  * Building target 'NULL_MOESI_CMP_token.fast' with 'gcc-version-9'...
Done.
Starting build tests with 'gcc-version-8'...
  * Building target 'ARM.opt' with 'gcc-version-8'...
Done.
  * Building target 'ARM.fast' with 'gcc-version-8'...
Done.
Starting build tests with 'gcc-version-7'...
  * Building target 'NULL_MOESI_CMP_token.opt' with 'gcc-version-7'...
Done.
  * Building target 'NULL_MOESI_CMP_token.fast' with 'gcc-version-7'...
Done.
Starting build tests with 'gcc-version-6'...
  * Building target 'ARM_MESI_Three_Level.opt' with 'gcc-version-6'...
Done.
  * Building target 'ARM_MESI_Three_Level.fast' with 'gcc-version-6'...
Done.
Starting build tests with 'gcc-version-5'...
  * Building target 'GCN3_X86.opt' with 'gcc-version-5'...
  ! Failed with exit code 2.
  * Building target 'GCN3_X86.fast' with 'gcc-version-5'...
  ! Failed with exit code 2.
Starting build tests with 'clang-version-11'...
'clang-version-11' was found in the comprehensive tests. All ISAs will be built.

[gem5-dev] Change in gem5/gem5[develop]: arch-riscv: add pma/pmp checks during page table walks

2021-06-23 Thread Ayaz Akram (Gerrit) via gem5-dev
Ayaz Akram has submitted this change. (  
https://gem5-review.googlesource.com/c/public/gem5/+/46279 )


Change subject: arch-riscv: add pma/pmp checks during page table walks
..

arch-riscv: add pma/pmp checks during page table walks

This change adds pma/pmp checks when page table entries
are accessed by hardware page table walker.

Change-Id: I161aad514bb7421e61a8c56af088c73969837704
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/46279
Reviewed-by: Jason Lowe-Power 
Maintainer: Jason Lowe-Power 
Tested-by: kokoro 
---
M src/arch/riscv/pagetable_walker.cc
M src/arch/riscv/pmp.cc
M src/arch/riscv/pmp.hh
3 files changed, 111 insertions(+), 68 deletions(-)

Approvals:
  Jason Lowe-Power: Looks good to me, approved; Looks good to me, approved
  kokoro: Regressions pass



diff --git a/src/arch/riscv/pagetable_walker.cc  
b/src/arch/riscv/pagetable_walker.cc

index 8dadd96..0a0c719 100644
--- a/src/arch/riscv/pagetable_walker.cc
+++ b/src/arch/riscv/pagetable_walker.cc
@@ -295,76 +295,101 @@

 DPRINTF(PageTableWalker, "Got level%d PTE: %#x\n", level, pte);

-// step 2: TODO check PMA and PMP
+// step 2:
+// Performing PMA/PMP checks on physical address of PTE

-// step 3:
-if (!pte.v || (!pte.r && pte.w)) {
-doEndWalk = true;
-DPRINTF(PageTableWalker, "PTE invalid, raising PF\n");
-fault = pageFault(pte.v);
-}
-else {
-// step 4:
-if (pte.r || pte.x) {
-// step 5: leaf PTE
+walker->pma->check(read->req);
+// Effective privilege mode for pmp checks for page table
+// walks is S mode according to specs
+fault = walker->pmp->pmpCheck(read->req, mode,
+RiscvISA::PrivilegeMode::PRV_S, tc, entry.vaddr);
+
+if (fault == NoFault) {
+// step 3:
+if (!pte.v || (!pte.r && pte.w)) {
 doEndWalk = true;
-fault = walker->tlb->checkPermissions(status, pmode,
-  entry.vaddr, mode, pte);
-
-// step 6
-if (fault == NoFault) {
-if (level >= 1 && pte.ppn0 != 0) {
-DPRINTF(PageTableWalker,
-"PTE has misaligned PPN, raising PF\n");
-fault = pageFault(true);
-}
-else if (level == 2 && pte.ppn1 != 0) {
-DPRINTF(PageTableWalker,
-"PTE has misaligned PPN, raising PF\n");
-fault = pageFault(true);
-}
-}
-
-if (fault == NoFault) {
-// step 7
-if (!pte.a) {
-pte.a = 1;
-doWrite = true;
-}
-if (!pte.d && mode == TLB::Write) {
-pte.d = 1;
-doWrite = true;
-}
-// TODO check if this violates a PMA or PMP
-
-// step 8
-entry.logBytes = PageShift + (level * LEVEL_BITS);
-entry.paddr = pte.ppn;
-entry.vaddr &= ~((1 << entry.logBytes) - 1);
-entry.pte = pte;
-// put it non-writable into the TLB to detect writes and  
redo

-// the page table walk in order to update the dirty flag.
-if (!pte.d && mode != TLB::Write)
-entry.pte.w = 0;
-doTLBInsert = true;
-}
+DPRINTF(PageTableWalker, "PTE invalid, raising PF\n");
+fault = pageFault(pte.v);
 }
 else {
-level--;
-if (level < 0) {
-DPRINTF(PageTableWalker, "No leaf PTE found, raising  
PF\n");

+// step 4:
+if (pte.r || pte.x) {
+// step 5: leaf PTE
 doEndWalk = true;
-fault = pageFault(true);
-}
-else {
-Addr shift = (PageShift + LEVEL_BITS * level);
-Addr idx = (entry.vaddr >> shift) & LEVEL_MASK;
-nextRead = (pte.ppn << PageShift) + (idx * sizeof(pte));
-nextState = Translate;
+fault = walker->tlb->checkPermissions(status, pmode,
+entry.vaddr, mode,  
pte);

+
+// step 6
+if (fault == NoFault) {
+if (level >= 1 && pte.ppn0 != 0) {
+DPRINTF(PageTableWalker,
+"PTE has misaligned PPN, raising PF\n");
+fault = pageFault(true);
+}
+else if (level == 2 && pte.ppn1 != 0) {
+DPRINTF(PageTableWalker,
+"PTE has misaligned PPN, raising PF\n");
+fault = pageFault(true);
+

[gem5-dev] Change in gem5/gem5[develop]: dev,dev-hsa,gpu-compute: Refactor dmaVirt calls

2021-06-23 Thread Matthew Poremba (Gerrit) via gem5-dev
Matthew Poremba has uploaded this change for review. (  
https://gem5-review.googlesource.com/c/public/gem5/+/47179 )



Change subject: dev,dev-hsa,gpu-compute: Refactor dmaVirt calls
..

dev,dev-hsa,gpu-compute: Refactor dmaVirt calls

WIP: Untested since gcn is broken.

Remove the duplicate dmaVirt calls from HSA packet processor and GPU
command processor and move them into their own class. This removes some
duplicate code and allows a DmaVirtDevice to be created which will be
useful for upcoming full system GPU commits.

The DmaVirtDevice is an abstraction of the base DmaDevice but iterates
using ChunkGenerator over virtual addresses. Classes which inherit from
DmaVirtDevice must provide a translation function to translate from
virtual address to physical address. Once translated, the physical
address is passed to DmaDevice to do the work.

Change-Id: Idd59ccb4d9ba21c0b1150ee328ededf5a88d824e
---
M src/dev/Device.py
M src/dev/SConscript
A src/dev/dma_virt_device.cc
A src/dev/dma_virt_device.hh
M src/dev/hsa/hsa_packet_processor.cc
M src/dev/hsa/hsa_packet_processor.hh
M src/gpu-compute/gpu_command_processor.cc
M src/gpu-compute/gpu_command_processor.hh
8 files changed, 264 insertions(+), 223 deletions(-)



diff --git a/src/dev/Device.py b/src/dev/Device.py
index 46e992c..19e1927 100644
--- a/src/dev/Device.py
+++ b/src/dev/Device.py
@@ -102,6 +102,11 @@
 node.append(FdtPropertyWords("iommus",
 [ state.phandle(self._iommu), self.sid ]))

+class DmaVirtDevice(DmaDevice):
+type = 'DmaVirtDevice'
+cxx_header = "dev/dma_virt_device.hh"
+abstract = True
+
 class IsaFake(BasicPioDevice):
 type = 'IsaFake'
 cxx_header = "dev/isa_fake.hh"
diff --git a/src/dev/SConscript b/src/dev/SConscript
index 02f9733..e86e48b 100644
--- a/src/dev/SConscript
+++ b/src/dev/SConscript
@@ -32,6 +32,7 @@
 Source('io_device.cc')
 Source('isa_fake.cc')
 Source('dma_device.cc')
+Source('dma_virt_device.cc')

 SimObject('IntPin.py')
 Source('intpin.cc')
diff --git a/src/dev/dma_virt_device.cc b/src/dev/dma_virt_device.cc
new file mode 100644
index 000..5b5e908
--- /dev/null
+++ b/src/dev/dma_virt_device.cc
@@ -0,0 +1,80 @@
+/*
+ * Copyright (c) 2021 Advanced Micro Devices, Inc.
+ * All rights reserved.
+ *
+ * For use for simulation and test purposes only
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are  
met:

+ *
+ * 1. Redistributions of source code must retain the above copyright  
notice,

+ * this list of conditions and the following disclaimer.
+ *
+ * 2. Redistributions in binary form must reproduce the above copyright  
notice,
+ * this list of conditions and the following disclaimer in the  
documentation

+ * and/or other materials provided with the distribution.
+ *
+ * 3. Neither the name of the copyright holder nor the names of its
+ * contributors may be used to endorse or promote products derived from  
this

+ * software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS  
IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,  
THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR  
PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS  
BE

+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF  
THE

+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "dev/dma_virt_device.hh"
+
+DmaVirtDevice::DmaVirtDevice(const Params& p)
+: DmaDevice(p), pageBytes(p.system->getPageBytes())
+{
+}
+
+void
+DmaVirtDevice::dmaReadVirt(Addr host_addr, unsigned size,
+ DmaCallback *cb, void *data, Tick delay)
+{
+dmaVirt(::dmaRead, host_addr, size, cb, data, delay);
+}
+
+void
+DmaVirtDevice::dmaWriteVirt(Addr host_addr, unsigned size,
+  DmaCallback *cb, void *data, Tick delay)
+{
+dmaVirt(::dmaWrite, host_addr, size, cb, data, delay);
+}
+
+void
+DmaVirtDevice::dmaVirt(DmaFnPtr dmaFn, Addr addr, unsigned size,
+ DmaCallback *cb, void *data, Tick delay)
+{
+if (size == 0) {
+if (cb)
+schedule(cb->getChunkEvent(), curTick() + delay);
+return;
+}
+
+// move the buffer data pointer with the chunks
+uint8_t *loc_data = (uint8_t*)data;
+
+for (ChunkGenerator gen(addr, size, pageBytes); !gen.done();  
gen.next()) {

+Addr phys;
+
+  

[gem5-dev] Re: RFC: run python Black on gem5 python code

2021-06-23 Thread Bobby Bruce via gem5-dev
I attempted to take some initiative with this relation chain:
https://gem5-review.googlesource.com/c/public/gem5/+/47000/

In short, I applied Python Black with a line length of 79, then added a
Python black check to our pre-submit (Kokoro) tests.

This patchset raised a question as to what line length we really want for
Python. Our official policy has been <=79 characters but Black defaults to
88 (The black developers argue this default produces a good trade off
between file length and line length). This is a good chance to have this
discussion, so the floor is open. Personally, I'm not massively opposed but
a consistent 79 character limit across the project has worked for us thus
far and I don't personally see much reason to change.

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

web: https://www.bobbybruce.net


On Thu, Mar 4, 2021 at 8:05 AM Giacomo Travaglini via gem5-dev <
gem5-dev@gem5.org> wrote:

>
>
> > -Original Message-
> > From: Jason Lowe-Power 
> > Sent: 04 March 2021 15:27
> > To: gem5 Developer List 
> > Cc: Gabe Black ; Giacomo Travaglini
> > 
> > Subject: Re: [gem5-dev] Re: RFC: run python Black on gem5 python code
> >
> > Hi all,
> >
> >
> > Some responses inline below. The other thing I'll mention is that I
> believe we
> > can integrate it in a way where it's completely invisible to most
> developers.
> > You can edit a file with whatever style you want, then after you run
> black it will
> > be in the PEP8 style. From my experience, the only things that need to be
> > manually changed are quoted strings that are more than 80 characters.
> >
>
> I would be very careful about hiding this to the developers at the point
> of automatically changing their code
> without having them noticing it.
>
> I understand you want developers to commit without the hassle of
> explicitly dealing with style errors.
> On the other hand though we are already doing this for C++ so I don't see
> a reason why we shouldn't do the same
> for the python world.
>
> Other options could be to run the linter as a pre-push hook, or to run the
> linter as part of our presubmit Jenkins script.
>
> > On Thu, Mar 4, 2021 at 6:49 AM Giacomo Travaglini via gem5-dev  > d...@gem5.org  > wrote:
> >
> >
> > Hi Jason,
> >
> > This is great news. When you say it is not configurable, do you mean it
> > is not possible to suppress warning/errors or do you
> > mean it is not possible to come up with custom rules?
> >
> >
> >
> > There is a way to suppress changes by modifying the file with a comment
> `#
> > fmt: off`. You can also exclude files with a dotfile (like .gitignore).
> >
> >
> >
> > As I presume it's the first case, I am wondering if a different linter
> > might provide such capabilities:
> >
> > https://books.agiliq.com/projects/essential-python-
> > tools/en/latest/linters.html
> >
> > Is there a reason to prefer black over other linters?
> >
> >
> >
> > It's owned by the python software foundation, which makes it seem
> "official".
> > Though the real reason is that it's the first one I looked at and the
> only one I
> > investigated.
>
> I actually thought pycodestyle was the "official" linter (I am not sure if
> the "official" word makes completely sense though)
>
> I was asking this because for example in pycodestyle (and prob other
> linters as well) there are error codes
> https://pycodestyle.pycqa.org/en/latest/intro.html#error-codes you could
> use include or exclude lists of errors (to ignore specific types of
> warnings).
>
> Kind regards
>
> Giacomo
>
> >
> >
> >
> > Kind regards
> >
> > Giacomo
> >
> > > -Original Message-
> > > From: Gabe Black via gem5-dev  >  >
> > > Sent: 04 March 2021 03:59
> > > To: gem5 Developer List mailto:gem5-
> > d...@gem5.org> >
> > > Cc: Gabe Black  >  >
> > > Subject: [gem5-dev] Re: RFC: run python Black on gem5 python code
> > >
> > > I'm a little worried about the no exceptions part of that, since we
> > might have
> > > some weird restrictions that we have to do weird things to work
> > around, but I
> > > can't really think of an example of that off hand. I'd want to look at
> it
> > to see
> > > how much wiggle room there is in the style, since I think ironclad
> > rules which
> > > make no accommodation for occasional common sense are maybe
> > more
> > > trouble than they're worth. I'm not opposed to having at least some
> > stated
> > > standard for python though, and the "official" one seems like a
> > pretty
> > > reasonable choice. I guess it's fine with me, up until it causes me
> > some sort of
> > > problem :-)
> >
> >
> >
> > I actually think it's a feature not a bug. With an "uncompromising
> Python code
> > formatter" there can be no arguments in code review about the style.
> >
> >
> > >
> > > Maybe the right thing to do would be to give it a shot but not make
> > it
> > > compulsory until we have a feeling for how 

[gem5-dev] gem5 Minor release: v21.0.1

2021-06-23 Thread Bobby Bruce via gem5-dev
Dear all.

We're happy to announce our first minor release: version 21.0.1!

This release consists entirely of bug fixes for v21.0 users. More
information on exactly what has been fixed can be found here:
https://gem5.googlesource.com/public/gem5/+/refs/tags/v21.0.1.0/RELEASE-NOTES.md#version-21_0_1_0

As always, you can obtain the latest release of gem5 by pulling from the
repo's stable branch: https://gem5.googlesource.com/public/gem5/

We wish to give a special thanks to all the gem5 developers who have made
this possible, and to the gem5 community for making us aware of problems
and possible improvements to the project.

Kind regards,
Bobby
--
Dr. Bobby R. Bruce
Room 3050,
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

[gem5-dev] Change in gem5/gem5[develop]: misc: Merge branch 'minor-release-staging-v21-0-1'

2021-06-23 Thread Bobby R. Bruce (Gerrit) via gem5-dev
Bobby R. Bruce has uploaded this change for review. (  
https://gem5-review.googlesource.com/c/public/gem5/+/47159 )



Change subject: misc: Merge branch 'minor-release-staging-v21-0-1'
..

misc: Merge branch 'minor-release-staging-v21-0-1'

Change-Id: I4ac09b563094f5b375246ee87eca364e5b6e131b
---
M SConstruct
M configs/common/Options.py
M src/Doxyfile
M src/base/version.cc
M src/python/m5/SimObject.py
6 files changed, 1 insertion(+), 29 deletions(-)



diff --git a/SConstruct b/SConstruct
index 500dd29..041701f 100755
--- a/SConstruct
+++ b/SConstruct
@@ -385,20 +385,10 @@
 for var in 'LTO_CCFLAGS', 'LTO_LDFLAGS':
 main[var] = ['-flto']

-<<< HEAD   (c05e08 python,scons: Only generate pybind if using python)
 # clang has a few additional warnings that we disable.
 with gem5_scons.Configure(main) as conf:
 conf.CheckCxxFlag('-Wno-c99-designator')
 conf.CheckCxxFlag('-Wno-defaulted-function-deleted')
-===
-# clang has a few additional warnings that we disable, extraneous
-# parantheses are allowed due to Ruby's printing of the AST,
-# finally self assignments are allowed as the generated CPU code
-# is relying on this
-main.Append(CCFLAGS=['-Wno-parentheses', '-Wno-self-assign'])
-conf.CheckCxxFlag('-Wno-c99-designator')
-conf.CheckCxxFlag('-Wno-defaulted-function-deleted')
->>> BRANCH (a85e48 misc: Update the RELEASE-NOTES.md for v21.0.1.0)

 main.Append(TCMALLOC_CCFLAGS=['-fno-builtin'])

diff --git a/configs/common/Options.py b/configs/common/Options.py
index 5936a17..75c60a8 100644
--- a/configs/common/Options.py
+++ b/configs/common/Options.py
@@ -331,17 +331,10 @@
 parser.add_argument(
 "--take-simpoint-checkpoints", action="store", type=str,
 help="")
-<<< HEAD   (c05e08 python,scons: Only generate pybind if using python)
 parser.add_argument("--restore-simpoint-checkpoint",  
action="store_true",

 default=False,
 help="restore from a simpoint checkpoint taken  
with " +

 "--take-simpoint-checkpoints")
-===
-parser.add_option("--restore-simpoint-checkpoint", action="store_true",
-default=False,
-help="restore from a simpoint checkpoint taken with " +
- "--take-simpoint-checkpoints")
->>> BRANCH (a85e48 misc: Update the RELEASE-NOTES.md for v21.0.1.0)

 # Checkpointing options
 # Note that performing checkpointing via python script files will  
override

diff --git a/src/Doxyfile b/src/Doxyfile
index c17c430..f8b481e 100644
--- a/src/Doxyfile
+++ b/src/Doxyfile
@@ -31,11 +31,7 @@
 # This could be handy for archiving the generated documentation or
 # if some version control system is used.

-<<< HEAD   (c05e08 python,scons: Only generate pybind if using python)
-PROJECT_NUMBER = DEVELOP-FOR-V21.1
-===
 PROJECT_NUMBER = v21.0.1.0
->>> BRANCH (a85e48 misc: Update the RELEASE-NOTES.md for v21.0.1.0)

 # The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute)
 # base path where the generated documentation will be put.
diff --git a/src/base/version.cc b/src/base/version.cc
index 1a8df3e..4c0bebc 100644
--- a/src/base/version.cc
+++ b/src/base/version.cc
@@ -29,8 +29,5 @@
 /**
  * @ingroup api_base_utils
  */
-<<< HEAD   (c05e08 python,scons: Only generate pybind if using python)
-const char *gem5Version = "[DEVELOP-FOR-V21.1]";
-===
 const char *gem5Version = "21.0.1.0";
->>> BRANCH (a85e48 misc: Update the RELEASE-NOTES.md for v21.0.1.0)
+
diff --git a/src/python/m5/SimObject.py b/src/python/m5/SimObject.py
index 51f5adb..2223cee 100644
--- a/src/python/m5/SimObject.py
+++ b/src/python/m5/SimObject.py
@@ -874,11 +874,7 @@
 # method, or the Dummy one. Either an implementation is
 # mandantory since this was shunted off to the dummy  
class, or

 # one is optional which will override this weak version.
-<<< HEAD   (c05e08 python,scons: Only generate pybind if using python)
 code('GEM5_VAR_USED ${{cls.cxx_class}} *')
-===
-code('M5_VAR_USED ${{cls.cxx_class}} *')
->>> BRANCH (a85e48 misc: Update the RELEASE-NOTES.md for v21.0.1.0)
  
code('Dummy${cls}Shunt<${{cls.cxx_class}}>::Params::create() '

  'const')
 code('{')

--
To view, visit https://gem5-review.googlesource.com/c/public/gem5/+/47159
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: I4ac09b563094f5b375246ee87eca364e5b6e131b
Gerrit-Change-Number: 47159
Gerrit-PatchSet: 1
Gerrit-Owner: Bobby R. Bruce 
Gerrit-MessageType: newchange
___
gem5-dev mailing list -- gem5-dev@gem5.org
To 

[gem5-dev] Change in gem5/gem5[develop]: misc: Revert version info back to develop

2021-06-23 Thread Bobby R. Bruce (Gerrit) via gem5-dev
Bobby R. Bruce has uploaded this change for review. (  
https://gem5-review.googlesource.com/c/public/gem5/+/47160 )



Change subject: misc: Revert version info back to develop
..

misc: Revert version info back to develop

Change-Id: I0afb7e18c66a829fe1f1f3330da3300c0d0eb99b
---
M ext/testlib/configuration.py
M src/Doxyfile
M src/base/version.cc
3 files changed, 3 insertions(+), 3 deletions(-)



diff --git a/ext/testlib/configuration.py b/ext/testlib/configuration.py
index 18bebdd..1fffab4 100644
--- a/ext/testlib/configuration.py
+++ b/ext/testlib/configuration.py
@@ -213,7 +213,7 @@
   os.pardir,
   os.pardir))
 defaults.result_path = os.path.join(os.getcwd(), 'testing-results')
-defaults.resource_url = 'http://dist.gem5.org/dist/v21-0'
+defaults.resource_url = 'http://dist.gem5.org/dist/develop'
 defaults.resource_path =  
os.path.abspath(os.path.join(defaults.base_dir,

 'tests',
 'gem5',
diff --git a/src/Doxyfile b/src/Doxyfile
index f8b481e..a557e01 100644
--- a/src/Doxyfile
+++ b/src/Doxyfile
@@ -31,7 +31,7 @@
 # This could be handy for archiving the generated documentation or
 # if some version control system is used.

-PROJECT_NUMBER = v21.0.1.0
+PROJECT_NUMBER = DEVELOP-FOR-v21.1

 # The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute)
 # base path where the generated documentation will be put.
diff --git a/src/base/version.cc b/src/base/version.cc
index 4c0bebc..8fb6926 100644
--- a/src/base/version.cc
+++ b/src/base/version.cc
@@ -29,5 +29,5 @@
 /**
  * @ingroup api_base_utils
  */
-const char *gem5Version = "21.0.1.0";
+const char *gem5Version = "[DEVELOP-FOR-V21.01]";


--
To view, visit https://gem5-review.googlesource.com/c/public/gem5/+/47160
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: I0afb7e18c66a829fe1f1f3330da3300c0d0eb99b
Gerrit-Change-Number: 47160
Gerrit-PatchSet: 1
Gerrit-Owner: Bobby R. Bruce 
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]: scons,python: revert Always generate default create() methods.

2021-06-23 Thread Bobby R. Bruce (Gerrit) via gem5-dev
Bobby R. Bruce has submitted this change. (  
https://gem5-review.googlesource.com/c/public/gem5/+/46819 )


Change subject: scons,python: revert Always generate default create()  
methods.

..

scons,python: revert Always generate default create() methods.

This reverts commit 7bb690c1ee70b1c82b23eeb68dcda3dc6e5c97f7.

Change-Id: If1b44162b24409fb44daec0159852fa44937184d
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/46819
Reviewed-by: Andreas Sandberg 
Maintainer: Andreas Sandberg 
Tested-by: kokoro 
---
M src/SConscript
M src/python/m5/SimObject.py
2 files changed, 72 insertions(+), 94 deletions(-)

Approvals:
  Andreas Sandberg: Looks good to me, approved; Looks good to me, approved
  kokoro: Regressions pass



diff --git a/src/SConscript b/src/SConscript
index 923aef8..faba6be 100644
--- a/src/SConscript
+++ b/src/SConscript
@@ -976,7 +976,7 @@
 # Create all of the SimObject param headers and enum headers
 #

-def createSimObjectParamDecl(target, source, env):
+def createSimObjectParamStruct(target, source, env):
 assert len(target) == 1 and len(source) == 1

 name = source[0].get_text_contents()
@@ -986,16 +986,6 @@
 obj.cxx_param_decl(code)
 code.write(target[0].abspath)

-def createSimObjectParamDef(target, source, env):
-assert len(target) == 1 and len(source) == 1
-
-name = source[0].get_text_contents()
-obj = sim_objects[name]
-
-code = code_formatter()
-obj.cxx_param_def(code)
-code.write(target[0].abspath)
-
 def createSimObjectCxxConfig(is_header):
 def body(target, source, env):
 assert len(target) == 1 and len(source) == 1
@@ -1056,16 +1046,9 @@
 hh_file = File('params/%s.hh' % name)
 params_hh_files.append(hh_file)
 env.Command(hh_file, Value(name),
-MakeAction(createSimObjectParamDecl,  
Transform("SOPARMHH")))
+MakeAction(createSimObjectParamStruct, Transform("SO  
PARAM")))

 env.Depends(hh_file, depends + extra_deps)

-if not getattr(simobj, 'abstract', False) and hasattr(simobj, 'type'):
-cc_file = File('params/%s.cc' % name)
-env.Command(cc_file, Value(name),
-MakeAction(createSimObjectParamDef,  
Transform("SOPARMCC")))

-env.Depends(cc_file, depends + extra_deps)
-Source(cc_file)
-
 # C++ parameter description files
 if GetOption('with_cxx_config'):
 for name,simobj in sorted(sim_objects.items()):
diff --git a/src/python/m5/SimObject.py b/src/python/m5/SimObject.py
index bb17a38..88abc43 100644
--- a/src/python/m5/SimObject.py
+++ b/src/python/m5/SimObject.py
@@ -368,7 +368,7 @@

 if not is_header:
 code('{')
-if getattr(simobj, 'abstract', False):
+if hasattr(simobj, 'abstract') and simobj.abstract:
 code('return NULL;')
 else:
 code('return this->create();')
@@ -700,80 +700,6 @@
 def pybind_predecls(cls, code):
 code('#include "${{cls.cxx_header}}"')

-def cxx_param_def(cls, code):
-code('''
-#include 
-
-#include "base/compiler.hh"
-
-#include "${{cls.cxx_header}}"
-#include "params/${cls}.hh"
-
-''')
-code()
-code('namespace')
-code('{')
-code()
-# If we can't define a default create() method for this params  
struct

-# because the SimObject doesn't have the right constructor, use
-# template magic to make it so we're actually defining a create  
method

-# for this class instead.
-code('class Dummy${cls}ParamsClass')
-code('{')
-code('  public:')
-code('${{cls.cxx_class}} *create() const;')
-code('};')
-code()
-code('template ')
-code('class Dummy${cls}Shunt;')
-code()
-# This version directs to the real Params struct and the default
-# behavior of create if there's an appropriate constructor.
-code('template ')
-code('class Dummy${cls}Shunt::value>>')
-code('{')
-code('  public:')
-code('using Params = ${cls}Params;')
-code('static ${{cls.cxx_class}} *')
-code('create(const Params )')
-code('{')
-code('return new CxxClass(p);')
-code('}')
-code('};')
-code()
-# This version diverts to the DummyParamsClass and a dummy
-# implementation of create if the appropriate constructor does not
-# exist.
-code('template ')
-code('class Dummy${cls}Shunt::value>>')
-code('{')
-code('  public:')
-code('using Params = Dummy${cls}ParamsClass;')
-code('static ${{cls.cxx_class}} *')
-code('create(const Params )')
-code('{')
-code('return nullptr;')
-code('}')
-code('};')
-code()
-code('} // anonymous namespace')
-code()
-  

[gem5-dev] Change in gem5/gem5[develop]: python,scons: Only generate pybind if using python

2021-06-23 Thread Bobby R. Bruce (Gerrit) via gem5-dev
Bobby R. Bruce has submitted this change. (  
https://gem5-review.googlesource.com/c/public/gem5/+/46820 )


Change subject: python,scons: Only generate pybind if using python
..

python,scons: Only generate pybind if using python

This reimplements the previously reverted change: Always generate default
create() methods.

The pybind code should only be generated when python is enabled. This
change passes whether python is enabled into the SimObject code creation
method. Then, the params code is optionally included.

Note: Due to some problems in GCC's linker (or something else...) we
need to have a single file with all of the generated code for the
SimObject.

Change-Id: I0f93b3d787d47f26db2de6c4447730f7df87a0dc
Issue-on: https://gem5.atlassian.net/browse/GEM5-1003
Signed-off-by: Jason Lowe-Power 
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/46820
Maintainer: Bobby R. Bruce 
Maintainer: Andreas Sandberg 
Reviewed-by: Daniel Carvalho 
Reviewed-by: Andreas Sandberg 
Tested-by: kokoro 
---
M src/SConscript
M src/python/m5/SimObject.py
2 files changed, 97 insertions(+), 76 deletions(-)

Approvals:
  Andreas Sandberg: Looks good to me, approved; Looks good to me, approved
  Daniel Carvalho: Looks good to me, approved
  Bobby R. Bruce: Looks good to me, approved
  kokoro: Regressions pass



diff --git a/src/SConscript b/src/SConscript
index faba6be..08cfeee 100644
--- a/src/SConscript
+++ b/src/SConscript
@@ -1021,12 +1021,16 @@
 obj.cxx_decl(code)
 code.write(target[0].abspath)

-def createSimObjectPyBindWrapper(target, source, env):
+def createSimObjectWrappers(target, source, env):
 name = source[0].get_text_contents()
 obj = sim_objects[name]

 code = code_formatter()
-obj.pybind_decl(code)
+# We want to generate a single .cc file which contains most of the
+# SimObject autogenerated code to reduce the number of files to  
compile and

+# link. We need to pass in whether python is enabled so that the pybind
+# wrappers are only generated when python is enabled
+obj.params_create_decl(code, env['USE_PYTHON'])
 code.write(target[0].abspath)

 # Generate all of the SimObject param C++ struct header files
@@ -1120,17 +1124,16 @@
 MakeAction(createEnumDecls, Transform("ENUMDECL")))
 env.Depends(hh_file, depends + extra_deps)

-# Generate SimObject Python bindings wrapper files
-if env['USE_PYTHON']:
-for name,simobj in sorted(sim_objects.items()):
-py_source = PySource.modules[simobj.__module__]
-extra_deps = [ py_source.tnode ]
-cc_file = File('python/_m5/param_%s.cc' % name)
-env.Command(cc_file, Value(name),
-MakeAction(createSimObjectPyBindWrapper,
-   Transform("SO PyBind")))
-env.Depends(cc_file, depends + extra_deps)
-Source(cc_file)
+# Generate SimObject Python bindings and create method wrapper files
+for name,simobj in sorted(sim_objects.items()):
+py_source = PySource.modules[simobj.__module__]
+extra_deps = [ py_source.tnode ]
+cc_file = File('python/_m5/param_%s.cc' % name)
+env.Command(cc_file, Value(name),
+MakeAction(createSimObjectWrappers,
+Transform("SO PyB/C")))
+env.Depends(cc_file, depends + extra_deps)
+Source(cc_file)

 #
 # Handle debug flags
diff --git a/src/python/m5/SimObject.py b/src/python/m5/SimObject.py
index 88abc43..2223cee 100644
--- a/src/python/m5/SimObject.py
+++ b/src/python/m5/SimObject.py
@@ -700,17 +700,21 @@
 def pybind_predecls(cls, code):
 code('#include "${{cls.cxx_header}}"')

-def pybind_decl(cls, code):
+def params_create_decl(cls, code, python_enabled):
 py_class_name = cls.pybind_class

 # The 'local' attribute restricts us to the params declared in
 # the object itself, not including inherited params (which
 # will also be inherited from the base class's param struct
 # here). Sort the params based on their key
-params = list(map(lambda k_v: k_v[1],  
sorted(cls._params.local.items(

+params = list(map(lambda k_v: k_v[1],
+  sorted(cls._params.local.items(
 ports = cls._ports.local

-code('''#include "pybind11/pybind11.h"
+# only include pybind if python is enabled in the build
+if python_enabled:
+
+code('''#include "pybind11/pybind11.h"
 #include "pybind11/stl.h"

 #include 
@@ -724,79 +728,93 @@
 #include "${{cls.cxx_header}}"

 ''')
+else:
+code('''
+#include 

-for param in params:
-param.pybind_predecls(code)
+#include "base/compiler.hh"
+#include "params/$cls.hh"

-code('''namespace py = pybind11;
+#include "${{cls.cxx_header}}"
+
+''')
+# only include the python params code if python is enabled.
+if python_enabled:
+ 

[gem5-dev] Change in gem5/gem5[minor-release-staging-v21-0-1]: base: Update the version to v21.0.1.0

2021-06-23 Thread Bobby R. Bruce (Gerrit) via gem5-dev
Bobby R. Bruce has submitted this change. (  
https://gem5-review.googlesource.com/c/public/gem5/+/47079 )


Change subject: base: Update the version to v21.0.1.0
..

base: Update the version to v21.0.1.0

Change-Id: Ieffc677d2daf0aadf82ede94d989e4b9a5bd17be
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/47079
Reviewed-by: Bobby R. Bruce 
Maintainer: Bobby R. Bruce 
Tested-by: kokoro 
---
M src/Doxyfile
M src/base/version.cc
2 files changed, 2 insertions(+), 2 deletions(-)

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



diff --git a/src/Doxyfile b/src/Doxyfile
index b83a8b1..f8b481e 100644
--- a/src/Doxyfile
+++ b/src/Doxyfile
@@ -31,7 +31,7 @@
 # This could be handy for archiving the generated documentation or
 # if some version control system is used.

-PROJECT_NUMBER = v21.0.0.0
+PROJECT_NUMBER = v21.0.1.0

 # The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute)
 # base path where the generated documentation will be put.
diff --git a/src/base/version.cc b/src/base/version.cc
index b46ca39..51ccfb4 100644
--- a/src/base/version.cc
+++ b/src/base/version.cc
@@ -29,4 +29,4 @@
 /**
  * @ingroup api_base_utils
  */
-const char *gem5Version = "21.0.0.0";
+const char *gem5Version = "21.0.1.0";

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


Gerrit-Project: public/gem5
Gerrit-Branch: minor-release-staging-v21-0-1
Gerrit-Change-Id: Ieffc677d2daf0aadf82ede94d989e4b9a5bd17be
Gerrit-Change-Number: 47079
Gerrit-PatchSet: 3
Gerrit-Owner: Bobby R. Bruce 
Gerrit-Reviewer: Bobby R. Bruce 
Gerrit-Reviewer: Daniel Carvalho 
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[minor-release-staging-v21-0-1]: misc: Update the RELEASE-NOTES.md for v21.0.1.0

2021-06-23 Thread Bobby R. Bruce (Gerrit) via gem5-dev
Bobby R. Bruce has submitted this change. (  
https://gem5-review.googlesource.com/c/public/gem5/+/47080 )


Change subject: misc: Update the RELEASE-NOTES.md for v21.0.1.0
..

misc: Update the RELEASE-NOTES.md for v21.0.1.0

Change-Id: Id0c30e79100dfb83e53a16ae6a32bf9af3dac705
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/47080
Reviewed-by: Bobby R. Bruce 
Reviewed-by: Daniel Carvalho 
Maintainer: Bobby R. Bruce 
Tested-by: kokoro 
---
M RELEASE-NOTES.md
1 file changed, 23 insertions(+), 0 deletions(-)

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



diff --git a/RELEASE-NOTES.md b/RELEASE-NOTES.md
index 6428267..b3ad530 100644
--- a/RELEASE-NOTES.md
+++ b/RELEASE-NOTES.md
@@ -1,3 +1,26 @@
+# Version 21.0.1.0
+
+Version 21.0.1 is a minor gem5 release consisting of bug fixes. The 21.0.1  
release:

+
+* Fixes the [GCN-GPU  
Dockerfile](https://gem5.googlesource.com/public/gem5/+/refs/tags/v21.0.1.0/util/dockerfiles/gcn-gpu/Dockerfile)  
to pull from the v21-0 bucket.
+* Fixes the tests to download from the v21-0 bucket instead of the develop  
bucket.

+* Fixes the Temperature class:
+* Fixes  
[fs_power.py](https://gem5.googlesource.com/public/gem5/+/refs/tags/v21.0.1.0/configs/example/arm/fs_power.py),  
which was producing a ["Temperature is not JSON serializable"  
error](https://gem5.atlassian.net/browse/GEM5-951).

+* Fixes temperature printing in `config.ini`.
+* Fixes the pybind export for the `from_kelvin` function.
+* Eliminates a duplicated name warning in  
[ClockTick](https://gem5.googlesource.com/public/gem5/+/refs/tags/v21.0.1.0/src/systemc/channel/sc_clock.cc).
+* Fixes the [Ubuntu 18.04  
Dockerfile](https://gem5.googlesource.com/public/gem5/+/refs/tags/v21.0.1.0/util/dockerfiles/ubuntu-20.04_all-dependencies/Dockerfile)  
to use Python3 instead of Python2.
+* Makes  
[verify.py](https://gem5.googlesource.com/public/gem5/+/refs/tags/v21.0.1.0/src/systemc/tests/verify.py)  
compatible with Python3.

+* Fixes GCN3_X86 builds for aarch64 hosts.
+* Fixes building with `SLICC_HTML=True`.
+* Fixes the  
[cpt_upgrader.py](https://gem5.googlesource.com/public/gem5/+/refs/tags/v21.0.1.0/util/cpt_upgrader.py)  
string formatter.
+* Fixes typo in  
[cpy_upgrader.py](https://gem5.googlesource.com/public/gem5/+/refs/tags/v21.0.1.0/util/cpt_upgrader.py)  
where module `errno` was incorrectly put as `ennro`.
+* Sets the `--restore-simpoint-checkpoint` flag default to "False" instead  
of the ambiguous "None".
+* Fixes a nonsensical check in  
[MOESI_CMP_token-L1cache](https://gem5.googlesource.com/public/gem5/+/refs/tags/v21.0.1.0/src/mem/ruby/protocol/MOESI_CMP_token-L1cache.sm)  
which caused compilation bugs in Clang-11.

+* Fixes the `scx_get_parameter_list` for ARM fast models.
+* Fixes [bloated object binaries, known to cause issues during  
linking](https://gem5.atlassian.net/browse/GEM5-1003).
+* Due to LTO causing unacceptably long link times for some users, and  
stripping debug symbols in some setups, it is no longer enabled by default.  
It may be enabled with the `--with-lto` flag. The `--no-lto` flag has been  
removed.

+
 # Version 21.0.0.0

 Version 21.0 marks *one full year* of gem5 releases, and on this  
anniversary, I think we have some of the biggest new features yet!


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


Gerrit-Project: public/gem5
Gerrit-Branch: minor-release-staging-v21-0-1
Gerrit-Change-Id: Id0c30e79100dfb83e53a16ae6a32bf9af3dac705
Gerrit-Change-Number: 47080
Gerrit-PatchSet: 6
Gerrit-Owner: Bobby R. Bruce 
Gerrit-Reviewer: Bobby R. Bruce 
Gerrit-Reviewer: Daniel Carvalho 
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[minor-release-staging-v21-0-1]: util: Fix typo in cpt upgrader

2021-06-23 Thread Bobby R. Bruce (Gerrit) via gem5-dev
Bobby R. Bruce has submitted this change. (  
https://gem5-review.googlesource.com/c/public/gem5/+/47099 )


Change subject: util: Fix typo in cpt upgrader
..

util: Fix typo in cpt upgrader

The module is errno, not ennro.

Change-Id: I3f17bdc12a7acd680ac407042a75d5099f5f7339
Signed-off-by: Daniel R. Carvalho 
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/46799
Reviewed-by: Giacomo Travaglini 
Maintainer: Giacomo Travaglini 
Tested-by: kokoro 
(cherry picked from commit 697745620782a4f8182ba819ff85e01b00dad68b)
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/47099
Reviewed-by: Bobby R. Bruce 
Reviewed-by: Jason Lowe-Power 
Maintainer: Bobby R. Bruce 
---
M util/cpt_upgrader.py
1 file changed, 1 insertion(+), 1 deletion(-)

Approvals:
  Jason Lowe-Power: Looks good to me, approved
  Daniel Carvalho: Looks good to me, approved
  Bobby R. Bruce: Looks good to me, approved; Looks good to me, approved
  kokoro: Regressions pass



diff --git a/util/cpt_upgrader.py b/util/cpt_upgrader.py
index 5331c49..47cd247 100755
--- a/util/cpt_upgrader.py
+++ b/util/cpt_upgrader.py
@@ -185,7 +185,7 @@
 def process_file(path, **kwargs):
 if not osp.isfile(path):
 import errno
-raise IOError(ennro.ENOENT, "No such file", path)
+raise IOError(errno.ENOENT, "No such file", path)

 verboseprint("Processing file %s" % path)


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


Gerrit-Project: public/gem5
Gerrit-Branch: minor-release-staging-v21-0-1
Gerrit-Change-Id: I3f17bdc12a7acd680ac407042a75d5099f5f7339
Gerrit-Change-Number: 47099
Gerrit-PatchSet: 2
Gerrit-Owner: Bobby R. Bruce 
Gerrit-Reviewer: Bobby R. Bruce 
Gerrit-Reviewer: Daniel Carvalho 
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[minor-release-staging-v21-0-1]: systemc: Set verify.py shebang to python3

2021-06-23 Thread Bobby R. Bruce (Gerrit) via gem5-dev
Bobby R. Bruce has submitted this change. (  
https://gem5-review.googlesource.com/c/public/gem5/+/45980 )


Change subject: systemc: Set verify.py shebang to python3
..

systemc: Set verify.py shebang to python3

Change-Id: Id33658c19f6ccfe5d1552599ad7928bae99784d4
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/45980
Reviewed-by: Bobby R. Bruce 
Reviewed-by: Andreas Sandberg 
Maintainer: Bobby R. Bruce 
Tested-by: kokoro 
---
M src/systemc/tests/verify.py
1 file changed, 1 insertion(+), 1 deletion(-)

Approvals:
  Andreas Sandberg: 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/systemc/tests/verify.py b/src/systemc/tests/verify.py
index 95812f4..076d1d5 100755
--- a/src/systemc/tests/verify.py
+++ b/src/systemc/tests/verify.py
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python3
 #
 # Copyright 2018 Google, Inc.
 #

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


Gerrit-Project: public/gem5
Gerrit-Branch: minor-release-staging-v21-0-1
Gerrit-Change-Id: Id33658c19f6ccfe5d1552599ad7928bae99784d4
Gerrit-Change-Number: 45980
Gerrit-PatchSet: 3
Gerrit-Owner: Yu-hsin Wang 
Gerrit-Reviewer: Andreas Sandberg 
Gerrit-Reviewer: Bobby R. Bruce 
Gerrit-Reviewer: Gabe Black 
Gerrit-Reviewer: Gabe Black 
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]: cpu-o3: add more DPRINTF for when cache is blocked

2021-06-23 Thread Nathanael Premillieu (Gerrit) via gem5-dev
Nathanael Premillieu has uploaded this change for review. (  
https://gem5-review.googlesource.com/c/public/gem5/+/47042 )



Change subject: cpu-o3: add more DPRINTF for when cache is blocked
..

cpu-o3: add more DPRINTF for when cache is blocked

Add DPRINTF to track the non execution of memory instructions
when the cache is blocked and their rescheduling when cache
unblocks.

Change-Id: Ieb5eddceaf50ae574ce079e21eb00ac8eaa754ae
---
M src/cpu/o3/inst_queue.cc
M src/cpu/o3/lsq_unit.cc
2 files changed, 9 insertions(+), 0 deletions(-)



diff --git a/src/cpu/o3/inst_queue.cc b/src/cpu/o3/inst_queue.cc
index d736410..cc38104 100644
--- a/src/cpu/o3/inst_queue.cc
+++ b/src/cpu/o3/inst_queue.cc
@@ -1109,11 +1109,16 @@
 blocked_inst->clearIssued();
 blocked_inst->clearCanIssue();
 blockedMemInsts.push_back(blocked_inst);
+DPRINTF(IQ, "Memory inst [sn:%llu] PC %s is blocked, will be "
+"reissued later\n", blocked_inst->seqNum,
+blocked_inst->pcState());
 }

 void
 InstructionQueue::cacheUnblocked()
 {
+DPRINTF(IQ, "Cache is unblocked, rescheduling blocked memory "
+"instructions\n");
 retryMemInsts.splice(retryMemInsts.end(), blockedMemInsts);
 // Get the CPU ticking again
 cpu->wakeCPU();
diff --git a/src/cpu/o3/lsq_unit.cc b/src/cpu/o3/lsq_unit.cc
index a2b1c6d..3393686 100644
--- a/src/cpu/o3/lsq_unit.cc
+++ b/src/cpu/o3/lsq_unit.cc
@@ -1247,6 +1247,10 @@
 }
 state->request()->packetNotSent();
 }
+DPRINTF(LSQUnit, "Memory request (pkt: %s) from inst [sn:%llu] was"
+" %ssent (cache is blocked: %d, cache_got_blocked: %d)\n",
+data_pkt->print(), state->inst->seqNum,
+ret ? "": "not ", lsq->cacheBlocked(), cache_got_blocked);
 return ret;
 }


--
To view, visit https://gem5-review.googlesource.com/c/public/gem5/+/47042
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: Ieb5eddceaf50ae574ce079e21eb00ac8eaa754ae
Gerrit-Change-Number: 47042
Gerrit-PatchSet: 1
Gerrit-Owner: Nathanael Premillieu 
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]: mem: format address in hex in the memory controller debug trace

2021-06-23 Thread Nathanael Premillieu (Gerrit) via gem5-dev
Nathanael Premillieu has uploaded this change for review. (  
https://gem5-review.googlesource.com/c/public/gem5/+/47043 )



Change subject: mem: format address in hex in the memory controller debug  
trace

..

mem: format address in hex in the memory controller debug trace

Before it was using the decimal format contrary to
everywhere else in gem5.
This was making it difficult to follow an address in the trace
once going to main memory.

Change-Id: Ia0e7d1624b593d8a21d5b3563893e2c0bcc8ed1c
---
M src/mem/mem_ctrl.cc
M src/mem/mem_interface.cc
M src/mem/qos/mem_ctrl.cc
3 files changed, 15 insertions(+), 15 deletions(-)



diff --git a/src/mem/mem_ctrl.cc b/src/mem/mem_ctrl.cc
index f663fa7..8eec9c8 100644
--- a/src/mem/mem_ctrl.cc
+++ b/src/mem/mem_ctrl.cc
@@ -234,7 +234,7 @@
 stats.servicedByWrQ++;
 pktsServicedByWrQ++;
 DPRINTF(MemCtrl,
-"Read to addr %lld with size %d serviced  
by "
+"Read to addr %#x with size %d serviced  
by "

 "write queue\n",
 addr, size);
 stats.bytesReadWrQ += burst_size;
@@ -250,7 +250,7 @@

 // Make the burst helper for split packets
 if (pkt_count > 1 && burst_helper == NULL) {
-DPRINTF(MemCtrl, "Read to addr %lld translates to %d "
+DPRINTF(MemCtrl, "Read to addr %#x translates to %d "
 "memory requests\n", pkt->getAddr(), pkt_count);
 burst_helper = new BurstHelper(pkt_count);
 }
@@ -394,19 +394,19 @@
 DPRINTF(MemCtrl, "===READ QUEUE===\n\n");
 for (const auto& queue : readQueue) {
 for (const auto& packet : queue) {
-DPRINTF(MemCtrl, "Read %lu\n", packet->addr);
+DPRINTF(MemCtrl, "Read %#x\n", packet->addr);
 }
 }

 DPRINTF(MemCtrl, "\n===RESP QUEUE===\n\n");
 for (const auto& packet : respQueue) {
-DPRINTF(MemCtrl, "Response %lu\n", packet->addr);
+DPRINTF(MemCtrl, "Response %#x\n", packet->addr);
 }

 DPRINTF(MemCtrl, "\n===WRITE QUEUE===\n\n");
 for (const auto& queue : writeQueue) {
 for (const auto& packet : queue) {
-DPRINTF(MemCtrl, "Write %lu\n", packet->addr);
+DPRINTF(MemCtrl, "Write %#x\n", packet->addr);
 }
 }
 #endif // TRACING_ON
@@ -416,7 +416,7 @@
 MemCtrl::recvTimingReq(PacketPtr pkt)
 {
 // This is where we enter from the outside world
-DPRINTF(MemCtrl, "recvTimingReq: request %s addr %lld size %d\n",
+DPRINTF(MemCtrl, "recvTimingReq: request %s addr %#x size %d\n",
 pkt->cmdString(), pkt->getAddr(), pkt->getSize());

 panic_if(pkt->cacheResponding(), "Should not see packets where cache "
@@ -631,7 +631,7 @@
 void
 MemCtrl::accessAndRespond(PacketPtr pkt, Tick static_latency)
 {
-DPRINTF(MemCtrl, "Responding to Address %lld.. \n",pkt->getAddr());
+DPRINTF(MemCtrl, "Responding to Address %#x.. \n", pkt->getAddr());

 bool needsResponse = pkt->needsResponse();
 // do the actual memory access which also turns the packet into a
@@ -837,7 +837,7 @@

 }

-DPRINTF(MemCtrl, "Access to %lld, ready at %lld next burst at %lld.\n",
+DPRINTF(MemCtrl, "Access to %#x, ready at %lld next burst at %lld.\n",
 mem_pkt->addr, mem_pkt->readyTime, nextBurstAt);

 // Update the minimum timing between the requests, this is a
diff --git a/src/mem/mem_interface.cc b/src/mem/mem_interface.cc
index 2a2ae18..12bd187 100644
--- a/src/mem/mem_interface.cc
+++ b/src/mem/mem_interface.cc
@@ -153,7 +153,7 @@
 assert(row < rowsPerBank);
 assert(row < Bank::NO_ROW);

-DPRINTF(DRAM, "Address: %lld Rank %d Bank %d Row %d\n",
+DPRINTF(DRAM, "Address: %#x Rank %d Bank %d Row %d\n",
 pkt_addr, rank, bank, row);

 // create the corresponding memory packet with the entry time and
@@ -456,7 +456,7 @@
 DRAMInterface::doBurstAccess(MemPacket* mem_pkt, Tick next_burst_at,
  const std::vector& queue)
 {
-DPRINTF(DRAM, "Timing access to addr %lld, rank/bank/row %d %d %d\n",
+DPRINTF(DRAM, "Timing access to addr %#x, rank/bank/row %d %d %d\n",
 mem_pkt->addr, mem_pkt->rank, mem_pkt->bank, mem_pkt->row);

 // get the rank
@@ -2305,7 +2305,7 @@
 std::pair
 NVMInterface::doBurstAccess(MemPacket* pkt, Tick next_burst_at)
 {
-DPRINTF(NVM, "NVM Timing access to addr %lld,  
rank/bank/row %d %d %d\n",

+DPRINTF(NVM, "NVM Timing access to addr %#x, rank/bank/row %d %d %d\n",
 pkt->addr, pkt->rank, pkt->bank, pkt->row);

 // get the bank
@@ -2358,7 +2358,7 @@
 }
 }

-DPRINTF(NVM, "NVM Access to %lld, ready at %lld.\n",
+DPRINTF(NVM, "NVM Access to %#x, ready at %lld.\n",