Luming Wang has uploaded this change for review. ( https://gem5-review.googlesource.com/c/public/gem5/+/56609 )

Change subject: arch-riscv: fix memory leak problem in page table walker
......................................................................

arch-riscv: fix memory leak problem in page table walker

Valgrind detects memory leak problems in RISC-V's page table
walker(`Walker::WalkerState::stepWalk()`). In some situation,
the response packet is not freed. This patch partially fix
these memory leak problems.

Change-Id: I86d4c69c3c502bd92856a3d8863bfa1722a94512
---
M src/arch/riscv/pagetable_walker.cc
1 file changed, 20 insertions(+), 0 deletions(-)



diff --git a/src/arch/riscv/pagetable_walker.cc b/src/arch/riscv/pagetable_walker.cc
index 81d1eb2..43adf78 100644
--- a/src/arch/riscv/pagetable_walker.cc
+++ b/src/arch/riscv/pagetable_walker.cc
@@ -426,6 +426,10 @@
         //If we didn't return, we're setting up another read.
         RequestPtr request = std::make_shared<Request>(
             nextRead, oldRead->getSize(), flags, walker->requestorId);
+
+        delete oldRead;
+        oldRead = NULL;
+
         read = new Packet(request, MemCmd::ReadReq);
         read->allocate();

@@ -501,6 +505,8 @@
         }
         sendPackets();
     } else {
+        delete pkt;
+
         sendPackets();
     }
     if (inflight == 0 && read == NULL && writes.size() == 0) {

--
To view, visit https://gem5-review.googlesource.com/c/public/gem5/+/56609
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: I86d4c69c3c502bd92856a3d8863bfa1722a94512
Gerrit-Change-Number: 56609
Gerrit-PatchSet: 1
Gerrit-Owner: Luming Wang <wlm199...@126.com>
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

Reply via email to