Isaac Sánchez Barrera has submitted this change. (
https://gem5-review.googlesource.com/c/public/gem5/+/32394 )
Change subject: mem-cache,python: Allow custom TLB and events in each
prefetcher.
......................................................................
mem-cache,python: Allow custom TLB and events in each prefetcher.
The `BasePrefetcher` python class had members `_events` and `_tlbs`
defined as lists, meaning that any call to `list.append` on them would
affect `_events` and `_tlbs` for all prefetchers, not just the calling
object. This change redefines them as instance members to fix the
problem.
Change-Id: I68feb1d6d78e2fa5e8775afba8c81c6dd0de6c60
Signed-off-by: Isaac Sánchez Barrera <isaac.sanc...@bsc.es>
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/32394
Maintainer: Jason Lowe-Power <power...@gmail.com>
Tested-by: kokoro <noreply+kok...@google.com>
Reviewed-by: Jason Lowe-Power <power...@gmail.com>
Reviewed-by: Nikos Nikoleris <nikos.nikole...@arm.com>
---
M src/mem/cache/prefetch/Prefetcher.py
1 file changed, 7 insertions(+), 3 deletions(-)
Approvals:
Jason Lowe-Power: Looks good to me, approved; Looks good to me, approved
Nikos Nikoleris: Looks good to me, approved
kokoro: Regressions pass
diff --git a/src/mem/cache/prefetch/Prefetcher.py
b/src/mem/cache/prefetch/Prefetcher.py
index f131ccf..c163028 100644
--- a/src/mem/cache/prefetch/Prefetcher.py
+++ b/src/mem/cache/prefetch/Prefetcher.py
@@ -80,7 +80,11 @@
use_virtual_addresses = Param.Bool(False,
"Use virtual addresses for prefetching")
- _events = []
+ def __init__(self, **kwargs):
+ super(BasePrefetcher, self).__init__(**kwargs)
+ self._events = []
+ self._tlbs = []
+
def addEvent(self, newObject):
self._events.append(newObject)
@@ -90,7 +94,7 @@
for tlb in self._tlbs:
self.getCCObject().addTLB(tlb.getCCObject())
for event in self._events:
- event.register()
+ event.register()
self.getCCObject().regProbeListeners()
def listenFromProbe(self, simObj, *probeNames):
@@ -99,7 +103,7 @@
if len(probeNames) <= 0:
raise TypeError("probeNames must have at least one element")
self.addEvent(HWPProbeEvent(self, simObj, *probeNames))
- _tlbs = []
+
def registerTLB(self, simObj):
if not isinstance(simObj, SimObject):
raise TypeError("argument must be a SimObject type")
--
To view, visit https://gem5-review.googlesource.com/c/public/gem5/+/32394
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: I68feb1d6d78e2fa5e8775afba8c81c6dd0de6c60
Gerrit-Change-Number: 32394
Gerrit-PatchSet: 4
Gerrit-Owner: Isaac Sánchez Barrera <isaac.sanc...@bsc.es>
Gerrit-Reviewer: Andreas Sandberg <andreas.sandb...@arm.com>
Gerrit-Reviewer: Isaac Sánchez Barrera <isaac.sanc...@bsc.es>
Gerrit-Reviewer: Nikos Nikoleris <nikos.nikole...@arm.com>
Gerrit-Reviewer: ZHENGRONG WANG <sea...@g.ucla.edu>
Gerrit-Reviewer: kokoro <noreply+kok...@google.com>
Gerrit-CC: Jason Lowe-Power <power...@gmail.com>
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