svn commit: r191276 - in head/sys: amd64/include arm/include i386/include ia64/include mips/include powerpc/include sparc64/include sun4v/include

Bruce Evans brde at optusnet.com.au
Mon Apr 20 08:00:13 UTC 2009


On Sun, 19 Apr 2009, Robert Watson wrote:

> Log:
>  For each architecture, define CACHE_LINE_SHIFT and a derived
>  CACHE_LINE_SIZE constant.  These constants are intended to
>  over-estimate the cache line size, and be used at compile-time
>  when a run-time tuning alternative isn't appropriate or
>  available.
>
>  Defaults for all architectures are 64 bytes, except powerpc
>  where it is 128 bytes (used on G5 systems).
> ...
> Modified: head/sys/amd64/include/param.h
> ==============================================================================
> --- head/sys/amd64/include/param.h	Sun Apr 19 18:23:23 2009	(r191275)
> +++ head/sys/amd64/include/param.h	Sun Apr 19 20:19:13 2009	(r191276)
> @@ -89,6 +89,10 @@
> #define	ALIGN(p)		_ALIGN(p)
> #define	ALIGNED_POINTER(p,t)	_ALIGNED_POINTER(p,t)
>
> +#ifndef CACHE_LINE_SHIFT
> +#define	CACHE_LINE_SHIFT	6
> +#endif
> +#define	CACHE_LINE_SIZE		(1 << CACHE_LINE_SHIFT)

This still has the bogus ifdef.  Overriding the definition is difficult
to do consistently even in a kernel with no modules, since CACHE_LINE_SIZE
is not a kernel option.  Overriding the definition makes negative sense
since the value is a maximum-maximum (possibly larger than strictly needed)
so that it can be constant.

Bruce


More information about the svn-src-head mailing list