[gem5-dev] Change in gem5/gem5[develop]: mem-ruby: Fix cache hits being profiled as cache misses

2020-11-20 Thread Hoa Nguyen (Gerrit) via gem5-dev
Hoa Nguyen has submitted this change. (  
https://gem5-review.googlesource.com/c/public/gem5/+/37835 )


Change subject: mem-ruby: Fix cache hits being profiled as cache misses
..

mem-ruby: Fix cache hits being profiled as cache misses

There are some instances where a cache hit is profiled as a cache
miss. This commit addresses this error.

Change-Id: I7dafa806ef3f1e3717650dc25f8657a0ea741dd1
Signed-off-by: Hoa Nguyen 
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/37835
Reviewed-by: Matt Sinclair 
Reviewed-by: Daniel Gerzhoy 
Reviewed-by: Jason Lowe-Power 
Maintainer: Matt Sinclair 
Tested-by: kokoro 
---
M src/mem/ruby/protocol/MI_example-cache.sm
M src/mem/ruby/protocol/MOESI_AMD_Base-CorePair.sm
M src/mem/ruby/protocol/MOESI_hammer-cache.sm
3 files changed, 7 insertions(+), 7 deletions(-)

Approvals:
  Jason Lowe-Power: Looks good to me, approved
  Matt Sinclair: Looks good to me, approved; Looks good to me, approved
  Daniel Gerzhoy: Looks good to me, but someone else must approve
  kokoro: Regressions pass



diff --git a/src/mem/ruby/protocol/MI_example-cache.sm  
b/src/mem/ruby/protocol/MI_example-cache.sm

index 8738f33..2c9bdb7 100644
--- a/src/mem/ruby/protocol/MI_example-cache.sm
+++ b/src/mem/ruby/protocol/MI_example-cache.sm
@@ -353,7 +353,7 @@
   ++cacheMemory.demand_misses;
   }

-  action(p_profileHit, "ph", desc="Profile cache miss") {
+  action(p_profileHit, "ph", desc="Profile cache hit") {
   ++cacheMemory.demand_hits;
   }

diff --git a/src/mem/ruby/protocol/MOESI_AMD_Base-CorePair.sm  
b/src/mem/ruby/protocol/MOESI_AMD_Base-CorePair.sm

index a9589d6..fb957f0 100644
--- a/src/mem/ruby/protocol/MOESI_AMD_Base-CorePair.sm
+++ b/src/mem/ruby/protocol/MOESI_AMD_Base-CorePair.sm
@@ -1283,19 +1283,19 @@
   }

   action(l10h_profileHit, "l10h", desc="l10h hit profile") {
-++L1D0cache.demand_misses;
+++L1D0cache.demand_hits;
   }

   action(l11h_profileHit, "l11h", desc="l11h hit profile") {
-++L1D1cache.demand_misses;
+++L1D1cache.demand_hits;
   }

   action(l1ih_profileHit, "l1lh", desc="l1ih hit profile") {
-++L1Icache.demand_misses;
+++L1Icache.demand_hits;
   }

   action(l2h_profileHit, "l2h", desc="l2h hit profile") {
-++L2cache.demand_misses;
+++L2cache.demand_hits;
   }

   action(yy_recycleProbeQueue, "yy", desc="recycle probe queue") {
diff --git a/src/mem/ruby/protocol/MOESI_hammer-cache.sm  
b/src/mem/ruby/protocol/MOESI_hammer-cache.sm

index 8541f35..5440eb8 100644
--- a/src/mem/ruby/protocol/MOESI_hammer-cache.sm
+++ b/src/mem/ruby/protocol/MOESI_hammer-cache.sm
@@ -1285,12 +1285,12 @@
   ++L2cache.demand_misses;
   }

-  action(uu_profileL2Hit, "\uh", desc="Profile the demand hits ") {
+  action(uu_profileL2Hit, "\uh", desc="Profile the demand hits") {
   ++L2cache.demand_hits;
   }

   action(zz_stallAndWaitMandatoryQueue, "\z", desc="Send the head of the  
mandatory queue to the back of the queue.") {

-stall_and_wait(mandatoryQueue_in, address);
+stall_and_wait(mandatoryQueue_in, address);
   }

   action(z_stall, "z", desc="stall") {

--
To view, visit https://gem5-review.googlesource.com/c/public/gem5/+/37835
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: I7dafa806ef3f1e3717650dc25f8657a0ea741dd1
Gerrit-Change-Number: 37835
Gerrit-PatchSet: 3
Gerrit-Owner: Hoa Nguyen 
Gerrit-Reviewer: Bobby R. Bruce 
Gerrit-Reviewer: Daniel Gerzhoy 
Gerrit-Reviewer: Hoa Nguyen 
Gerrit-Reviewer: Jason Lowe-Power 
Gerrit-Reviewer: Jason Lowe-Power 
Gerrit-Reviewer: Matt Sinclair 
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] Re: Compiling gem5 as library for x86 results in error

2020-11-20 Thread Gabe Black via gem5-dev
No, that's no related to USE_SYSTEMC=False. That's disabling the systemc
kernel, and the error message is that the system port is not connected.
Even though the names are similar, the system object doesn't have anything
to do with systemc. The system port itself is a port that the system object
(a type of gem5 SimObject) provides which is supposed to connect to the
memory and give components that want to set up memory like kernel loaders,
etc, direct access. If that port is not connected, gem5 assumes that's a
mistake and will error out. You need to make sure it's connected to
something in your configuration.

Gabe

On Fri, Nov 20, 2020 at 5:20 AM Michele Marazzi <
michele.marazzi...@gmail.com> wrote:

> Dear Gabe,
>
> Thanks for your help.
> It does compile with USE_SYSTEMC=False, but unfortunately I suspect I do
> need that part in order to use gem5 as planned.
>
> Indeed, the case scenario is to interface it to a slave memory controller.
> After many tries of different configurations, I keep getting as error:
> > panic: System port on system is not connected.
>
> In order to not get out of scope of this ML I guess it's better not to go
> into details about my implementation, but rather to say that also the
> example provided with gem5 (/gem5/util/tlm/build/examples/slave_port/
> gem5.sc) fails.
>
> I've followed the README explanation, first generating the config, and
> then loading it:
>
> user@pc-10744:~/gem5/util/tlm$ build/examples/slave_port/gem5.sc
>> m5out/config.ini -e 100 -v
>> SystemC 2.3.1-Accellera --- Nov 20 2020 13:20:43
>> Copyright (c) 1996-2014 by all Contributors,
>> ALL RIGHTS RESERVED
>> Global frequency set at 1 ticks per second
>> 
>> EventQueue Dump  (cycle 0)
>> 
>> 
>> 
>> panic: System port on system is not connected.
>> Memory Usage: 175632 KBytes
>> Program aborted at tick 0
>> --- BEGIN LIBC BACKTRACE ---
>>
>> /home/user/gem5/build/X86/libgem5_opt.so(_Z15print_backtracev+0x30)[0x7fcd6722d390]
>>
>> /home/user/gem5/build/X86/libgem5_opt.so(_Z12abortHandleri+0x56)[0x7fcd6723e216]
>> /lib/x86_64-linux-gnu/libc.so.6(+0x46210)[0x7fcd659c3210]
>> /lib/x86_64-linux-gnu/libc.so.6(gsignal+0xcb)[0x7fcd659c318b]
>> /lib/x86_64-linux-gnu/libc.so.6(abort+0x12b)[0x7fcd659a2859]
>> build/examples/slave_port/gem5.sc(+0x2c9a0)[0x56522a0e39a0]
>>
>> /home/user/gem5/build/X86/libgem5_opt.so(_ZN6System4initEv+0xab)[0x7fcd6725ef2b]
>>
>> /home/user/gem5/build/X86/libgem5_opt.so(_ZN16CxxConfigManager13forEachObjectEM9SimObjectFvvE+0x5f)[0x7fcd6722daaf]
>>
>> /home/user/gem5/build/X86/libgem5_opt.so(_ZN16CxxConfigManager11instantiateEb+0xa2)[0x7fcd67233fa2]
>> build/examples/slave_port/gem5.sc(+0x2ba9b)[0x56522a0e2a9b]
>> build/examples/slave_port/gem5.sc(sc_main+0xfa)[0x56522a0cd8f3]
>> build/systemc/libsystemc.so(sc_elab_and_sim+0xe2)[0x7fcd679fcda0]
>> build/systemc/libsystemc.so(main+0x24)[0x7fcd679fcc4e]
>> /lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0xf3)[0x7fcd659a40b3]
>> build/examples/slave_port/gem5.sc(+0x1673e)[0x56522a0cd73e]
>> --- END LIBC BACKTRACE ---
>> Aborted (core dumped)
>
>
> The same happens if I try with a master configuration:
>
> user@pc-10744:~/gem5/util/tlm$ ../../build/X86/gem5.opt conf/tlm_master.py
>> warn: CheckedInt already exists in allParams. This may be caused by the
>> Python 2.7 compatibility layer.
>> warn: Enum already exists in allParams. This may be caused by the Python
>> 2.7 compatibility layer.
>> warn: ScopedEnum already exists in allParams. This may be caused by the
>> Python 2.7 compatibility layer.
>> gem5 Simulator System.  http://gem5.org
>> gem5 is copyrighted software; use the --copyright option for details.
>> gem5 version 20.0.0.3
>> gem5 compiled Nov 20 2020 00:52:43
>> gem5 started Nov 20 2020 13:30:19
>> gem5 executing on pc-10744, pid 20674
>> command line: ../../build/X86/gem5.opt conf/tlm_master.py
>> Global frequency set at 1 ticks per second
>> warn: No dot file generated. Please install pydot to generate the dot
>> file and pdf.
>> fatal: Can't find port handler type 'tlm_master'
>> Memory Usage: 612264 KBytes
>
>
> user@pc-10744:~/gem5/util/tlm$ build/examples/master_port/gem5.sc
>> m5out/config.ini -e 100 -v
>> SystemC 2.3.1-Accellera --- Nov 20 2020 13:20:43
>> Copyright (c) 1996-2014 by all Contributors,
>> ALL RIGHTS RESERVED
>> Global frequency set at 1 ticks per second
>> 
>> EventQueue Dump  (cycle 0)
>> 
>> 
>> 
>> panic: System port on system is not connected.
>> Memory Usage: 568848 KBytes
>> Program aborted at tick 0
>> --- BEGIN LIBC BACKTRACE ---
>>
>> 

