• Andrew Morton's avatar
    [PATCH] low-latency pagetable teardown · b4adddd6
    Andrew Morton authored
    Pagetable teardown can hold page_table_lock for extremely long periods -
    hundreds of milliseconds.  This is pretty much the final source of high
    scheduling latency in the core kernel.
    
    We fixed it for zap_page_range() by chunking the work up and dropping the
    lock occasionally if needed.  But that did not fix exit_mmap() and
    unmap_region().
    
    So what this patch does is to create an uber-zapper "unmap_vmas()" which
    provides all the vma-walking, page unmapping and low-latency lock-dropping
    which zap_page_range(), exit_mmap() and unmap_region() require.  Those three
    functions are updated to call unmap_vmas().
    
    It's actually a bit of a cleanup...
    b4adddd6
memory.c 38.5 KB