Re: [PATCH] use movntq version of fast_clear_page/fast_copy_page on Geode

From: Marcelo Tosatti
Date: Wed Feb 14 2007 - 15:21:29 EST


On Wed, Feb 14, 2007 at 02:55:46PM -0500, Dave Jones wrote:
> On Wed, Feb 14, 2007 at 05:08:39PM -0200, Marcelo Tosatti wrote:
> >
> > movntq instruction is supported by Geode CPU's, so use
> > fast_clear_page/fast_copy_page versions that have it.
>
> it's supported, but is it a win ?
> The same was also true of the VIA C3/C7's, but due to
> poor memory bandwidth, it turned out to be slower in most cases.

Do you have the numbers for VIA C3/C7 around?

The Geode benefits from movntq instead of movq:

[marcelo@localhost ~]$ cat /proc/cpuinfo
processor : 0
vendor_id : Geode by NSC
cpu family : 5
model : 5
model name : Geode(TM) Integrated Processor by National Semi
stepping : 2
cpu MHz : 364.898
cache size : 32 KB
...

[marcelo@localhost ~]$ wget http://www.fenrus.demon.nl/athlon.c
...

[marcelo@localhost ~]$ ./athlon
Athlon test program $Id: fast.c,v 1.6 2000/09/23 09:05:45 arjan Exp $
clear_page() tests
clear_page function 'warm up run' took 9565 cycles per page
clear_page function '2.4 non MMX' took 3347 cycles per page
clear_page function '2.4 MMX fallback' took 3389 cycles per page
clear_page function '2.4 MMX version' took 2920 cycles per page
clear_page function 'faster_clear_page' took 2912 cycles per page
clear_page function 'even_faster_clear' took 2863 cycles per page

copy_page() tests
copy_page function 'warm up run' took 9409 cycles per page
copy_page function '2.4 non MMX' took 13161 cycles per page
copy_page function '2.4 MMX fallback' took 13033 cycles per page
copy_page function '2.4 MMX version' took 9288 cycles per page
copy_page function 'faster_copy' took 9806 cycles per page
copy_page function 'even_faster' took 8990 cycles per page

-
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/