[gem5-dev] Change in gem5/gem5[develop]: python: Remove SortedDict from python utilities

2020-11-20 Thread Giacomo Travaglini (Gerrit) via gem5-dev
Giacomo Travaglini has submitted this change. (  
https://gem5-review.googlesource.com/c/public/gem5/+/37796 )


Change subject: python: Remove SortedDict from python utilities
..

python: Remove SortedDict from python utilities

The SortedDict isn't actually used. A developer willing to
use a sorted dictionary should resort to the collections.OrderedDict
instead

Change-Id: Ia2cc664eb01e59b197218ccf40ff9c680a410fb2
Signed-off-by: Giacomo Travaglini 
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/37796
Reviewed-by: Jason Lowe-Power 
Reviewed-by: Hoa Nguyen 
Maintainer: Jason Lowe-Power 
Tested-by: kokoro 
---
M src/python/SConscript
M src/python/m5/util/__init__.py
D src/python/m5/util/sorteddict.py
3 files changed, 0 insertions(+), 216 deletions(-)

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



diff --git a/src/python/SConscript b/src/python/SConscript
index 6611e6a..9c02f53 100644
--- a/src/python/SConscript
+++ b/src/python/SConscript
@@ -53,7 +53,6 @@
 PySource('m5.util', 'm5/util/grammar.py')
 PySource('m5.util', 'm5/util/jobfile.py')
 PySource('m5.util', 'm5/util/multidict.py')
-PySource('m5.util', 'm5/util/sorteddict.py')
 PySource('m5.util', 'm5/util/terminal.py')
 PySource('m5.util', 'm5/util/pybind.py')
 PySource('m5.util', 'm5/util/fdthelper.py')
diff --git a/src/python/m5/util/__init__.py b/src/python/m5/util/__init__.py
index b319679..deab0fc 100644
--- a/src/python/m5/util/__init__.py
+++ b/src/python/m5/util/__init__.py
@@ -52,7 +52,6 @@
 from .attrdict import attrdict, multiattrdict, optiondict
 from .code_formatter import code_formatter
 from .multidict import multidict
-from .sorteddict import SortedDict

 # panic() should be called when something happens that should never
 # ever happen regardless of what the user does (i.e., an acutal m5
diff --git a/src/python/m5/util/sorteddict.py  
b/src/python/m5/util/sorteddict.py

deleted file mode 100644
index 25d6d39..000
--- a/src/python/m5/util/sorteddict.py
+++ /dev/null
@@ -1,214 +0,0 @@
-# Copyright (c) 2006-2009 Nathan Binkert 
-# All rights reserved.
-#
-# Redistribution and use in source and binary forms, with or without
-# modification, are permitted provided that the following conditions are
-# met: redistributions of source code must retain the above copyright
-# notice, this list of conditions and the following disclaimer;
-# 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;
-# neither the name of the copyright holders 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
-# OWNER 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.
-
-from __future__ import print_function
-from __future__ import absolute_import
-
-from bisect import bisect_left, bisect_right
-
-class SortedDict(dict):
-def _get_sorted(self):
-return getattr(self, '_sorted', sorted)
-def _set_sorted(self, val):
-self._sorted = val
-self._del_keys()
-sorted = property(_get_sorted, _set_sorted)
-
-@property
-def _keys(self):
-try:
-return self._sorted_keys
-except AttributeError:
-_sorted_keys = self.sorted(dict.keys(self))
-self._sorted_keys = _sorted_keys
-return _sorted_keys
-
-def _left_eq(self, key):
-index = self._left_ge(self, key)
-if self._keys[index] != key:
-raise KeyError(key)
-return index
-
-def _right_eq(self, key):
-index = self._right_le(self, key)
-if self._keys[index] != key:
-raise KeyError(key)
-return index
-
-def _right_lt(self, key):
-index = bisect_left(self._keys, key)
-if index:
-return index - 1
-raise KeyError(key)
-
-def _right_le(self, key):
-index = bisect_right(self._keys, key)
-if index:
-return index - 1
-

[gem5-dev] Change in gem5/gem5[develop]: scons, python: Remove SmartDict from python utilities

2020-11-20 Thread Giacomo Travaglini (Gerrit) via gem5-dev
Giacomo Travaglini has submitted this change. (  
https://gem5-review.googlesource.com/c/public/gem5/+/37775 )


Change subject: scons, python: Remove SmartDict from python utilities
..

scons, python: Remove SmartDict from python utilities

The SmartDict, used by buildEnv, has been added long time ago for
the following reasons: (checking its documentation)

---
The SmartDict class fixes a couple of issues with using the content
of os.environ or similar dicts of strings as Python variables:

1) Undefined variables should return False rather than raising KeyError.

2) String values of 'False', '0', etc., should evaluate to False
   (not just the empty string).
