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)
_______________________________________________
svn-src-all@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"

Reply via email to