Re: [PATCH] add a clear_pages function to clear pages of higherorder

From: David S. Miller
Date: Thu Mar 24 2005 - 18:21:55 EST


On Thu, 24 Mar 2005 14:49:55 -0800 (PST)
Christoph Lameter <clameter@xxxxxxxxxxxx> wrote:

> On Thu, 24 Mar 2005, David S. Miller wrote:
>
> > > prep_zero_page would use a temporal clear for an order 0 page but a
> > > nontemporal clear for higher order pages.
> >
> > That sounds about right to me.
> >
> > Hmmm, I'm inspired to experiment with this on sparc64 a bit.
>
> Could you help me fix up this patch replacing the old clear_pages patch?

Sure, I'll play with it.

Meanwhile, here are some numbers. I changed just the clear_page()
implementation on sparc64 so that it used prefetching and normal
temporal stores. The machine is a uniprocessor 1.5Ghz Ultra-IIIi,
64K write-through D-cache, 64K I-cache, 1MB L2 cache. I did 4
timed 'vmlinux' builds after a fresh boot:

BEFORE:
real 9m8.720s
user 8m28.345s
sys 0m32.734s

real 9m2.034s
user 8m28.763s
sys 0m32.512s

real 9m1.848s
user 8m28.970s
sys 0m32.204s

real 9m1.701s
user 8m28.715s
sys 0m32.394s

AFTER:
real 9m2.241s
user 8m16.633s
sys 0m36.451s

real 8m53.739s
user 8m17.165s
sys 0m36.052s

real 8m54.089s
user 8m17.266s
sys 0m36.219s

real 8m54.071s
user 8m17.473s
sys 0m36.073s

So, at the very least, my results agree with D. Mosberger's on IA64.

At the cost of ~4 seconds of system time, we gain ~11 seconds of
user time.

I'm pretty much convinced this is a win. I wonder if it matters to
do something similar for copy_page*() as well.
-
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/