Re: Prezeroing V2 [0/3]: Why and When it works

From: Andi Kleen
Date: Thu Dec 23 2004 - 15:28:38 EST


Christoph Lameter <clameter@xxxxxxx> writes:
> and why other approaches have not worked.
> o Instead of zero_page(p,order) extend clear_page to take second argument
> o Update all architectures to accept second argument for clear_pages

Sorry if there was a miscommunication, but ...
> 1. Aggregating zeroing operations to only apply to pages of higher order,
> which results in many pages that will later become order 0 to be
> zeroed in one go. For that purpose the existing clear_page function is
> extended and made to take an additional argument specifying the order of
> the page to be cleared.

But if you do that you should really use a separate function that
can use cache bypassing stores.

Normal clear_page cannot use that because it would be a loss
when the data is soon used.

So the two changes don't really make sense.

Also I must say I'm still suspicious regarding your heuristic
to trigger gang faulting - with bad luck it could lead to a lot
more memory usage to specific applications that do very sparse
usage of memory.

There should be at least an madvise flag to turn it off and a sysctl
and it would be better to trigger only on a longer sequence of
consecutive faulted pages.


> 2. Hardware support for offloading zeroing from the cpu. This avoids
> the invalidation of the cpu caches by extensive zeroing operations.
>
> The result is a significant increase of the page fault performance even for
> single threaded applications:
[...]

How about some numbers on i386?


-Andi
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/