[gem5-dev] Change in gem5/gem5[develop]: misc: Removed python3 Dockerfile
Bobby R. Bruce has uploaded this change for review. ( https://gem5-review.googlesource.com/c/public/gem5/+/28828 ) Change subject: misc: Removed python3 Dockerfile .. misc: Removed python3 Dockerfile This was previously used to test gem5 being compiled and run in a Python3 environment. This is redundant with the introduction of "util/dockerfiles/ubuntu-20.04_all-dependencies", which uses python3 exclusively. Change-Id: Ie837da338c3985ba92aff84144948a23fd6ece3f --- D util/dockerfiles/python3/Dockerfile 1 file changed, 0 insertions(+), 37 deletions(-) diff --git a/util/dockerfiles/python3/Dockerfile b/util/dockerfiles/python3/Dockerfile deleted file mode 100644 index 2529f36..000 --- a/util/dockerfiles/python3/Dockerfile +++ /dev/null @@ -1,37 +0,0 @@ -# Copyright (c) 2020 The Regents of the University of California -# 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 ubuntu:18.04 - -RUN apt -y update -RUN apt -y upgrade -RUN apt -y install build-essential git m4 scons zlib1g zlib1g-dev \ -libprotobuf-dev protobuf-compiler libprotoc-dev libgoogle-perftools-dev \ -python-dev python python3-dev python3.6 python-six python3-venv - -ENV VIRTUAL_ENV "/venv" -RUN python3 -m venv $VIRTUAL_ENV -ENV PATH "$VIRTUAL_ENV/bin:$PATH" -- To view, visit https://gem5-review.googlesource.com/c/public/gem5/+/28828 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: Ie837da338c3985ba92aff84144948a23fd6ece3f Gerrit-Change-Number: 28828 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]: misc: Added Dockerfile for Ubuntu 20.04
Bobby R. Bruce has uploaded this change for review. ( https://gem5-review.googlesource.com/c/public/gem5/+/28827 ) Change subject: misc: Added Dockerfile for Ubuntu 20.04 .. misc: Added Dockerfile for Ubuntu 20.04 This Dockerfile creates an image which simulates an Ubuntu 20.04 environment. Unlike the Ubuntu 18.04 Dockerfile, this does not use Python2. It uses exclusively Python3. Ubuntu 20.04 has Python3 installed by default. The image this Dockerfile creates can be obtained from "gcr.io/gem5-test/ubuntu-20.04_all-dependencies". To pull: docker pull gcr.io/gem5-test/ubuntu-20.04_all-dependencies Change-Id: I73b51028e0d6a3198aa6e7b1906d20ed6eb6c815 --- A util/dockerfiles/ubuntu-20.04_all-dependencies/Dockerfile 1 file changed, 33 insertions(+), 0 deletions(-) diff --git a/util/dockerfiles/ubuntu-20.04_all-dependencies/Dockerfile b/util/dockerfiles/ubuntu-20.04_all-dependencies/Dockerfile new file mode 100644 index 000..0ab02c5 --- /dev/null +++ b/util/dockerfiles/ubuntu-20.04_all-dependencies/Dockerfile @@ -0,0 +1,33 @@ +# Copyright (c) 2020 The Regents of the University of California +# 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 ubuntu:20.04 + +RUN apt -y update +RUN apt -y upgrade +RUN apt -y install build-essential git m4 scons zlib1g zlib1g-dev \ +libprotobuf-dev protobuf-compiler libprotoc-dev libgoogle-perftools-dev \ +python3-dev python3-six python-is-python3 doxygen -- To view, visit https://gem5-review.googlesource.com/c/public/gem5/+/28827 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: I73b51028e0d6a3198aa6e7b1906d20ed6eb6c815 Gerrit-Change-Number: 28827 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]: mem: Defer deletion of respQueue.front() in DRAMCtrl
Matthew Poremba has uploaded this change for review. ( https://gem5-review.googlesource.com/c/public/gem5/+/28808 ) Change subject: mem: Defer deletion of respQueue.front() in DRAMCtrl .. mem: Defer deletion of respQueue.front() in DRAMCtrl The front() of respQueue was being deleted before the last usuage of dram_pkt (which points to the same object) causing random crashes. Change-Id: I89862d10599dc0d1a50717dac8ed9298b4d74a3d --- M src/mem/dram_ctrl.cc 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/mem/dram_ctrl.cc b/src/mem/dram_ctrl.cc index 0a8479e..20b779b 100644 --- a/src/mem/dram_ctrl.cc +++ b/src/mem/dram_ctrl.cc @@ -716,7 +716,6 @@ accessAndRespond(dram_pkt->pkt, frontendLatency + backendLatency); } -delete respQueue.front(); respQueue.pop_front(); if (!respQueue.empty()) { @@ -738,6 +737,8 @@ } } +delete dram_pkt; + // We have made a location in the queue available at this point, // so if there is a read that was forced to wait, retry now if (retryRdReq) { -- To view, visit https://gem5-review.googlesource.com/c/public/gem5/+/28808 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: I89862d10599dc0d1a50717dac8ed9298b4d74a3d Gerrit-Change-Number: 28808 Gerrit-PatchSet: 1 Gerrit-Owner: Matthew Poremba 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]: cpu-o3: MemDepUnit tracks load-acquire/store-release
Tiago Mück has submitted this change. ( https://gem5-review.googlesource.com/c/public/gem5/+/27132 ) Change subject: cpu-o3: MemDepUnit tracks load-acquire/store-release .. cpu-o3: MemDepUnit tracks load-acquire/store-release MemDepUnit tracks loads/stores that are also barriers, which is the case of load-acquire / store-release instructions. The tracking logic is also extended to consider multiple outstanding barriers. Change-Id: I95b0c710d7c7e4a138492177e3eaaf5143e9a0ba Signed-off-by: Tiago Mück Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/27132 Reviewed-by: Daniel Carvalho Reviewed-by: Anthony Gutierrez Maintainer: Jason Lowe-Power Tested-by: kokoro --- M src/cpu/o3/mem_dep_unit.hh M src/cpu/o3/mem_dep_unit_impl.hh 2 files changed, 103 insertions(+), 85 deletions(-) Approvals: Anthony Gutierrez: Looks good to me, approved Daniel Carvalho: Looks good to me, approved Jason Lowe-Power: Looks good to me, approved kokoro: Regressions pass diff --git a/src/cpu/o3/mem_dep_unit.hh b/src/cpu/o3/mem_dep_unit.hh index c4a3310..3d24b1f 100644 --- a/src/cpu/o3/mem_dep_unit.hh +++ b/src/cpu/o3/mem_dep_unit.hh @@ -1,5 +1,5 @@ /* - * Copyright (c) 2012, 2014 ARM Limited + * Copyright (c) 2012, 2014, 2020 ARM Limited * All rights reserved * * The license below extends only to copyright in the software and shall @@ -45,6 +45,7 @@ #include #include #include +#include #include "base/statistics.hh" #include "cpu/inst_seq.hh" @@ -177,7 +178,7 @@ public: /** Constructs a memory dependence entry. */ MemDepEntry(const DynInstPtr &new_inst) -: inst(new_inst), regsReady(false), memDepReady(false), +: inst(new_inst), regsReady(false), memDeps(0), completed(false), squashed(false) { #ifdef DEBUG @@ -216,8 +217,8 @@ /** If the registers are ready or not. */ bool regsReady; -/** If all memory dependencies have been satisfied. */ -bool memDepReady; +/** Number of memory dependencies that need to be satisfied. */ +int memDeps; /** If the instruction is completed. */ bool completed; /** If the instruction is squashed. */ @@ -257,14 +258,20 @@ */ MemDepPred depPred; +/** Sequence numbers of outstanding load barriers. */ +std::unordered_set loadBarrierSNs; + +/** Sequence numbers of outstanding store barriers. */ +std::unordered_set storeBarrierSNs; + /** Is there an outstanding load barrier that loads must wait on. */ -bool loadBarrier; -/** The sequence number of the load barrier. */ -InstSeqNum loadBarrierSN; +bool hasLoadBarrier() const { return !loadBarrierSNs.empty(); } + /** Is there an outstanding store barrier that loads must wait on. */ -bool storeBarrier; -/** The sequence number of the store barrier. */ -InstSeqNum storeBarrierSN; +bool hasStoreBarrier() const { return !storeBarrierSNs.empty(); } + +/** Inserts the SN of a barrier inst. to the list of tracked barriers */ +void insertBarrierSN(const DynInstPtr &barr_inst); /** Pointer to the IQ. */ InstructionQueue *iqPtr; diff --git a/src/cpu/o3/mem_dep_unit_impl.hh b/src/cpu/o3/mem_dep_unit_impl.hh index c712965..9a50341 100644 --- a/src/cpu/o3/mem_dep_unit_impl.hh +++ b/src/cpu/o3/mem_dep_unit_impl.hh @@ -1,5 +1,5 @@ /* - * Copyright (c) 2012, 2014 ARM Limited + * Copyright (c) 2012, 2014, 2020 ARM Limited * All rights reserved * * The license below extends only to copyright in the software and shall @@ -42,6 +42,7 @@ #define __CPU_O3_MEM_DEP_UNIT_IMPL_HH__ #include +#include #include "cpu/o3/inst_queue.hh" #include "cpu/o3/mem_dep_unit.hh" @@ -50,8 +51,7 @@ template MemDepUnit::MemDepUnit() -: loadBarrier(false), loadBarrierSN(0), storeBarrier(false), - storeBarrierSN(0), iqPtr(NULL) +: iqPtr(NULL) { } @@ -60,8 +60,7 @@ : _name(params->name + ".memdepunit"), depPred(params->store_set_clear_period, params->SSITSize, params->LFSTSize), - loadBarrier(false), loadBarrierSN(0), storeBarrier(false), - storeBarrierSN(0), iqPtr(NULL) + iqPtr(NULL) { DPRINTF(MemDepUnit, "Creating MemDepUnit object.\n"); } @@ -155,8 +154,8 @@ MemDepUnit::takeOverFrom() { // Be sure to reset all state. -loadBarrier = storeBarrier = false; -loadBarrierSN = storeBarrierSN = 0; +loadBarrierSNs.clear(); +storeBarrierSNs.clear(); depPred.clear(); } @@ -169,6 +168,29 @@ template void +MemDepUnit::insertBarrierSN(const DynInstPtr &barr_inst) +{ +InstSeqNum barr_sn = barr_inst->seqNum; +// Memory barriers block loads and stores, write barriers only stores. +if (barr_inst->isMemBarrier()) { +loadBarrierSNs.insert(barr_sn); +storeBarrierSNs.insert(barr_sn); +DPRINTF(MemDepUnit, "Inserted a
[gem5-dev] Change in gem5/gem5[release-staging-v20.0.0.0]: base,sim: allow m5writeFile with stdout/stderr.
Nils Asmussen has submitted this change. ( https://gem5-review.googlesource.com/c/public/gem5/+/28727 ) Change subject: base,sim: allow m5writeFile with stdout/stderr. .. base,sim: allow m5writeFile with stdout/stderr. If m5writeFile opens stdout/stderr, no file is registered in OutputDirectory and thus we don't want to search for it on close. In order to write multiple times to stdout/stderr in a reasonable way, we also want to prevent seeking. Thus, don't seek if the offset is 0, in which case this would be a noop anyway (we just opened the file without append). Finally, it is helpful for debugging if the stream is flushed on every write. Change-Id: I102f82dcd2c63420b6f3fe55d67f03c62349e69d Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/28727 Reviewed-by: Jason Lowe-Power Maintainer: Jason Lowe-Power Tested-by: kokoro --- M src/base/output.cc M src/sim/pseudo_inst.cc 2 files changed, 11 insertions(+), 2 deletions(-) Approvals: Jason Lowe-Power: Looks good to me, approved; Looks good to me, approved kokoro: Regressions pass diff --git a/src/base/output.cc b/src/base/output.cc index ec94a13..47b8aa7 100644 --- a/src/base/output.cc +++ b/src/base/output.cc @@ -1,5 +1,6 @@ /* * Copyright (c) 2015 ARM Limited + * Copyright (c) 2020 Barkhausen Institut * All rights reserved * * The license below extends only to copyright in the software and shall @@ -142,6 +143,11 @@ void OutputDirectory::close(OutputStream *file) { +if (file == &stdout || file == &stderr) { +file->stream()->flush(); +return; +} + auto i = files.find(file->name()); if (i == files.end()) fatal("Attempted to close an unregistred file stream"); diff --git a/src/sim/pseudo_inst.cc b/src/sim/pseudo_inst.cc index c65fdc0..b11a5a4 100644 --- a/src/sim/pseudo_inst.cc +++ b/src/sim/pseudo_inst.cc @@ -1,5 +1,6 @@ /* * Copyright (c) 2010-2012, 2015, 2017 ARM Limited + * Copyright (c) 2020 Barkhausen Institut * All rights reserved * * The license below extends only to copyright in the software and shall @@ -425,8 +426,10 @@ if (!os) panic("could not open file %s\n", filename); -// seek to offset -os->seekp(offset); +if (offset != 0) { +// seek to offset +os->seekp(offset); +} // copy out data and write to file char *buf = new char[len]; -- To view, visit https://gem5-review.googlesource.com/c/public/gem5/+/28727 To unsubscribe, or for help writing mail filters, visit https://gem5-review.googlesource.com/settings Gerrit-Project: public/gem5 Gerrit-Branch: release-staging-v20.0.0.0 Gerrit-Change-Id: I102f82dcd2c63420b6f3fe55d67f03c62349e69d Gerrit-Change-Number: 28727 Gerrit-PatchSet: 2 Gerrit-Owner: Nils Asmussen Gerrit-Reviewer: Bobby R. Bruce Gerrit-Reviewer: Jason Lowe-Power Gerrit-Reviewer: Nils Asmussen 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[release-staging-v20.0.0.0]: configs: Remove old boot files
Jason Lowe-Power has submitted this change. ( https://gem5-review.googlesource.com/c/public/gem5/+/28507 ) Change subject: configs: Remove old boot files .. configs: Remove old boot files Most of these "rcS" scripts are only useful for specific disk images that have long been lost to the gem5 community. This commit deletes all of these scripts. It keeps the generally useful hack_back_cktp script and the bbench scripts that work with the android images that are still available. In the future, these remaning scripts should be moved to the gem5 resources repository. Issue-on: https://gem5.atlassian.net/browse/GEM5-350 Change-Id: Iba99e70fde7f656e968b4ecd95663275bd38fd6e Signed-off-by: Jason Lowe-Power Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/28507 Reviewed-by: Jason Lowe-Power Maintainer: Jason Lowe-Power Tested-by: kokoro --- D configs/boot/ammp.rcS D configs/boot/ammp.symbol D configs/boot/art.rcS D configs/boot/bn-app.rcS D configs/boot/bonnie.rcS D configs/boot/bonnie.symbol D configs/boot/bzip.rcS D configs/boot/cc1.symbol D configs/boot/devtime.rcS D configs/boot/equake.rcS D configs/boot/equake.symbol D configs/boot/gcc.rcS D configs/boot/gzip.rcS D configs/boot/gzip.symbol D configs/boot/iscsi-client.rcS D configs/boot/iscsi-server.rcS D configs/boot/ls.rcS D configs/boot/mcf.rcS D configs/boot/mcf.symbol D configs/boot/mesa.rcS D configs/boot/mesa.symbol D configs/boot/micro_ctx.rcS D configs/boot/micro_memlat.rcS D configs/boot/micro_memlat2mb.rcS D configs/boot/micro_memlat8.rcS D configs/boot/micro_memlat8mb.rcS D configs/boot/micro_stream.rcS D configs/boot/micro_streamcopy.rcS D configs/boot/micro_streamscale.rcS D configs/boot/micro_syscall.rcS D configs/boot/micro_tlblat.rcS D configs/boot/micro_tlblat2.rcS D configs/boot/micro_tlblat3.rcS D configs/boot/mutex-test.rcS D configs/boot/nat-netperf-maerts-client.rcS D configs/boot/nat-netperf-server.rcS D configs/boot/nat-netperf-stream-client.rcS D configs/boot/nat-spec-surge-client.rcS D configs/boot/nat-spec-surge-server.rcS D configs/boot/natbox-netperf.rcS D configs/boot/natbox-spec-surge.rcS D configs/boot/netperf-maerts-client.rcS D configs/boot/netperf-rr.rcS D configs/boot/netperf-server.rcS D configs/boot/netperf-stream-client.rcS D configs/boot/netperf-stream-nt-client.rcS D configs/boot/netperf-stream-udp-client.rcS D configs/boot/netperf-stream-udp-local.rcS D configs/boot/nfs-client-dbench.rcS D configs/boot/nfs-client-nhfsstone.rcS D configs/boot/nfs-client-smallb.rcS D configs/boot/nfs-client-tcp-smallb.rcS D configs/boot/nfs-client-tcp.rcS D configs/boot/nfs-client.rcS D configs/boot/nfs-server-nhfsstone.rcS D configs/boot/nfs-server.rcS D configs/boot/null.rcS D configs/boot/ping-client.rcS D configs/boot/ping-server.rcS D configs/boot/setup D configs/boot/spec-surge-client.rcS D configs/boot/spec-surge-server.rcS D configs/boot/surge-client.rcS D configs/boot/surge-server.rcS 64 files changed, 0 insertions(+), 7,269 deletions(-) Approvals: Jason Lowe-Power: Looks good to me, approved; Looks good to me, approved kokoro: Regressions pass -- To view, visit https://gem5-review.googlesource.com/c/public/gem5/+/28507 To unsubscribe, or for help writing mail filters, visit https://gem5-review.googlesource.com/settings Gerrit-Project: public/gem5 Gerrit-Branch: release-staging-v20.0.0.0 Gerrit-Change-Id: Iba99e70fde7f656e968b4ecd95663275bd38fd6e Gerrit-Change-Number: 28507 Gerrit-PatchSet: 4 Gerrit-Owner: Jason Lowe-Power Gerrit-Reviewer: Anthony Gutierrez Gerrit-Reviewer: Bobby R. Bruce Gerrit-Reviewer: Gabe Black Gerrit-Reviewer: Giacomo Travaglini 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