---

These are valid reasons, but I believe they should be addressed in
a more standardized way by using a common dictionary.

1) We should simply rely on dict.get

if buildEnv.get('KEY', False/None):

2) We should discourage the use of stringified False or 0.
If we are using a dictionary, can't we just pass those values as
booleans?
The SmartDict is basically converting every value into a
string ("Variable") at every access (__getitem__)
The Variable is a string + some "basic" conversion methods
What is the problem of passing every dict value as a string?

The problem is the ambiguity on the boolean conversion.

If a variable is modelling a boolean, we can return true if
the value is 'yes', 'true'... and false if the value is
'no', 'false' etc. We should raise an exception if it is
something different, like a typo (e.g.) 'Fasle'.
But if the variable is not modelling a boolean, we don't know
how to handle that. How should we convert 'mystring' ?

If we decide to treat 'mystring' as True (which is basically
what a str.__bool__ would return) we will break typoes detection,
as 'Fasle' will now be converted to True, rather than raising
an exception.

Change-Id: I960fbfb1ec0f703e1e372dd752ee75f00632acac
Signed-off-by: Giacomo Travaglini 
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/37775
Reviewed-by: Jason Lowe-Power 
Reviewed-by: Hoa Nguyen 
Maintainer: Bobby R. Bruce 
Maintainer: Gabe Black 
Tested-by: kokoro 
---
M src/SConscript
M src/python/SConscript
M src/python/m5/util/__init__.py
D src/python/m5/util/smartdict.py
4 files changed, 2 insertions(+), 161 deletions(-)

Approvals:
  Jason Lowe-Power: Looks good to me, approved
  Hoa Nguyen: Looks good to me, approved
  Gabe Black: 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 9446242..b55f485 100644
--- a/src/SConscript
+++ b/src/SConscript
@@ -824,7 +824,7 @@
 return mod

 if fullname == 'm5.defines':
-mod.__dict__['buildEnv'] = m5.util.SmartDict(build_env)
+mod.__dict__['buildEnv'] = dict(build_env)
 return mod

 source = self.modules[fullname]
@@ -894,7 +894,7 @@
 import _m5.core
 import m5.util

-buildEnv = m5.util.SmartDict($build_env)
+buildEnv = dict($build_env)

 compileDate = _m5.core.compileDate
 gem5Version = _m5.core.gem5Version
diff --git a/src/python/SConscript b/src/python/SConscript
index 50f467e..6611e6a 100644
--- a/src/python/SConscript
+++ b/src/python/SConscript
@@ -53,7 +53,6 @@
 PySource('m5.util', 'm5/util/grammar.py')
 PySource('m5.util', 'm5/util/jobfile.py')
 PySource('m5.util', 'm5/util/multidict.py')
-PySource('m5.util', 'm5/util/smartdict.py')
 PySource('m5.util', 'm5/util/sorteddict.py')
 PySource('m5.util', 'm5/util/terminal.py')
 PySource('m5.util', 'm5/util/pybind.py')
