ARM3 paging - the beginning

Activity

CR-59 64

Keyboard shortcuts  
  • Summarize the review outcomes (optional)
     
    #permalink

    Details

    Warning: no files are visible, they have all been filtered.
    Participant Role Time Spent Comments Latest Comment
    Author & Moderator 1h 49m 30 facepalm
    Reviewer - 0% reviewed 5m    
    Reviewer - 0% reviewed 1h 59m 7 I suggest an ASSERT and one level of indentation less.
    Reviewer - 50% reviewed 1h 51m 24 I'm referring to the return, not the bug check
    Reviewer - 0% reviewed      
    Reviewer - 0% reviewed      
    Reviewer - 16% reviewed 9m 2 zefklop: Was this patch committed?
    Huw
    Reviewer - 100% reviewed 1h 7m 1 I can only guess it's related to Cache colouring, of whic...
    Total   6h 59m 64  
    #permalink

    Objectives

    The goal of this review is to get a bit more sense into what's happening now with regard to paging.

    This is a first shot at getting something on the ARM3 side. Right now, only shared memory (aka pagefile-sections) and pages pool is supported.
    Architecturally, we get two thread:

    • The balancer thread, being more or less a huge hack working around the lack of working set support, woken up every other second and sweeping over all paged pool addresses, ageing the pages accordingly. The code speaks for itself.
    • The page writer thread, where the pages are actually written out to disk. For now, it's woken up each time a page is added to the ModifiedWrite list, but in fact it should be only woken up when there are pages ready and we are in a low memory situation. (for now, I kept it like this for testing purpose)


    The rest is the page fault handler and proper clean-up when unmapping/freeing memory, so there is nothing much to say about it.

    As always, I'd like to have some hints at what you think of the architecture, code quality, potential races, etc.

    Branches in review

    #permalink

    Issues Raised From Comments

    Key Summary State Assignee
    #permalink

    General Comments

    zefklop

    Second iteration of the patch with improvements from previous comments.

    Second iteration of the patch with improvements from previous comments.

    HBelusca

    zefklop: Was this patch committed?

    zefklop: Was this patch committed?

    /ntoskrnl/include/internal/mm.h Changed   5
    Open in IDE #permalink
    /ntoskrnl/mm/ARM3/miarm.h Changed  
    Open in IDE #permalink
    /ntoskrnl/mm/ARM3/pagfault.c Changed   5
    Open in IDE #permalink
    /ntoskrnl/mm/ARM3/pfnlist.c Changed   8
    Open in IDE #permalink
    /ntoskrnl/mm/ARM3/section.c Changed   6
    Open in IDE #permalink
    /ntoskrnl/mm/ARM3/virtual.c Changed  
    Open in IDE #permalink
    /ntoskrnl/mm/balance.c Changed   3
    Open in IDE #permalink
    /ntoskrnl/mm/mminit.c Changed   6
    Open in IDE #permalink
    /ntoskrnl/mm/pagefile.c Changed   29
    Open in IDE #permalink
    /ntoskrnl/include/internal/mm.h Changed  
    Open in IDE #permalink
    /ntoskrnl/mm/ARM3/miarm.h Changed  
    Open in IDE #permalink
    /ntoskrnl/mm/ARM3/pagfault.c Changed  
    Open in IDE #permalink
    /ntoskrnl/mm/ARM3/pfnlist.c Changed  
    Open in IDE #permalink
    /ntoskrnl/mm/ARM3/section.c Changed  
    Open in IDE #permalink
    /ntoskrnl/mm/ARM3/virtual.c Changed  
    Open in IDE #permalink
    /ntoskrnl/mm/balance.c Changed  
    Open in IDE #permalink
    /ntoskrnl/mm/mminit.c Changed  
    Open in IDE #permalink
    /ntoskrnl/mm/pagefile.c Changed  
    Open in IDE #permalink

    Review updated: Reload | Ignore | Collapse

    You cannot reload the review while writing a comment.

    Log time against