[gem5-dev] Change in gem5/gem5[develop]: mem-ruby: Fix cache hits being profiled as cache misses
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
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
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
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
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
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
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
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
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