Messages in this thread | | | Date | Fri, 24 Dec 2004 08:01:30 +1100 | From | Paul Mackerras <> | Subject | Re: Prezeroing V2 [0/3]: Why and When it works |
| |
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 from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |