Gabe Black has submitted this change and it was merged. ( https://gem5-review.googlesource.com/6982 )

Change subject: arch,mem: Remove the default value for page size.
......................................................................

arch,mem: Remove the default value for page size.

This breaks one more architecture dependence outside of the ISAs.

Change-Id: I071f9ed73aef78e1cd1752247c183e30854b2d28
Reviewed-on: https://gem5-review.googlesource.com/6982
Maintainer: Gabe Black <[email protected]>
Reviewed-by: Alexandru Duțu <[email protected]>
Reviewed-by: Jason Lowe-Power <[email protected]>
Reviewed-by: Brandon Potter <[email protected]>
---
M src/arch/alpha/process.cc
M src/arch/arm/process.cc
M src/arch/mips/process.cc
M src/arch/power/process.cc
M src/arch/riscv/process.cc
M src/arch/sparc/process.cc
M src/arch/x86/process.cc
M src/mem/multi_level_page_table.hh
M src/mem/multi_level_page_table_impl.hh
M src/mem/page_table.hh
10 files changed, 23 insertions(+), 16 deletions(-)

Approvals:
  Jason Lowe-Power: Looks good to me, approved
  Alexandru Duțu: Looks good to me, approved
  Brandon Potter: Looks good to me, approved
  Gabe Black: Looks good to me, approved



diff --git a/src/arch/alpha/process.cc b/src/arch/alpha/process.cc
index 3cc0b0d..bcfe362 100644
--- a/src/arch/alpha/process.cc
+++ b/src/arch/alpha/process.cc
@@ -49,7 +49,8 @@
 using namespace std;

 AlphaProcess::AlphaProcess(ProcessParams *params, ObjectFile *objFile)
- : Process(params, new FuncPageTable(params->name, params->pid), objFile) + : Process(params, new FuncPageTable(params->name, params->pid, PageBytes),
+      objFile)
 {
     fatal_if(!params->useArchPT, "Arch page tables not implemented.");
     Addr brk_point = objFile->dataBase() + objFile->dataSize() +
diff --git a/src/arch/arm/process.cc b/src/arch/arm/process.cc
index b64579a..5daa54a 100644
--- a/src/arch/arm/process.cc
+++ b/src/arch/arm/process.cc
@@ -63,7 +63,8 @@

 ArmProcess::ArmProcess(ProcessParams *params, ObjectFile *objFile,
                        ObjectFile::Arch _arch)
- : Process(params, new FuncPageTable(params->name, params->pid), objFile), + : Process(params, new FuncPageTable(params->name, params->pid, PageBytes),
+              objFile),
               arch(_arch)
 {
     fatal_if(!params->useArchPT, "Arch page tables not implemented.");
diff --git a/src/arch/mips/process.cc b/src/arch/mips/process.cc
index f3b1108..76f7e86 100644
--- a/src/arch/mips/process.cc
+++ b/src/arch/mips/process.cc
@@ -50,7 +50,8 @@
 using namespace MipsISA;

 MipsProcess::MipsProcess(ProcessParams *params, ObjectFile *objFile)
- : Process(params, new FuncPageTable(params->name, params->pid), objFile) + : Process(params, new FuncPageTable(params->name, params->pid, PageBytes),
+              objFile)
 {
     fatal_if(!params->useArchPT, "Arch page tables not implemented.");
     // Set up stack. On MIPS, stack starts at the top of kuseg
diff --git a/src/arch/power/process.cc b/src/arch/power/process.cc
index 87e5bac..343cd4b 100644
--- a/src/arch/power/process.cc
+++ b/src/arch/power/process.cc
@@ -50,7 +50,8 @@
 using namespace PowerISA;

 PowerProcess::PowerProcess(ProcessParams *params, ObjectFile *objFile)
- : Process(params, new FuncPageTable(params->name, params->pid), objFile) + : Process(params, new FuncPageTable(params->name, params->pid, PageBytes),
+              objFile)
 {
     fatal_if(!params->useArchPT, "Arch page tables not implemented.");
     // Set up break point (Top of Heap)
diff --git a/src/arch/riscv/process.cc b/src/arch/riscv/process.cc
index 88a093a..44b276a 100644
--- a/src/arch/riscv/process.cc
+++ b/src/arch/riscv/process.cc
@@ -60,7 +60,9 @@
 using namespace RiscvISA;

 RiscvProcess::RiscvProcess(ProcessParams *params, ObjectFile *objFile) :
- Process(params, new FuncPageTable(params->name, params->pid), objFile)
+        Process(params, new FuncPageTable(params->name, params->pid,
+                                          PageBytes),
+                objFile)
 {
     fatal_if(!params->useArchPT, "Arch page tables not implemented.");
     const Addr stack_base = 0x7FFFFFFFFFFFFFFFL;
diff --git a/src/arch/sparc/process.cc b/src/arch/sparc/process.cc
index fe91589..59ef5c4 100644
--- a/src/arch/sparc/process.cc
+++ b/src/arch/sparc/process.cc
@@ -56,8 +56,9 @@

 SparcProcess::SparcProcess(ProcessParams *params, ObjectFile *objFile,
                            Addr _StackBias)
- : Process(params, new FuncPageTable(params->name, params->pid), objFile),
-              StackBias(_StackBias)
+ : Process(params, new FuncPageTable(params->name, params->pid, PageBytes),
+              objFile),
+      StackBias(_StackBias)
 {
     fatal_if(!params->useArchPT, "Arch page tables not implemented.");
     // Initialize these to 0s
diff --git a/src/arch/x86/process.cc b/src/arch/x86/process.cc
index f11cc34..bea002d 100644
--- a/src/arch/x86/process.cc
+++ b/src/arch/x86/process.cc
@@ -101,9 +101,10 @@
     : Process(params, params->useArchPT ?
                       static_cast<PageTableBase *>(
                               new ArchPageTable(params->name, params->pid,
-                                                params->system)) :
+ params->system, PageBytes)) :
                       static_cast<PageTableBase *>(
- new FuncPageTable(params->name, params->pid)),
+                              new FuncPageTable(params->name, params->pid,
+                                                PageBytes)),
               objFile),
       syscallDescs(_syscallDescs), numSyscallDescs(_numSyscallDescs)
 {
diff --git a/src/mem/multi_level_page_table.hh b/src/mem/multi_level_page_table.hh
index 402c371..0e079b7 100644
--- a/src/mem/multi_level_page_table.hh
+++ b/src/mem/multi_level_page_table.hh
@@ -140,7 +140,7 @@

 public:
     MultiLevelPageTable(const std::string &__name, uint64_t _pid,
-                        System *_sys);
+                        System *_sys, Addr pageSize);
     ~MultiLevelPageTable();

     void initState(ThreadContext* tc) override;
diff --git a/src/mem/multi_level_page_table_impl.hh b/src/mem/multi_level_page_table_impl.hh
index 7cd32db..4ff5f5c 100644
--- a/src/mem/multi_level_page_table_impl.hh
+++ b/src/mem/multi_level_page_table_impl.hh
@@ -46,8 +46,9 @@

 template <class ISAOps>
 MultiLevelPageTable<ISAOps>::MultiLevelPageTable(const std::string &__name,
- uint64_t _pid, System *_sys)
-    : PageTableBase(__name, _pid), system(_sys),
+ uint64_t _pid, System *_sys,
+                                                 Addr pageSize)
+    : PageTableBase(__name, _pid, pageSize), system(_sys),
     logLevelSize(PageTableLayout),
     numLevels(logLevelSize.size())
 {
diff --git a/src/mem/page_table.hh b/src/mem/page_table.hh
index 883b47c..f784b21 100644
--- a/src/mem/page_table.hh
+++ b/src/mem/page_table.hh
@@ -73,8 +73,7 @@

   public:

-    PageTableBase(const std::string &__name, uint64_t _pid,
-              Addr _pageSize = TheISA::PageBytes)
+    PageTableBase(const std::string &__name, uint64_t _pid, Addr _pageSize)
             : pageSize(_pageSize), offsetMask(mask(floorLog2(_pageSize))),
               pid(_pid), _name(__name)
     {
@@ -211,8 +210,7 @@

   public:

-    FuncPageTable(const std::string &__name, uint64_t _pid,
-                  Addr _pageSize = TheISA::PageBytes);
+ FuncPageTable(const std::string &__name, uint64_t _pid, Addr _pageSize);

     ~FuncPageTable();


--
To view, visit https://gem5-review.googlesource.com/6982
To unsubscribe, or for help writing mail filters, visit https://gem5-review.googlesource.com/settings

Gerrit-Project: public/gem5
Gerrit-Branch: master
Gerrit-MessageType: merged
Gerrit-Change-Id: I071f9ed73aef78e1cd1752247c183e30854b2d28
Gerrit-Change-Number: 6982
Gerrit-PatchSet: 5
Gerrit-Owner: Gabe Black <[email protected]>
Gerrit-Assignee: Nikos Nikoleris <[email protected]>
Gerrit-Reviewer: Alexandru Duțu <[email protected]>
Gerrit-Reviewer: Andreas Sandberg <[email protected]>
Gerrit-Reviewer: Brandon Potter <[email protected]>
Gerrit-Reviewer: Gabe Black <[email protected]>
Gerrit-Reviewer: Jason Lowe-Power <[email protected]>
Gerrit-CC: Nikos Nikoleris <[email protected]>
_______________________________________________
gem5-dev mailing list
[email protected]
http://m5sim.org/mailman/listinfo/gem5-dev

Reply via email to