-
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