diff --git a/src/python/m5/util/__init__.py b/src/python/m5/util/__init__.py
index d26bf4e..b319679 100644
--- a/src/python/m5/util/__init__.py
+++ b/src/python/m5/util/__init__.py
@@ -52,7 +52,6 @@
 from .attrdict import attrdict, multiattrdict, optiondict
 from .code_formatter import code_formatter
 from .multidict import multidict
-from .smartdict import SmartDict
 from .sorteddict import SortedDict

 # panic() should be called when something happens that should never
diff --git a/src/python/m5/util/smartdict.py  
b/src/python/m5/util/smartdict.py

deleted file mode 100644
index addb0c5..000
--- a/src/python/m5/util/smartdict.py
+++ /dev/null
@@ -1,157 +0,0 @@
-# Copyright (c) 2005 The Regents of The University of Michigan
-# All rights reserved.
-#
-# Redistribution and use in source and binary forms, with or without
-# modification, are permitted provided that the following conditions are
-# met: redistributions of source code must retain the above copyright
-# notice, this list of conditions and the following disclaimer;
-# 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;
-# neither the name of the copyright holders nor the names of its
-# contributors may be used to endorse or 

[gem5-dev] Change in gem5/gem5[develop]: util: Use MAINTAINERS.yaml for valid tags in git hook

