Re: MMX bzero of a page...

Jakub Jelinek (jj@sunsite.ms.mff.cuni.cz)
Thu, 12 Mar 1998 08:23:50 +0100 (MET)


> > Look into the btfixup mechanism the 32-bit sparc port now uses in the
> > vger CVS sources. You can have multiple memcpy/memset
> > etc. implementations, pick the one which performs best at boot time,
> > and make it zero cost.
>
> Ahh, cute! (You sparc guys seem to come up with the most fascinating
> code.) On intel's we can get away with self modifying code which is a
> bit easier, though. I never thought I'd be endorsing the use of self
> modifying code... oh well ;-)

Actually, btfixup is self-modifying code, but the modification is done at
boot time and then are all I-caches flushed. From that time the kernel code
does not change.
We needed it a lot - sparc32 has two completely incompatible mmus, 3
incompatible IRQ handlings, etc. - and all that is done by one single image
kernel. We used indirect calls before, but it was way slower.

Cheers,
Jakub
___________________________________________________________________
Jakub Jelinek | jj@sunsite.mff.cuni.cz | http://sunsite.mff.cuni.cz
Administrator of SunSITE Czech Republic, MFF, Charles University
___________________________________________________________________
Ultralinux - first 64bit OS to take full power of the UltraSparc
Linux version 2.1.89 on a sparc64 machine (498.80 BogoMips).
___________________________________________________________________

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu