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

Robert Watson rwatson at FreeBSD.org
Sun Apr 19 20:19:15 UTC 2009


Author: rwatson
Date: Sun Apr 19 20:19:13 2009
New Revision: 191276
URL: http://svn.freebsd.org/changeset/base/191276

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).
  
  MFC after:	2 weeks
  Discussed on:   arch@

Modified:
  head/sys/amd64/include/param.h
  head/sys/arm/include/param.h
  head/sys/i386/include/param.h
  head/sys/ia64/include/param.h
  head/sys/mips/include/param.h
  head/sys/powerpc/include/param.h
  head/sys/sparc64/include/param.h
  head/sys/sun4v/include/param.h

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)
 
 /* Size of the level 1 page table units */
 #define NPTEPG		(PAGE_SIZE/(sizeof (pt_entry_t)))

Modified: head/sys/arm/include/param.h
==============================================================================
--- head/sys/arm/include/param.h	Sun Apr 19 18:23:23 2009	(r191275)
+++ head/sys/arm/include/param.h	Sun Apr 19 20:19:13 2009	(r191276)
@@ -81,6 +81,11 @@
 #define	ALIGNBYTES	_ALIGNBYTES
 #define	ALIGN(p)	_ALIGN(p)
 
+#ifndef CACHE_LINE_SHIFT
+#define	CACHE_LINE_SHIFT	6
+#endif
+#define	CACHE_LINE_SIZE		(1 << CACHE_LINE_SHIFT)
+
 #define	PAGE_SHIFT	12
 #define	PAGE_SIZE	(1 << PAGE_SHIFT)	/* Page size */
 #define	PAGE_MASK	(PAGE_SIZE - 1)

Modified: head/sys/i386/include/param.h
==============================================================================
--- head/sys/i386/include/param.h	Sun Apr 19 18:23:23 2009	(r191275)
+++ head/sys/i386/include/param.h	Sun Apr 19 20:19:13 2009	(r191276)
@@ -74,6 +74,11 @@
 #define ALIGNBYTES	_ALIGNBYTES
 #define ALIGN(p)	_ALIGN(p)
 
+#ifndef CACHE_LINE_SHIFT
+#define	CACHE_LINE_SHIFT	6
+#endif
+#define	CACHE_LINE_SIZE		(1 << CACHE_LINE_SHIFT)
+
 #define PAGE_SHIFT	12		/* LOG2(PAGE_SIZE) */
 #define PAGE_SIZE	(1<<PAGE_SHIFT)	/* bytes/page */
 #define PAGE_MASK	(PAGE_SIZE-1)

Modified: head/sys/ia64/include/param.h
==============================================================================
--- head/sys/ia64/include/param.h	Sun Apr 19 18:23:23 2009	(r191275)
+++ head/sys/ia64/include/param.h	Sun Apr 19 20:19:13 2009	(r191276)
@@ -99,6 +99,11 @@
 #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)
+
 #ifndef LOG2_PAGE_SIZE
 #define	LOG2_PAGE_SIZE		13		/* 8K pages by default. */
 #endif

Modified: head/sys/mips/include/param.h
==============================================================================
--- head/sys/mips/include/param.h	Sun Apr 19 18:23:23 2009	(r191275)
+++ head/sys/mips/include/param.h	Sun Apr 19 20:19:13 2009	(r191276)
@@ -89,6 +89,11 @@
 #define	ALIGNBYTES	_ALIGNBYTES
 #define	ALIGN(p)	_ALIGN(p)
 
+#ifndef CACHE_LINE_SHIFT
+#define	CACHE_LINE_SHIFT	6
+#endif
+#define	CACHE_LINE_SIZE		(1 << CACHE_LINE_SHIFT)
+
 #define	NBPG		4096		/* bytes/page */
 #define	PGOFSET		(NBPG-1)	/* byte offset into page */
 #define	PGSHIFT		12		/* LOG2(NBPG) */

Modified: head/sys/powerpc/include/param.h
==============================================================================
--- head/sys/powerpc/include/param.h	Sun Apr 19 18:23:23 2009	(r191275)
+++ head/sys/powerpc/include/param.h	Sun Apr 19 20:19:13 2009	(r191276)
@@ -79,6 +79,11 @@
 #define	ALIGNBYTES	_ALIGNBYTES
 #define	ALIGN(p)	_ALIGN(p)
 
+#ifndef CACHE_LINE_SHIFT
+#define	CACHE_LINE_SHIFT	7
+#endif
+#define	CACHE_LINE_SIZE		(1 << CACHE_LINE_SHIFT)
+
 #define	PAGE_SHIFT	12
 #define	PAGE_SIZE	(1 << PAGE_SHIFT)	/* Page size */
 #define	PAGE_MASK	(PAGE_SIZE - 1)

Modified: head/sys/sparc64/include/param.h
==============================================================================
--- head/sys/sparc64/include/param.h	Sun Apr 19 18:23:23 2009	(r191275)
+++ head/sys/sparc64/include/param.h	Sun Apr 19 20:19:13 2009	(r191276)
@@ -71,6 +71,11 @@
 #define ALIGNBYTES	_ALIGNBYTES
 #define ALIGN(p)	_ALIGN(p)
 
+#ifndef CACHE_LINE_SHIFT
+#define	CACHE_LINE_SHIFT	6
+#endif
+#define	CACHE_LINE_SIZE		(1 << CACHE_LINE_SHIFT)
+
 #define	PAGE_SHIFT_8K	13
 #define	PAGE_SIZE_8K	(1L<<PAGE_SHIFT_8K)
 #define	PAGE_MASK_8K	(PAGE_SIZE_8K-1)

Modified: head/sys/sun4v/include/param.h
==============================================================================
--- head/sys/sun4v/include/param.h	Sun Apr 19 18:23:23 2009	(r191275)
+++ head/sys/sun4v/include/param.h	Sun Apr 19 20:19:13 2009	(r191276)
@@ -71,6 +71,11 @@
 #define ALIGNBYTES	_ALIGNBYTES
 #define ALIGN(p)	_ALIGN(p)
 
+#ifndef CACHE_LINE_SHIFT
+#define	CACHE_LINE_SHIFT	6
+#endif
+#define	CACHE_LINE_SIZE		(1 << CACHE_LINE_SHIFT)
+
 #define	PAGE_SHIFT_8K	13
 #define	PAGE_SIZE_8K	(1L<<PAGE_SHIFT_8K)
 #define	PAGE_MASK_8K	(PAGE_SIZE_8K-1)


More information about the svn-src-head mailing list