-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
http://reviews.gem5.org/r/2312/#review5188
-----------------------------------------------------------


In general, I like the idea of having a proper, architected, page table in 
SE-mode. Long-term, this could hopefully mean that we can get rid of many of 
the differences between SE- and FS-mode.

High-level comments:

* Write a proper commit message (see http://www.m5sim.org/Commit_Access). 
Specifically, include a short one-line summary and a longer description of what 
the patch does and why. There is currently now way of telling what this patch 
intends to accomplish.

* Don't set the execute bit on src/sim/SConscript.

* Split into an architecture-agnostic patch and an x86-specific patch.



src/mem/multi_level_page_table.hh
<http://reviews.gem5.org/r/2312/#comment4744>

    Please focus on what the class does instead of where it is intended to be 
used. I'd write the description along these lines:
    
    "This class implements an in-memory page table that follows the x86 page 
table specification. This can used instead of the PageTable class in SE mode to 
allow CPU models (mainly the X86KvmCPU) to do a normal page table walk.
    
    @see Link to suitable documentation
    "
    



src/mem/multi_level_page_table_impl.hh
<http://reviews.gem5.org/r/2312/#comment4737>

    This method is identical to map() with the exception of the parameter to 
setPTEFields. Please create a separate helper method that is used by moth map() 
and mapNotPresent().



src/mem/page_table.hh
<http://reviews.gem5.org/r/2312/#comment4738>

    Since you need to make the PageTable class a base class, could you also 
take the opportunity to redesign it slightly to make it more obvious what's 
going on here?
    
    Specifically, I'd like to see a design with these classes:
    
    PageTableBase - Should declare the interface used by all page table 
implementations. Methods like map/remap/unmap/etc. should be purely virtual. 
This might be a good place to document what the arch-specific page tables are 
meant to do
    
    SEPageTable (or some other sensible name) - Inherits from PageTableBase and 
implements the page table functionality currently in PageTable.
    
    NoArchPageTable (& and arch-specific ones) - Inherit from PageTableBase.



src/sim/Process.py
<http://reviews.gem5.org/r/2312/#comment4745>

    Re-phrase this, I hardly get what this means even after reading the rest of 
the patch. What your patch is doing is really to maintain an in-memory version 
of the page table in the architecture-specific format. Make sure that's clear 
from the description. You could use something like this:
    
    "maintain an in-memory version of the page table in an 
architecture-specific format"
    


- Andreas Sandberg


On July 11, 2014, 5:57 p.m., Alexandru Dutu wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> http://reviews.gem5.org/r/2312/
> -----------------------------------------------------------
> 
> (Updated July 11, 2014, 5:57 p.m.)
> 
> 
> Review request for Default.
> 
> 
> Repository: gem5
> 
> 
> Description
> -------
> 
> Changeset 10253:359daed0c723
> ---------------------------
> Multi-level page table class.
> This is part of the larger effort of supporting virtualized execution in SE 
> mode.
> 
> 
> Diffs
> -----
> 
>   src/arch/alpha/process.hh c625a3c51bac050879457e666dd83299a36d761b 
>   src/arch/arm/process.hh c625a3c51bac050879457e666dd83299a36d761b 
>   src/arch/mips/process.hh c625a3c51bac050879457e666dd83299a36d761b 
>   src/arch/power/process.hh c625a3c51bac050879457e666dd83299a36d761b 
>   src/arch/sparc/process.hh c625a3c51bac050879457e666dd83299a36d761b 
>   src/arch/x86/pagetable.hh c625a3c51bac050879457e666dd83299a36d761b 
>   src/arch/x86/pagetable_walker.cc c625a3c51bac050879457e666dd83299a36d761b 
>   src/arch/x86/process.hh c625a3c51bac050879457e666dd83299a36d761b 
>   src/arch/x86/system.hh c625a3c51bac050879457e666dd83299a36d761b 
>   src/mem/SConscript c625a3c51bac050879457e666dd83299a36d761b 
>   src/mem/multi_level_page_table.hh PRE-CREATION 
>   src/mem/multi_level_page_table.cc PRE-CREATION 
>   src/mem/multi_level_page_table_impl.hh PRE-CREATION 
>   src/mem/page_table.hh c625a3c51bac050879457e666dd83299a36d761b 
>   src/sim/Process.py c625a3c51bac050879457e666dd83299a36d761b 
>   src/sim/SConscript c625a3c51bac050879457e666dd83299a36d761b 
>   src/sim/process.hh c625a3c51bac050879457e666dd83299a36d761b 
>   src/sim/process.cc c625a3c51bac050879457e666dd83299a36d761b 
> 
> Diff: http://reviews.gem5.org/r/2312/diff/
> 
> 
> Testing
> -------
> 
> Regressions passed.
> 
> 
> Thanks,
> 
> Alexandru Dutu
> 
>

_______________________________________________
gem5-dev mailing list
gem5-dev@gem5.org
http://m5sim.org/mailman/listinfo/gem5-dev

Reply via email to