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>