Simple #define for cache line size

Alexander Leidinger Alexander at Leidinger.net
Tue Apr 14 07:16:11 PDT 2009


Quoting Marko Zec <zec at freebsd.org> (from Tue, 14 Apr 2009 08:42:46 +0200):

> On Monday 13 April 2009 23:01:23 Ivan Voras wrote:
>> Robert Watson wrote:
>> > --- i386/include/param.h    (revision 190941)
>> > +++ i386/include/param.h    (working copy)
>> > @@ -74,6 +74,10 @@
>> >  #define ALIGNBYTES    _ALIGNBYTES
>> >  #define ALIGN(p)    _ALIGN(p)
>> >
>> > +#ifndef CACHE_LINE_SIZE
>> > +#define    CACHE_LINE_SIZE    64
>> > +#endif
>>
>> Wouldn't it be better to continue the
>>
>> cpu             I486_CPU
>> cpu             I586_CPU
>> cpu             I686_CPU
>>
>> series of defines in kernel configuration and define alignment per
>> CPU architecture?
>
> We would have to extend our notion of "CPU architecture" for that to
> make sense.  For example, Pentium Pro / II CPUs had cache line size of
> 32 bytes, Intel Netburst CPUs (all Pentium-4 and Xeons of the time)
> have / had 128 bytes, while Pentium-III, Pentium-M and later Core CPUs
> have 64 bytes.  They are all I686_CPU in our view.

I missed the beginning of the discussion. AFAIR we had some code which  
determined the cache parameters at run time at least on i386. It may  
be the case that this was removed when the VM system changed to not  
need the page coloring we had. If this is the case, it may be  
beneficial to look up the VCS history and resurrect this.

Bye,
Alexander.

-- 
These days the necessities of life cost you about three times what
they used to, and half the time they aren't even fit to drink.

http://www.Leidinger.net    Alexander @ Leidinger.net: PGP ID = B0063FE7
http://www.FreeBSD.org       netchild @ FreeBSD.org  : PGP ID = 72077137


More information about the freebsd-arch mailing list