2020-11-20 Thread Jason Lowe-Power (Gerrit) via gem5-dev
Jason Lowe-Power has submitted this change. (  
https://gem5-review.googlesource.com/c/public/gem5/+/37220 )


Change subject: util: Use MAINTAINERS.yaml for valid tags in git hook
..

util: Use MAINTAINERS.yaml for valid tags in git hook

There is a mismatch between the tags in MAINTAINERS.yaml and the
valid_tags in the git hook. This means if a user consults the
MAINTAINERS.yaml file to find the appropriate tag, there is a chance of
the commit being rejected due to this mismatch. Now that the maintainers
file is in yaml format, use the util/maint library to parse the valid
tag options. Additional meta tags are added (WIP, RFC) and tags that
were previously valid but not in the MAINTAINERS.yaml file.

Change-Id: I3de8f0b6f8507aa1afd2118bc4373ac0610cce40
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/37220
Reviewed-by: Andreas Sandberg 
Reviewed-by: Daniel Carvalho 
Reviewed-by: Giacomo Travaglini 
Reviewed-by: Jason Lowe-Power 
Reviewed-by: Nikos Nikoleris 
Maintainer: Jason Lowe-Power 
Tested-by: kokoro 
---
M util/git-commit-msg.py
A util/maint/__init__.py
2 files changed, 10 insertions(+), 13 deletions(-)

Approvals:
  Jason Lowe-Power: Looks good to me, approved; Looks good to me, approved
  Andreas Sandberg: Looks good to me, approved
  Nikos Nikoleris: Looks good to me, approved
  Giacomo Travaglini: Looks good to me, but someone else must approve
  Daniel Carvalho: Looks good to me, approved
  kokoro: Regressions pass



diff --git a/util/git-commit-msg.py b/util/git-commit-msg.py
index 9cba896..2bddf12 100755
--- a/util/git-commit-msg.py
+++ b/util/git-commit-msg.py
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python3
 #
 # Copyright (c) 2019 Inria
 # All rights reserved
@@ -32,6 +32,7 @@
 import os
 import re
 import sys
+from maint.lib import maintainers

 from style.repo import GitRepo

@@ -57,8 +58,8 @@

 print("""
 The first line of a commit must contain one or more gem5 tags separated by
-commas (see MAINTAINERS for the possible tags), followed by a colon and a
-commit title. There must be no leading nor trailing whitespaces.
+commas (see MAINTAINERS.yaml for the possible tags), followed by a colon  
and

+a commit title. There must be no leading nor trailing whitespaces.

 This header line must then be followed by an empty line. A detailed  
message,
 although highly recommended, is not mandatory and can follow that empty  
line.

@@ -85,17 +86,12 @@
 """

 # List of valid tags
-# @todo this is error prone, and should be extracted automatically from
-#   a file
+maintainer_dict = maintainers.Maintainers.from_file()
+valid_tags = [tag for tag, _ in maintainer_dict]

-valid_tags = ["arch", "arch-arm", "arch-gcn3",
-"arch-mips", "arch-power", "arch-riscv", "arch-sparc", "arch-x86",
-"base", "configs", "cpu", "cpu-kvm", "cpu-minor", "cpu-o3",
-"cpu-simple", "dev", "dev-arm", "dev-hsa", "dev-virtio", "ext",
-"fastmodel", "gpu-compute", "learning-gem5", "mem", "mem-cache",
-"mem-garnet", "mem-ruby", "misc", "python", "scons", "sim", "sim-se",
-"sim-power", "stats", "system", "system-arm", "systemc", "tests",
-"util", "RFC", "WIP"]
+# Remove non-tag 'pmc' and add special tags not in MAINTAINERS.yaml
+valid_tags.remove('pmc')
+valid_tags.extend(['RFC', 'WIP'])

 tags = ''.join(commit_header.split(':')[0].split()).split(',')
 if (any(tag not in valid_tags for tag in tags)):
diff --git a/util/maint/__init__.py b/util/maint/__init__.py
new file mode 100644
index 000..e5a0d9b
--- /dev/null
+++ b/util/maint/__init__.py
@@ -0,0 +1 @@
+#!/usr/bin/env python3

--
To view, visit https://gem5-review.googlesource.com/c/public/gem5/+/37220
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: I3de8f0b6f8507aa1afd2118bc4373ac0610cce40
Gerrit-Change-Number: 37220
Gerrit-PatchSet: 3
Gerrit-Owner: Matthew Poremba 
Gerrit-Reviewer: Andreas Sandberg 
Gerrit-Reviewer: Bobby R. Bruce 
Gerrit-Reviewer: Boris Shingarov 
Gerrit-Reviewer: Daniel Carvalho 
Gerrit-Reviewer: Gabe Black 
Gerrit-Reviewer: Gabe Black 
Gerrit-Reviewer: Giacomo Travaglini 
Gerrit-Reviewer: Hoa Nguyen 
Gerrit-Reviewer: Jason Lowe-Power 
Gerrit-Reviewer: Nikos Nikoleris 
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]: util: Relax commit message checker to allow fixups

2020-11-20 Thread Jason Lowe-Power (Gerrit) via gem5-dev
Jason Lowe-Power has submitted this change. (  
https://gem5-review.googlesource.com/c/public/gem5/+/37598 )


Change subject: util: Relax commit message checker to allow fixups
..

util: Relax commit message checker to allow fixups

Change-Id: I094de0a9cb65af0ba0a8700d77cd51c6537d7beb
Signed-off-by: Nikos Nikoleris 
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/37598
Tested-by: kokoro 
Reviewed-by: Daniel Carvalho 
Reviewed-by: Jason Lowe-Power 
Reviewed-by: Bobby R. Bruce 
Maintainer: Jason Lowe-Power 
---
M util/git-commit-msg.py
1 file changed, 4 insertions(+), 2 deletions(-)

Approvals:
  Jason Lowe-Power: 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/util/git-commit-msg.py b/util/git-commit-msg.py
index 2bddf12..db0fbdd 100755
--- a/util/git-commit-msg.py
+++ b/util/git-commit-msg.py
@@ -109,10 +109,12 @@
 commit_message_lines = commit_message.splitlines()
 commit_header = commit_message_lines[0]
 commit_header_match = \
-re.search("^(\S[\w\-][,\s*[\w\-]+]*:.+\S$)", commit_header)
+re.search("^(fixup! )?(\S[\w\-][,\s*[\w\-]+]*:.+\S$)", commit_header)
 if ((commit_header_match is None)):
 _printErrorQuit("Invalid commit header")
-_validateTags(commit_header)
+if commit_header_match.group(1) == "fixup! ":
+sys.exit(0)
+_validateTags(commit_header_match.group(2))

 # Make sure commit title does not exceed threshold. This line is limited to
 # a smaller number because version control systems may add a prefix,  
causing


--
To view, visit https://gem5-review.googlesource.com/c/public/gem5/+/37598
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: I094de0a9cb65af0ba0a8700d77cd51c6537d7beb
Gerrit-Change-Number: 37598
Gerrit-PatchSet: 3
Gerrit-Owner: Nikos Nikoleris 
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[develop]: mem-ruby,misc: Fix a parameter name in a DeprecatedParam message

2020-11-20 Thread Hoa Nguyen (Gerrit) via gem5-dev
Hoa Nguyen has submitted this change. (  
https://gem5-review.googlesource.com/c/public/gem5/+/36635 )


Change subject: mem-ruby,misc: Fix a parameter name in a DeprecatedParam  
message

..

mem-ruby,misc: Fix a parameter name in a DeprecatedParam message

Change-Id: Ie84a29e779187effea372c6289688f32a1db075d
Signed-off-by: Hoa Nguyen 
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/36635
Reviewed-by: Jason Lowe-Power 
Maintainer: Jason Lowe-Power 
Tested-by: kokoro 
---
M src/mem/ruby/system/Sequencer.py
1 file changed, 1 insertion(+), 1 deletion(-)

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



diff --git a/src/mem/ruby/system/Sequencer.py  
b/src/mem/ruby/system/Sequencer.py

index 0acd87a..0e23fc0 100644
--- a/src/mem/ruby/system/Sequencer.py
+++ b/src/mem/ruby/system/Sequencer.py
@@ -52,7 +52,7 @@
"has multiple ports (e.g., I/D ports) all of the ports for  
a "

"single CPU can connect to one RubyPort.")
slave= DeprecatedParam(in_ports,
-'`slave` is now called `in_port`')
+'`slave` is now called `in_ports`')

interrupt_out_port = VectorRequestPort("Port to connect to x86  
interrupt "
 "controller to send the CPU requests from  
outside.")


--
To view, visit https://gem5-review.googlesource.com/c/public/gem5/+/36635
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: Ie84a29e779187effea372c6289688f32a1db075d
Gerrit-Change-Number: 36635
Gerrit-PatchSet: 3
Gerrit-Owner: Hoa Nguyen 
Gerrit-Reviewer: Bobby R. Bruce 
Gerrit-Reviewer: Hoa Nguyen 
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] Re: Compiling gem5 as library for x86 results in error

2020-11-20 Thread Michele Marazzi via gem5-dev
Dear Gabe,

Thanks for your help.
It does compile with USE_SYSTEMC=False, but unfortunately I suspect I do
need that part in order to use gem5 as planned.

Indeed, the case scenario is to interface it to a slave memory controller.
After many tries of different configurations, I keep getting as error:
> panic: System port on system is not connected.

In order to not get out of scope of this ML I guess it's better not to go
into details about my implementation, but rather to say that also the
example provided with gem5 (/gem5/util/tlm/build/examples/slave_port/gem5.sc)
fails.

I've followed the README explanation, first generating the config, and then
loading it:

user@pc-10744:~/gem5/util/tlm$ build/examples/slave_port/gem5.sc
> m5out/config.ini -e 100 -v
> SystemC 2.3.1-Accellera --- Nov 20 2020 13:20:43
> Copyright (c) 1996-2014 by all Contributors,
> ALL RIGHTS RESERVED
> Global frequency set at 1 ticks per second
> 
> EventQueue Dump  (cycle 0)
> 
> 
> 
> panic: System port on system is not connected.
> Memory Usage: 175632 KBytes
> Program aborted at tick 0
> --- BEGIN LIBC BACKTRACE ---
>
> /home/user/gem5/build/X86/libgem5_opt.so(_Z15print_backtracev+0x30)[0x7fcd6722d390]
>
> /home/user/gem5/build/X86/libgem5_opt.so(_Z12abortHandleri+0x56)[0x7fcd6723e216]
> /lib/x86_64-linux-gnu/libc.so.6(+0x46210)[0x7fcd659c3210]
> /lib/x86_64-linux-gnu/libc.so.6(gsignal+0xcb)[0x7fcd659c318b]
> /lib/x86_64-linux-gnu/libc.so.6(abort+0x12b)[0x7fcd659a2859]
> build/examples/slave_port/gem5.sc(+0x2c9a0)[0x56522a0e39a0]
>
> /home/user/gem5/build/X86/libgem5_opt.so(_ZN6System4initEv+0xab)[0x7fcd6725ef2b]
>
> /home/user/gem5/build/X86/libgem5_opt.so(_ZN16CxxConfigManager13forEachObjectEM9SimObjectFvvE+0x5f)[0x7fcd6722daaf]
>
> /home/user/gem5/build/X86/libgem5_opt.so(_ZN16CxxConfigManager11instantiateEb+0xa2)[0x7fcd67233fa2]
> build/examples/slave_port/gem5.sc(+0x2ba9b)[0x56522a0e2a9b]
> build/examples/slave_port/gem5.sc(sc_main+0xfa)[0x56522a0cd8f3]
> build/systemc/libsystemc.so(sc_elab_and_sim+0xe2)[0x7fcd679fcda0]
> build/systemc/libsystemc.so(main+0x24)[0x7fcd679fcc4e]
> /lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0xf3)[0x7fcd659a40b3]
> build/examples/slave_port/gem5.sc(+0x1673e)[0x56522a0cd73e]
> --- END LIBC BACKTRACE ---
> Aborted (core dumped)


