diff options
author | Ali Saidi <saidi@eecs.umich.edu> | 2007-04-04 13:56:38 -0400 |
---|---|---|
committer | Ali Saidi <saidi@eecs.umich.edu> | 2007-04-04 13:56:38 -0400 |
commit | d0ea8ff08849f45196fa6c8d69d5a408d9cbbafd (patch) | |
tree | 5fba9c44fb5e1072524963b82aabf0ef1cd51632 /src/mem/cache | |
parent | c46e946c94cf730bd2c22de27d3af43955b63ba9 (diff) | |
download | gem5-d0ea8ff08849f45196fa6c8d69d5a408d9cbbafd.tar.xz |
The MemoryObject tha owns a port should delete it if it so chooses when deletePortRefs() is called on it with that port as a parameter.
In this way a MemoryObject can keep a functional port around and give it to anyone who wants to do functional accesses rather
than creating a new one each time.
src/mem/bus.cc:
src/mem/bus.hh:
src/mem/cache/cache_impl.hh:
only keep around one func port we give to anyone who wants it. Otherwise we can run out of port ids reasonably quickly if
a lot of functional accesses are happening (e.g. remote debugging, dprintk, etc)
--HG--
extra : convert_revision : 6a9e3e96f51cedaab6de1b36cf317203899a3716
Diffstat (limited to 'src/mem/cache')
-rw-r--r-- | src/mem/cache/cache_impl.hh | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/src/mem/cache/cache_impl.hh b/src/mem/cache/cache_impl.hh index ec0ef1be4..0a528aa5d 100644 --- a/src/mem/cache/cache_impl.hh +++ b/src/mem/cache/cache_impl.hh @@ -1183,7 +1183,8 @@ Cache<TagStore,Coherence>::deletePortRefs(Port *p) { if (cpuSidePort == p || memSidePort == p) panic("Can only delete functional ports\n"); - // nothing else to do + + delete p; } |