Date: Thu, 15 Jun 1995 16:34:01 +0200 From: Torbjorn Granlund <tege@matematik.su.se> To: hackers@freebsd.org Cc: sef@cygnus.com Subject: Poor store performance with Pentium Message-ID: <199506151434.OAA04557@insanus.matematik.su.se>
next in thread | raw e-mail | index | archive | help
I am exploring the Pentium pipeline, in preparation for optimizing GCC for
Pentium. I just ran into something very weird with the performance of loads
and stores.
The loop in below takes 28 cycles/iteration if READ is undefined, and the
expected 4 cycles if READ is defined. (The nops are irrelevant, but are
needed in my accurate timing setup.)
The only explanation I can think of to the poor write performance is that
the cache is in write-through mode, not write-back mode.
Does FreeBSD 2.x have support for setting the Pentium data cache in
write-back mode? If it doesn't, could somebody with a good understanding of
the relevant components in the kernel outline the issues involved, and what
I would have to modify in order to enable write-back.
Torbjorn
.text
.align 2
.globl _f
.type _f,@function
_f:
movl 4(%esp),%edx
movl $99999999,%eax
.align 2,0x90
L2:
nop
nop
#if READ
movl (%edx),%ecx
movl 4(%edx),%ecx
movl 8(%edx),%ecx
movl 12(%edx),%ecx
#else
movl %ecx,(%edx)
movl %ecx,4(%edx)
movl %ecx,8(%edx)
movl %ecx,12(%edx)
#endif
decl %eax
jg L2
ret
Lfe1:
.size _f,Lfe1-_f
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199506151434.OAA04557>