The same happens if I try with a master configuration:

user@pc-10744:~/gem5/util/tlm$ ../../build/X86/gem5.opt conf/tlm_master.py
> warn: CheckedInt already exists in allParams. This may be caused by the
> Python 2.7 compatibility layer.
> warn: Enum already exists in allParams. This may be caused by the Python
> 2.7 compatibility layer.
> warn: ScopedEnum already exists in allParams. This may be caused by the
> Python 2.7 compatibility layer.
> gem5 Simulator System.  http://gem5.org
> gem5 is copyrighted software; use the --copyright option for details.
> gem5 version 20.0.0.3
> gem5 compiled Nov 20 2020 00:52:43
> gem5 started Nov 20 2020 13:30:19
> gem5 executing on pc-10744, pid 20674
> command line: ../../build/X86/gem5.opt conf/tlm_master.py
> Global frequency set at 1 ticks per second
> warn: No dot file generated. Please install pydot to generate the dot file
> and pdf.
> fatal: Can't find port handler type 'tlm_master'
> Memory Usage: 612264 KBytes


user@pc-10744:~/gem5/util/tlm$ build/examples/master_port/gem5.sc
> m5out/config.ini -e 100 -v
> SystemC 2.3.1-Accellera --- Nov 20 2020 13:20:43
> Copyright (c) 1996-2014 by all Contributors,
> ALL RIGHTS RESERVED
> Global frequency set at 1 ticks per second
> 
> EventQueue Dump  (cycle 0)
> 
> 
> 
> panic: System port on system is not connected.
> Memory Usage: 568848 KBytes
> Program aborted at tick 0
> --- BEGIN LIBC BACKTRACE ---
>
> /home/user/gem5/build/X86/libgem5_opt.so(_Z15print_backtracev+0x30)[0x7f44410f5390]
>
> /home/user/gem5/build/X86/libgem5_opt.so(_Z12abortHandleri+0x56)[0x7f4441106216]
> /lib/x86_64-linux-gnu/libc.so.6(+0x46210)[0x7f443f88b210]
> /lib/x86_64-linux-gnu/libc.so.6(gsignal+0xcb)[0x7f443f88b18b]
> /lib/x86_64-linux-gnu/libc.so.6(abort+0x12b)[0x7f443f86a859]
> build/examples/master_port/gem5.sc(+0x2e32c)[0x55f33154d32c]
>
> /home/user/gem5/build/X86/libgem5_opt.so(_ZN6System4initEv+0xab)[0x7f4441126f2b]
>
> /home/user/gem5/build/X86/libgem5_opt.so(_ZN16CxxConfigManager13forEachObjectEM9SimObjectFvvE+0x5f)[0x7f44410f5aaf]
>
> /home/user/gem5/build/X86/libgem5_opt.so(_ZN16CxxConfigManager11instantiateEb+0xa2)[0x7f44410fbfa2]
> build/examples/master_port/gem5.sc(+0x359a1)[0x55f3315549a1]
> 

