Gabe Black has submitted this change. (
https://gem5-review.googlesource.com/c/public/gem5/+/50339 )
3 is the latest approved patch-set.
No files were changed between the latest approved patch-set and the
submitted one.
Change subject: sim: Make the page shift a member of the MemPool class.
......................................................................
sim: Make the page shift a member of the MemPool class.
Pass it in through the constructor, rather than have the MemPool call
into the System object every time it needs the page shift. This is
simpler, more efficient, and removes a dependency between the MemPool
class and the System class.
Change-Id: I059bcb0db249251b32bff1beba3eadfe306d9081
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/50339
Reviewed-by: Matthew Poremba <[email protected]>
Maintainer: Gabe Black <[email protected]>
Tested-by: kokoro <[email protected]>
---
M src/sim/mem_pool.cc
M src/sim/mem_pool.hh
M src/sim/system.cc
3 files changed, 14 insertions(+), 13 deletions(-)
Approvals:
Matthew Poremba: Looks good to me, approved
Gabe Black: Looks good to me, approved
kokoro: Regressions pass
diff --git a/src/sim/mem_pool.cc b/src/sim/mem_pool.cc
index 2614ad5..f568e28 100644
--- a/src/sim/mem_pool.cc
+++ b/src/sim/mem_pool.cc
@@ -33,14 +33,14 @@
#include "sim/mem_pool.hh"
-#include "sim/system.hh"
+#include "base/logging.hh"
namespace gem5
{
-MemPool::MemPool(System *system, Addr ptr, Addr limit)
- : sys(system), freePageNum(ptr >> sys->getPageShift()),
- _totalPages(limit >> sys->getPageShift())
+MemPool::MemPool(Addr page_shift, Addr ptr, Addr limit)
+ : pageShift(page_shift), freePageNum(ptr >> page_shift),
+ _totalPages(limit >> page_shift)
{
}
@@ -59,7 +59,7 @@
Addr
MemPool::freePageAddr() const
{
- return freePageNum << sys->getPageShift();
+ return freePageNum << pageShift;
}
Counter
@@ -83,19 +83,19 @@
Addr
MemPool::allocatedBytes() const
{
- return allocatedPages() << sys->getPageShift();
+ return allocatedPages() << pageShift;
}
Addr
MemPool::freeBytes() const
{
- return freePages() << sys->getPageShift();
+ return freePages() << pageShift;
}
Addr
MemPool::totalBytes() const
{
- return totalPages() << sys->getPageShift();
+ return totalPages() << pageShift;
}
Addr
diff --git a/src/sim/mem_pool.hh b/src/sim/mem_pool.hh
index e8bd439..49523f4 100644
--- a/src/sim/mem_pool.hh
+++ b/src/sim/mem_pool.hh
@@ -45,7 +45,7 @@
class MemPool
{
private:
- System *sys;
+ Addr pageShift;
/** Page number to free memory. */
Counter freePageNum;
@@ -54,7 +54,7 @@
Counter _totalPages;
public:
- MemPool(System *system, Addr ptr, Addr limit);
+ MemPool(Addr page_shift, Addr ptr, Addr limit);
Counter freePage() const;
void setFreePage(Counter value);
diff --git a/src/sim/system.cc b/src/sim/system.cc
index 299ba66..3895276 100644
--- a/src/sim/system.cc
+++ b/src/sim/system.cc
@@ -236,9 +236,10 @@
if (_m5opRange.valid()) {
// Make sure the m5op range is not included.
for (const auto &range: mem.exclude({_m5opRange}))
- memPools.emplace_back(this, range.start(),
range.end());
+ memPools.emplace_back(getPageShift(),
+ range.start(), range.end());
} else {
- memPools.emplace_back(this, mem.start(), mem.end());
+ memPools.emplace_back(getPageShift(), mem.start(),
mem.end());
}
}
@@ -468,7 +469,7 @@
assert(ptrs.size() == limits.size());
for (size_t i = 0; i < ptrs.size(); i++)
- memPools.emplace_back(this, ptrs[i], limits[i]);
+ memPools.emplace_back(getPageShift(), ptrs[i], limits[i]);
// also unserialize the memories in the system
physmem.unserializeSection(cp, "physmem");
--
To view, visit https://gem5-review.googlesource.com/c/public/gem5/+/50339
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: I059bcb0db249251b32bff1beba3eadfe306d9081
Gerrit-Change-Number: 50339
Gerrit-PatchSet: 6
Gerrit-Owner: Gabe Black <[email protected]>
Gerrit-Reviewer: Alex Dutu <[email protected]>
Gerrit-Reviewer: Gabe Black <[email protected]>
Gerrit-Reviewer: Jason Lowe-Power <[email protected]>
Gerrit-Reviewer: Matthew Poremba <[email protected]>
Gerrit-Reviewer: kokoro <[email protected]>
Gerrit-MessageType: merged
_______________________________________________
gem5-dev mailing list -- [email protected]
To unsubscribe send an email to [email protected]
%(web_page_url)slistinfo%(cgiext)s/%(_internal_name)s