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