[gem5-dev] Change in gem5/gem5[develop]: python: Fix toBool converter

2020-11-20 Thread Giacomo Travaglini (Gerrit) via gem5-dev
Giacomo Travaglini has submitted this change. (  
https://gem5-review.googlesource.com/c/public/gem5/+/37755 )


Change subject: python: Fix toBool converter
..

python: Fix toBool converter

It was using an undefined variable (result) which was mistakenly left
there after its latest refactor

Change-Id: I50bb9b1e7793045556a29306faea5f455b29819d
Signed-off-by: Giacomo Travaglini 
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/37755
Reviewed-by: Gabe Black 
Reviewed-by: Jason Lowe-Power 
Maintainer: Jason Lowe-Power 
Tested-by: kokoro 
---
M src/python/m5/util/convert.py
1 file changed, 1 insertion(+), 1 deletion(-)

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



diff --git a/src/python/m5/util/convert.py b/src/python/m5/util/convert.py
index 077b6b4..d3088f6 100644
--- a/src/python/m5/util/convert.py
+++ b/src/python/m5/util/convert.py
@@ -145,7 +145,7 @@
 return True
 if value in ('false', 'f', 'no', 'n', '0'):
 return False
-return result
+raise ValueError("cannot convert '%s' to bool" % value)

 def toFrequency(value):
 return toMetricFloat(value, 'frequency', 'Hz')

--
To view, visit https://gem5-review.googlesource.com/c/public/gem5/+/37755
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: I50bb9b1e7793045556a29306faea5f455b29819d
Gerrit-Change-Number: 37755
Gerrit-PatchSet: 2
Gerrit-Owner: Giacomo Travaglini 
Gerrit-Reviewer: Andreas Sandberg 
Gerrit-Reviewer: Bobby R. Bruce 
Gerrit-Reviewer: Daniel Carvalho 
Gerrit-Reviewer: Gabe Black 
Gerrit-Reviewer: Giacomo Travaglini 
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