Re: Prezeroing V2 [0/3]: Why and When it works
From: Paul Mackerras <hidden>
Date: 2004-12-23 21:01:37
Also in:
lkml
Christoph Lameter writes:
The most expensive operation in the page fault handler is (apart of SMP locking overhead) the zeroing of the page. This zeroing means that all cachelines of the faulted page (on Altix that means all 128 cachelines of 128 byte each) must be loaded and later written back. This patch allows to avoid having to load all cachelines if only a part of the cachelines of that page is needed immediately after the fault.
On ppc64 we avoid having to zero newly-allocated page table pages by using a slab cache for them, with a constructor function that zeroes them. Page table pages naturally end up being full of zeroes when they are freed, since ptep_get_and_clear, pmd_clear or pgd_clear has been used on every non-zero entry by that stage. Thus there is no extra work required either when allocating them or freeing them. I don't see any point in your patches for systems which don't have some magic hardware for zeroing pages. Your patch seems like a lot of extra code that only benefits a very small number of machines. Paul. -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@kvack.org. For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: <a href=mailto:"aart@kvack.org"> aart@kvack.org </a>