[gem5-dev] Change in gem5/gem5[release-staging-v20.0.0.0]: arch-riscv,tests: small update to make gem5.fast compile
Ayaz Akram has submitted this change. ( https://gem5-review.googlesource.com/c/public/gem5/+/28893 ) Change subject: arch-riscv,tests: small update to make gem5.fast compile .. arch-riscv,tests: small update to make gem5.fast compile This small change is meant to enable gem5.fast compilation for riscv. Also, the riscv tests based on gem5.fast work now and are removed from .testignore. Change-Id: Id9c96d8e4682a74ec1d77a66eae53d6f9b64d302 Issue-On: https://gem5.atlassian.net/browse/GEM5-526 Issue-On: https://gem5.atlassian.net/browse/GEM5-527 Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/28893 Reviewed-by: Jason Lowe-Power Maintainer: Jason Lowe-Power Tested-by: kokoro --- M src/arch/riscv/pagetable_walker.cc M tests/gem5/.testignore 2 files changed, 2 insertions(+), 8 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 6ec118d..786cb81 100644 --- a/src/arch/riscv/pagetable_walker.cc +++ b/src/arch/riscv/pagetable_walker.cc @@ -386,10 +386,9 @@ if (!functional) walker->tlb->insert(entry.vaddr, entry); else { -Addr offset = entry.vaddr & mask(entry.logBytes); -Addr paddr = entry.paddr << PageShift | offset; DPRINTF(PageTableWalker, "Translated %#x -> %#x\n", -entry.vaddr, paddr); +entry.vaddr, entry.paddr << PageShift | +(entry.vaddr & mask(entry.logBytes))); } } endWalk(); diff --git a/tests/gem5/.testignore b/tests/gem5/.testignore index cc61aa6..b8cfc7f 100644 --- a/tests/gem5/.testignore +++ b/tests/gem5/.testignore @@ -20,12 +20,7 @@ test-insttest-rv64i-linux-DerivO3CPU-RISCV-x86_64-debug test-insttest-linux-AtomicSimpleCPU-SPARC-x86_64-debug test-insttest-linux-TimingSimpleCPU-SPARC-x86_64-debug -test-insttest-rv64a-linux-MinorCPU-RISCV-x86_64-fast -test-insttest-rv64c-linux-MinorCPU-RISCV-x86_64-fast -test-insttest-rv64d-linux-MinorCPU-RISCV-x86_64-fast -test-insttest-rv64f-linux-MinorCPU-RISCV-x86_64-fast test-insttest-rv64i-linux-MinorCPU-RISCV-x86_64-fast -test-insttest-rv64m-linux-MinorCPU-RISCV-x86_64-fast test-insttest-rv64i-linux-AtomicSimpleCPU-RISCV-x86_64-fast test-insttest-rv64i-linux-TimingSimpleCPU-RISCV-x86_64-fast test-insttest-rv64i-linux-DerivO3CPU-RISCV-x86_64-fast -- To view, visit https://gem5-review.googlesource.com/c/public/gem5/+/28893 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: Id9c96d8e4682a74ec1d77a66eae53d6f9b64d302 Gerrit-Change-Number: 28893 Gerrit-PatchSet: 2 Gerrit-Owner: Ayaz Akram Gerrit-Reviewer: Ayaz Akram Gerrit-Reviewer: Bobby R. Bruce 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]: gpu-compute,mem-ruby: Refactor GPU coalescer
Matthew Poremba has submitted this change. ( https://gem5-review.googlesource.com/c/public/gem5/+/27429 ) Change subject: gpu-compute,mem-ruby: Refactor GPU coalescer .. gpu-compute,mem-ruby: Refactor GPU coalescer Remove the read/write tables and coalescing table and introduce a two levels of tables for uncoalesced and coalesced packets. Tokens are granted to GPU instructions to place in uncoalesced table. If tokens are available, the operation always succeeds such that the 'Aliased' status is never returned. Coalesced accesses are placed in the coalesced table while requests are outstanding. Requests to the same address are added as targets to the table similar to how MSHRs operate. Change-Id: I44983610307b638a97472db3576d0a30df2de600 Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/27429 Reviewed-by: Bradford Beckmann Reviewed-by: Jason Lowe-Power Maintainer: Bradford Beckmann Tested-by: kokoro --- M src/gpu-compute/GPU.py M src/gpu-compute/compute_unit.cc M src/gpu-compute/compute_unit.hh M src/gpu-compute/global_memory_pipeline.cc M src/gpu-compute/global_memory_pipeline.hh M src/gpu-compute/wavefront.cc M src/mem/ruby/system/GPUCoalescer.cc M src/mem/ruby/system/GPUCoalescer.hh M src/mem/ruby/system/GPUCoalescer.py M src/mem/ruby/system/VIPERCoalescer.cc 10 files changed, 572 insertions(+), 643 deletions(-) Approvals: Jason Lowe-Power: Looks good to me, but someone else must approve Bradford Beckmann: Looks good to me, approved; Looks good to me, approved kokoro: Regressions pass diff --git a/src/gpu-compute/GPU.py b/src/gpu-compute/GPU.py index fee0254..7eaf65f 100644 --- a/src/gpu-compute/GPU.py +++ b/src/gpu-compute/GPU.py @@ -129,6 +129,8 @@ "memory pipeline's queues") local_mem_queue_size = Param.Int(256, "Number of entries in the local " "memory pipeline's queues") +max_cu_tokens = Param.Int(4, "Maximum number of tokens, i.e., the number"\ +" of instructions that can be sent to coalescer") ldsBus = Bridge() # the bridge between the CU and its LDS ldsPort = MasterPort("The port that goes to the LDS") localDataStore = Param.LdsState("the LDS for this CU") diff --git a/src/gpu-compute/compute_unit.cc b/src/gpu-compute/compute_unit.cc index 59bc6a0..cd880d6 100644 --- a/src/gpu-compute/compute_unit.cc +++ b/src/gpu-compute/compute_unit.cc @@ -74,9 +74,9 @@ req_tick_latency(p->mem_req_latency * p->clk_domain->clockPeriod()), resp_tick_latency(p->mem_resp_latency * p->clk_domain->clockPeriod()), _masterId(p->system->getMasterId(this, "ComputeUnit")), -lds(*p->localDataStore), _cacheLineSize(p->system->cacheLineSize()), -globalSeqNum(0), wavefrontSize(p->wfSize), -kernelLaunchInst(new KernelLaunchStaticInst()) +lds(*p->localDataStore), gmTokenPort(name() + ".gmTokenPort", this), +_cacheLineSize(p->system->cacheLineSize()), globalSeqNum(0), +wavefrontSize(p->wfSize), kernelLaunchInst(new KernelLaunchStaticInst()) { /** * This check is necessary because std::bitset only provides conversion @@ -139,6 +139,10 @@ memPort.resize(wfSize()); +// Setup tokens for slave ports. The number of tokens in memSlaveTokens +// is the total token count for the entire vector port (i.e., this CU). +memPortTokens = new TokenManager(p->max_cu_tokens); + // resize the tlbPort vectorArray int tlbPort_width = perLaneTLB ? wfSize() : 1; tlbPort.resize(tlbPort_width); @@ -612,6 +616,8 @@ vectorAluInstAvail.resize(numSIMDs, false); shrMemInstAvail = 0; glbMemInstAvail = 0; + +gmTokenPort.setTokenManager(memPortTokens); } bool diff --git a/src/gpu-compute/compute_unit.hh b/src/gpu-compute/compute_unit.hh index a023cb2..49713e9 100644 --- a/src/gpu-compute/compute_unit.hh +++ b/src/gpu-compute/compute_unit.hh @@ -51,6 +51,7 @@ #include "gpu-compute/schedule_stage.hh" #include "gpu-compute/scoreboard_check_stage.hh" #include "mem/port.hh" +#include "mem/token_port.hh" #include "sim/clocked_object.hh" static const int MAX_REGS_FOR_NON_VEC_MEM_INST = 1; @@ -415,6 +416,26 @@ CUExitCallback *cuExitCallback; +class GMTokenPort : public TokenMasterPort +{ + public: +GMTokenPort(const std::string& name, SimObject *owner, +PortID id = InvalidPortID) +: TokenMasterPort(name, owner, id) +{ } +~GMTokenPort() { } + + protected: +bool recvTimingResp(PacketPtr) { return false; } +void recvReqRetry() { } +}; + +// Manager for the number of tokens available to this compute unit to +// send global memory request packets to the coalescer this is only used +// between global memory pipe and TCP coalescer. +TokenManager *memPortTokens; +GMTokenPort gmTokenPort; + /** Da
[gem5-dev] Change in gem5/gem5[release-staging-v20.0.0.0]: arch-riscv,tests: small update to make gem5.fast compile
Ayaz Akram has uploaded this change for review. ( https://gem5-review.googlesource.com/c/public/gem5/+/28893 ) Change subject: arch-riscv,tests: small update to make gem5.fast compile .. arch-riscv,tests: small update to make gem5.fast compile This small change is meant to enable gem5.fast compilation for riscv. Also, the riscv tests based on gem5.fast work now and are removed from .testignore. Change-Id: Id9c96d8e4682a74ec1d77a66eae53d6f9b64d302 Issue-On: https://gem5.atlassian.net/browse/GEM5-526 Issue-On: https://gem5.atlassian.net/browse/GEM5-527 --- M src/arch/riscv/pagetable_walker.cc M tests/gem5/.testignore 2 files changed, 2 insertions(+), 8 deletions(-) diff --git a/src/arch/riscv/pagetable_walker.cc b/src/arch/riscv/pagetable_walker.cc index 6ec118d..786cb81 100644 --- a/src/arch/riscv/pagetable_walker.cc +++ b/src/arch/riscv/pagetable_walker.cc @@ -386,10 +386,9 @@ if (!functional) walker->tlb->insert(entry.vaddr, entry); else { -Addr offset = entry.vaddr & mask(entry.logBytes); -Addr paddr = entry.paddr << PageShift | offset; DPRINTF(PageTableWalker, "Translated %#x -> %#x\n", -entry.vaddr, paddr); +entry.vaddr, entry.paddr << PageShift | +(entry.vaddr & mask(entry.logBytes))); } } endWalk(); diff --git a/tests/gem5/.testignore b/tests/gem5/.testignore index cc61aa6..b8cfc7f 100644 --- a/tests/gem5/.testignore +++ b/tests/gem5/.testignore @@ -20,12 +20,7 @@ test-insttest-rv64i-linux-DerivO3CPU-RISCV-x86_64-debug test-insttest-linux-AtomicSimpleCPU-SPARC-x86_64-debug test-insttest-linux-TimingSimpleCPU-SPARC-x86_64-debug -test-insttest-rv64a-linux-MinorCPU-RISCV-x86_64-fast -test-insttest-rv64c-linux-MinorCPU-RISCV-x86_64-fast -test-insttest-rv64d-linux-MinorCPU-RISCV-x86_64-fast -test-insttest-rv64f-linux-MinorCPU-RISCV-x86_64-fast test-insttest-rv64i-linux-MinorCPU-RISCV-x86_64-fast -test-insttest-rv64m-linux-MinorCPU-RISCV-x86_64-fast test-insttest-rv64i-linux-AtomicSimpleCPU-RISCV-x86_64-fast test-insttest-rv64i-linux-TimingSimpleCPU-RISCV-x86_64-fast test-insttest-rv64i-linux-DerivO3CPU-RISCV-x86_64-fast -- To view, visit https://gem5-review.googlesource.com/c/public/gem5/+/28893 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: Id9c96d8e4682a74ec1d77a66eae53d6f9b64d302 Gerrit-Change-Number: 28893 Gerrit-PatchSet: 1 Gerrit-Owner: Ayaz Akram 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/+/28889 ) 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, 35 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..814ef75 --- /dev/null +++ b/util/dockerfiles/ubuntu-20.04_all-dependencies/Dockerfile @@ -0,0 +1,35 @@ +# 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 + +ENV DEBIAN_FRONTEND=noninteractive +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 libboost-all-dev \ +libhdf5-serial-dev python3-pydot libpng-dev -- To view, visit https://gem5-review.googlesource.com/c/public/gem5/+/28889 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: 28889 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 missing optional dependencies to 18.04 Docker
Bobby R. Bruce has uploaded this change for review. ( https://gem5-review.googlesource.com/c/public/gem5/+/28892 ) Change subject: misc: Added missing optional dependencies to 18.04 Docker .. misc: Added missing optional dependencies to 18.04 Docker Change-Id: Ibc43664f99ce9fbd28d14352243fb17b7754289b --- M util/dockerfiles/ubuntu-18.04_all-dependencies/Dockerfile 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/util/dockerfiles/ubuntu-18.04_all-dependencies/Dockerfile b/util/dockerfiles/ubuntu-18.04_all-dependencies/Dockerfile index a0064b6..95511a8 100644 --- a/util/dockerfiles/ubuntu-18.04_all-dependencies/Dockerfile +++ b/util/dockerfiles/ubuntu-18.04_all-dependencies/Dockerfile @@ -30,4 +30,5 @@ 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 python-six doxygen +python-dev python python-six doxygen libboost-all-dev libhdf5-serial-dev \ +python-pydot libpng-dev -- To view, visit https://gem5-review.googlesource.com/c/public/gem5/+/28892 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: Ibc43664f99ce9fbd28d14352243fb17b7754289b Gerrit-Change-Number: 28892 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 python-six as a dependency in 18.04 docker
Bobby R. Bruce has uploaded this change for review. ( https://gem5-review.googlesource.com/c/public/gem5/+/28891 ) Change subject: misc: Added python-six as a dependency in 18.04 docker .. misc: Added python-six as a dependency in 18.04 docker Previously the docker utilized Python-Pip. This is an intermediate dependency we don't need. We can install the Python-six module directly via the APT framework. Change-Id: I30e3e1cdca802ca19422140f39af7dc9dc166ed7 --- M util/dockerfiles/ubuntu-18.04_all-dependencies/Dockerfile 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/util/dockerfiles/ubuntu-18.04_all-dependencies/Dockerfile b/util/dockerfiles/ubuntu-18.04_all-dependencies/Dockerfile index 95923f5..a0064b6 100644 --- a/util/dockerfiles/ubuntu-18.04_all-dependencies/Dockerfile +++ b/util/dockerfiles/ubuntu-18.04_all-dependencies/Dockerfile @@ -30,5 +30,4 @@ 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 python-pip doxygen -RUN pip install six +python-dev python python-six doxygen -- To view, visit https://gem5-review.googlesource.com/c/public/gem5/+/28891 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: I30e3e1cdca802ca19422140f39af7dc9dc166ed7 Gerrit-Change-Number: 28891 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: Removed python3 Dockerfile
Bobby R. Bruce has uploaded this change for review. ( https://gem5-review.googlesource.com/c/public/gem5/+/28890 ) 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/+/28890 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: 28890 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[release-staging-v20.0.0.0]: mem: Defer deletion of respQueue.front() in DRAMCtrl
Matthew Poremba has submitted this change. ( 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 Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/28808 Reviewed-by: Nikos Nikoleris Maintainer: Nikos Nikoleris Tested-by: kokoro --- M src/mem/dram_ctrl.cc 1 file changed, 3 insertions(+), 1 deletion(-) Approvals: Nikos Nikoleris: Looks good to me, approved; Looks good to me, approved kokoro: Regressions pass diff --git a/src/mem/dram_ctrl.cc b/src/mem/dram_ctrl.cc index 0a8479e..5f0fcc7 100644 --- a/src/mem/dram_ctrl.cc +++ b/src/mem/dram_ctrl.cc @@ -716,7 +716,7 @@ accessAndRespond(dram_pkt->pkt, frontendLatency + backendLatency); } -delete respQueue.front(); +assert(respQueue.front() == dram_pkt); respQueue.pop_front(); if (!respQueue.empty()) { @@ -738,6 +738,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: release-staging-v20.0.0.0 Gerrit-Change-Id: I89862d10599dc0d1a50717dac8ed9298b4d74a3d Gerrit-Change-Number: 28808 Gerrit-PatchSet: 3 Gerrit-Owner: Matthew Poremba Gerrit-Reviewer: Bobby R. Bruce Gerrit-Reviewer: Jason Lowe-Power Gerrit-Reviewer: Matthew Poremba Gerrit-Reviewer: Nikos Nikoleris Gerrit-Reviewer: Wendy Elsasser 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]: scons: readCommand returning Popen.returncode
Giacomo Travaglini has uploaded this change for review. ( https://gem5-review.googlesource.com/c/public/gem5/+/28847 ) Change subject: scons: readCommand returning Popen.returncode .. scons: readCommand returning Popen.returncode In this way it will be possible to reliably catch any error in the command execution which is not raising an exception to Popen. Change-Id: I4dc15648423f9bb8e8a470d97291dbd065c48eba Signed-off-by: Giacomo Travaglini --- M SConstruct M site_scons/site_tools/git.py M src/python/m5/util/__init__.py 3 files changed, 30 insertions(+), 21 deletions(-) diff --git a/SConstruct b/SConstruct index ba4affa..446225b 100755 --- a/SConstruct +++ b/SConstruct @@ -336,8 +336,8 @@ # compiler we're using. main['TCMALLOC_CCFLAGS'] = [] -CXX_version = readCommand([main['CXX'],'--version'], exception=False) -CXX_V = readCommand([main['CXX'],'-V'], exception=False) +_, CXX_version = readCommand([main['CXX'],'--version'], exception=False) +_, CXX_V = readCommand([main['CXX'],'-V'], exception=False) main['GCC'] = CXX_version and CXX_version.find('g++') >= 0 main['CLANG'] = CXX_version and CXX_version.find('clang') >= 0 @@ -396,7 +396,8 @@ # Check for a supported version of gcc. >= 4.8 is chosen for its # level of c++11 support. See # http://gcc.gnu.org/projects/cxx0x.html for details. -gcc_version = readCommand([main['CXX'], '-dumpversion'], exception=False) +_, gcc_version = readCommand([main['CXX'], '-dumpversion'], +exception=False) if compareVersions(gcc_version, "4.8") < 0: error('gcc version 4.8 or newer required.\n' 'Installed version:', gcc_version) @@ -534,12 +535,13 @@ main.Append(CCFLAGS=["-Wno-uninitialized"]) -have_pkg_config = readCommand(['pkg-config', '--version'], exception='') +_, have_pkg_config = readCommand(['pkg-config', '--version'], exception='') # Check for the protobuf compiler try: main['HAVE_PROTOC'] = True -protoc_version = readCommand([main['PROTOC'], '--version']).split() +_, cmd_stdout = readCommand([main['PROTOC'], '--version']) +protoc_version = cmd_stdout.split() # First two words should be "libprotoc x.y.z" if len(protoc_version) < 2 or protoc_version[0] != 'libprotoc': @@ -579,11 +581,12 @@ # be run with a time limit. We require version 8.13 since we rely on # support for the '--foreground' option. if sys.platform.startswith('freebsd'): -timeout_lines = readCommand(['gtimeout', '--version'], -exception='').splitlines() +_, cmd_stdout = readCommand(['gtimeout', '--version'], exception='') +timeout_lines = cmd_stdout.splitlines() else: -timeout_lines = readCommand(['timeout', '--version'], -exception='').splitlines() +_, cmd_stdout = readCommand(['timeout', '--version'], exception='') +timeout_lines = cmd_stdout.splitlines() + # Get the first line and tokenize it timeout_version = timeout_lines[0].split() if timeout_lines else [] main['TIMEOUT'] = timeout_version and \ @@ -623,7 +626,8 @@ import platform uname = platform.uname() if uname[0] == 'Darwin' and compareVersions(uname[2], '9.0.0') >= 0: -if int(readCommand('sysctl -n hw.cpu64bit_capable')[0]): +_, cpu64bit = readCommand('sysctl -n hw.cpu64bit_capable') +if int(cpu64bit[0]): main.Append(CCFLAGS=['-arch', 'x86_64']) main.Append(CFLAGS=['-arch', 'x86_64']) main.Append(LINKFLAGS=['-arch', 'x86_64']) @@ -671,10 +675,9 @@ main['PYTHON_CONFIG']) print("Info: Using Python config: %s" % (python_config, )) -py_includes = readCommand([python_config, '--includes'], - exception='').split() +_, cmd_stdout = readCommand([python_config, '--includes'], exception='') py_includes = list(filter( -lambda s: match(r'.*\/include\/.*',s), py_includes)) +lambda s: match(r'.*\/include\/.*',s), cmd_stdout.split())) # Strip the -I from the include folders before adding them to the # CPPPATH py_includes = list(map( @@ -683,8 +686,10 @@ # Read the linker flags and split them into libraries and other link # flags. The libraries are added later through the call the CheckLib. -py_ld_flags = readCommand([python_config, '--ldflags'], -exception='').split() +_, cmd_stdout = readCommand([python_config, '--ldflags'], +exception='') +py_ld_flags = cmd_stdout.split() + py_libs = [] for lib in py_ld_flags: if not lib.startswith('-l'): diff --git a/site_scons/site_tools/git.py b/site_scons/site_tools/git.py index c5b2d5d..171a6f1 100644 --- a/site_scons/site_tools/git.py +++ b/site_scons/site_tools/git.py @@ -54,8 +54,9 @@ def install_style_hooks(env): try: -gitdir = env.Dir(readCommand( -["git", "rev-parse", "--git-d
[gem5-dev] Change in gem5/gem5[release-staging-v20.0.0.0]: misc: Updated version to 20.0.0.0
Bobby R. Bruce has submitted this change. ( https://gem5-review.googlesource.com/c/public/gem5/+/28707 ) Change subject: misc: Updated version to 20.0.0.0 .. misc: Updated version to 20.0.0.0 Change-Id: I5ba4a6e728b2daccea898685d3c27b0f7c7a02cd Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/28707 Reviewed-by: Jason Lowe-Power Maintainer: Jason Lowe-Power Tested-by: kokoro --- M src/base/version.cc 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/base/version.cc b/src/base/version.cc index 7182b55..c5fbca0 100644 --- a/src/base/version.cc +++ b/src/base/version.cc @@ -26,4 +26,4 @@ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -const char *gem5Version = "[develop]"; +const char *gem5Version = "20.0.0.0"; -- To view, visit https://gem5-review.googlesource.com/c/public/gem5/+/28707 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: I5ba4a6e728b2daccea898685d3c27b0f7c7a02cd Gerrit-Change-Number: 28707 Gerrit-PatchSet: 2 Gerrit-Owner: Bobby R. Bruce Gerrit-Reviewer: Bobby R. Bruce 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[release-staging-v20.0.0.0]: misc: Updated resources bucket url to version 20
Bobby R. Bruce has submitted this change. ( https://gem5-review.googlesource.com/c/public/gem5/+/28708 ) Change subject: misc: Updated resources bucket url to version 20 .. misc: Updated resources bucket url to version 20 This will fix this v20.0.0.0 of gem5 to the v20 gem5 resources bucket subdirectory. Change-Id: I0c1f1a2c28c18e684bcb009d1650f9e9d2950a93 Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/28708 Reviewed-by: Jason Lowe-Power Maintainer: Jason Lowe-Power Tested-by: kokoro --- M ext/testlib/config.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/ext/testlib/config.py b/ext/testlib/config.py index 348d0a8..189f7c1 100644 --- a/ext/testlib/config.py +++ b/ext/testlib/config.py @@ -220,7 +220,7 @@ os.pardir)) defaults.result_path = os.path.join(os.getcwd(), '.testing-results') defaults.list_only_failed = False -defaults.resource_url = 'http://dist.gem5.org/dist/develop' +defaults.resource_url = 'http://dist.gem5.org/dist/v20' def define_constants(constants): ''' -- To view, visit https://gem5-review.googlesource.com/c/public/gem5/+/28708 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: I0c1f1a2c28c18e684bcb009d1650f9e9d2950a93 Gerrit-Change-Number: 28708 Gerrit-PatchSet: 2 Gerrit-Owner: Bobby R. Bruce Gerrit-Reviewer: Ayaz Akram Gerrit-Reviewer: Bobby R. Bruce Gerrit-Reviewer: Jason Lowe-Power Gerrit-Reviewer: Mahyar Samani 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]: mem-ruby: MESI_Two_Level missing function compilation fix
Giacomo Travaglini has submitted this change. ( https://gem5-review.googlesource.com/c/public/gem5/+/28747 ) Change subject: mem-ruby: MESI_Two_Level missing function compilation fix .. mem-ruby: MESI_Two_Level missing function compilation fix The recent commit dd6cd33 removed the Ruby Sequencer function invalidateSC in favour of doing this implicitely via evictionCallback. The protocol MESI_Two_Level still contains one explicit call to this function, however, this is now superflous as forward_eviction_to_cpu is called in the same transition. This patch removes the remaining calls to invalidateSC. JIRA: https://gem5.atlassian.net/browse/GEM5-499 Change-Id: If51d8bebf6aa39d20789639aab0d262d5173ca59 Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/28747 Reviewed-by: Jason Lowe-Power Reviewed-by: Ayaz Akram Maintainer: Jason Lowe-Power Tested-by: kokoro --- M src/mem/ruby/protocol/MESI_Two_Level-L1cache.sm M src/mem/ruby/protocol/RubySlicc_Types.sm 2 files changed, 12 insertions(+), 7 deletions(-) Approvals: Jason Lowe-Power: Looks good to me, approved; Looks good to me, approved Ayaz Akram: Looks good to me, approved kokoro: Regressions pass diff --git a/src/mem/ruby/protocol/MESI_Two_Level-L1cache.sm b/src/mem/ruby/protocol/MESI_Two_Level-L1cache.sm index 3e3580f..3e07e03 100644 --- a/src/mem/ruby/protocol/MESI_Two_Level-L1cache.sm +++ b/src/mem/ruby/protocol/MESI_Two_Level-L1cache.sm @@ -1,4 +1,16 @@ /* + * Copyright (c) 2020 ARM Limited + * All rights reserved + * + * The license below extends only to copyright in the software and shall + * not be construed as granting a license to any other intellectual + * property including but not limited to intellectual property relating + * to a hardware implementation of the functionality of the software + * licensed hereunder. You may use the software subject to the license + * terms below provided that you ensure that this notice is replicated + * unmodified and in its entirety in all distributions of the software, + * modified or unmodified, in source code or in binary form. + * * Copyright (c) 1999-2013 Mark D. Hill and David A. Wood * All rights reserved. * @@ -816,11 +828,6 @@ } } - action(dg_invalidate_sc, "dg", - desc="Invalidate store conditional as the cache lost permissions") { -sequencer.invalidateSC(address); - } - action(h_load_hit, "hd", desc="Notify sequencer the load completed.") { @@ -1394,7 +1401,6 @@ transition(SM, Inv, IM) { forward_eviction_to_cpu; fi_sendInvAck; -dg_invalidate_sc; l_popRequestQueue; } diff --git a/src/mem/ruby/protocol/RubySlicc_Types.sm b/src/mem/ruby/protocol/RubySlicc_Types.sm index 6ab0f3f..e3a136f 100644 --- a/src/mem/ruby/protocol/RubySlicc_Types.sm +++ b/src/mem/ruby/protocol/RubySlicc_Types.sm @@ -132,7 +132,6 @@ void evictionCallback(Addr); void recordRequestType(SequencerRequestType); bool checkResourceAvailable(CacheResourceType, Addr); - void invalidateSC(Addr); } structure (GPUCoalescer, external = "yes") { -- To view, visit https://gem5-review.googlesource.com/c/public/gem5/+/28747 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: If51d8bebf6aa39d20789639aab0d262d5173ca59 Gerrit-Change-Number: 28747 Gerrit-PatchSet: 2 Gerrit-Owner: Giacomo Travaglini Gerrit-Reviewer: Ayaz Akram Gerrit-Reviewer: Giacomo Travaglini Gerrit-Reviewer: Jason Lowe-Power Gerrit-Reviewer: Timothy Hayes 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]: mem-ruby: MOESI_CMP_directory sync fix
Giacomo Travaglini has submitted this change. ( https://gem5-review.googlesource.com/c/public/gem5/+/28787 ) Change subject: mem-ruby: MOESI_CMP_directory sync fix .. mem-ruby: MOESI_CMP_directory sync fix The recent commit dd6cd33 modified the behaviour of the the Ruby sequencer to handle load linked requests as loads rather than stores. This caused the regression test realview-simple-timing-dual-ruby-ARM-x86_64-opt to become stuck when booting Linux. This patch fixes the issue by adding a missing forward_eviction_to_cpu action to the state transition(OM, Fwd_GETX, IM). Change-Id: I8f253c5709488b07ddc5143a15eda406e31f3cc6 Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/28787 Reviewed-by: Jason Lowe-Power Maintainer: Jason Lowe-Power Tested-by: kokoro --- M src/mem/ruby/protocol/MOESI_CMP_directory-L1cache.sm 1 file changed, 2 insertions(+), 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/protocol/MOESI_CMP_directory-L1cache.sm b/src/mem/ruby/protocol/MOESI_CMP_directory-L1cache.sm index b8d8ab4..5a31d28 100644 --- a/src/mem/ruby/protocol/MOESI_CMP_directory-L1cache.sm +++ b/src/mem/ruby/protocol/MOESI_CMP_directory-L1cache.sm @@ -1,5 +1,5 @@ /* - * Copyright (c) 2019 ARM Limited + * Copyright (c) 2019-2020 ARM Limited * All rights reserved * * The license below extends only to copyright in the software and shall @@ -1189,6 +1189,7 @@ // transition(OM, Fwd_GETX, OMF) { transition(OM, Fwd_GETX, IM) { ee_sendDataExclusive; +forward_eviction_to_cpu; l_popForwardQueue; } -- To view, visit https://gem5-review.googlesource.com/c/public/gem5/+/28787 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: I8f253c5709488b07ddc5143a15eda406e31f3cc6 Gerrit-Change-Number: 28787 Gerrit-PatchSet: 2 Gerrit-Owner: Giacomo Travaglini Gerrit-Reviewer: Giacomo Travaglini Gerrit-Reviewer: Jason Lowe-Power Gerrit-Reviewer: Timothy Hayes 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: c64 simulation
It isn't it's own ISA for a few reasons, but basically the CPU is a regular device model. It's running the kernal (they spell it with an a) ROM, and the basic ROM. I've mostly implemented the board logic and have started on the graphics, but then there's audio, interface devices, and then a mechanism for cartridge, disk, or cassette based program loading. It's a very simple computer from a modern perspective, but it still has a lot of parts. I've been ignoring timing mode for the time being. I would actually rather not check it into the main repository since that puts it more in the middle of things than it deserves or is warranted, but I thought it might be amusing/educational/interesting for other people that want to play with it. Gabe On Sun, May 10, 2020 at 11:51 PM Ciro Santilli wrote: > So this adds a new ISA is that correct? > > I say add it to the main tree, it could serve as a good small ISA example. > > Is it running ROMs fine? Is the simulation fast enough for interactive > play? Wiki says it run at 1MHz so its just about what Atomic does, so I'm > guessing it could. > > -- > *From:* Gabe Black via gem5-dev > *Sent:* Monday, May 11, 2020 1:33 AM > *To:* gem5 Developer List > *Cc:* Gabe Black > *Subject:* [gem5-dev] c64 simulation > > Hi folks. For my own amusement, I've been working on a c64 emulator based > on gem5 which can be built in using EXTRAS. Would it make sense to put that > up on gerrit somewhere in its own repository? I put what I have so far in a > directory called "toys" to make it clear it's just for fun. > > Gabe > ___ > 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 > IMPORTANT NOTICE: The contents of this email and any attachments are > confidential and may also be privileged. If you are not the intended > recipient, please notify the sender immediately and do not disclose the > contents to any other person, use it for any purpose, or store or copy the > information in any medium. Thank you. > ___ gem5-dev mailing list -- gem5-dev@gem5.org To unsubscribe send an email to gem5-dev-le...@gem5.org %(web_page_url)slistinfo%(cgiext)s/%(_internal_name)s