diff options
author | rwatson <rwatson@FreeBSD.org> | 2009-04-19 20:19:13 +0000 |
---|---|---|
committer | rwatson <rwatson@FreeBSD.org> | 2009-04-19 20:19:13 +0000 |
commit | 8df790f38fc6501dadb8302ef4a236525bb7d2c4 (patch) | |
tree | 30f708f0df558e2567b5c3f03e96c6e13b769058 | |
parent | 293f0e00a8f2ff1afb964eb68e56e4ec5a140506 (diff) | |
download | FreeBSD-src-8df790f38fc6501dadb8302ef4a236525bb7d2c4.zip FreeBSD-src-8df790f38fc6501dadb8302ef4a236525bb7d2c4.tar.gz |
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@
-rw-r--r-- | sys/amd64/include/param.h | 4 | ||||
-rw-r--r-- | sys/arm/include/param.h | 5 | ||||
-rw-r--r-- | sys/i386/include/param.h | 5 | ||||
-rw-r--r-- | sys/ia64/include/param.h | 5 | ||||
-rw-r--r-- | sys/mips/include/param.h | 5 | ||||
-rw-r--r-- | sys/powerpc/include/param.h | 5 | ||||
-rw-r--r-- | sys/sparc64/include/param.h | 5 | ||||
-rw-r--r-- | sys/sun4v/include/param.h | 5 |
8 files changed, 39 insertions, 0 deletions
diff --git a/sys/amd64/include/param.h b/sys/amd64/include/param.h index 82e439f..7cf1286 100644 --- a/sys/amd64/include/param.h +++ b/sys/amd64/include/param.h @@ -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))) diff --git a/sys/arm/include/param.h b/sys/arm/include/param.h index 8fb8555..6e3ee59 100644 --- a/sys/arm/include/param.h +++ b/sys/arm/include/param.h @@ -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) diff --git a/sys/i386/include/param.h b/sys/i386/include/param.h index 265337a..d9a3cda 100644 --- a/sys/i386/include/param.h +++ b/sys/i386/include/param.h @@ -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) diff --git a/sys/ia64/include/param.h b/sys/ia64/include/param.h index acea690..f9a9c4a 100644 --- a/sys/ia64/include/param.h +++ b/sys/ia64/include/param.h @@ -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 diff --git a/sys/mips/include/param.h b/sys/mips/include/param.h index 5acdfdf..55f877f 100644 --- a/sys/mips/include/param.h +++ b/sys/mips/include/param.h @@ -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) */ diff --git a/sys/powerpc/include/param.h b/sys/powerpc/include/param.h index 1a910ba..7dddb30 100644 --- a/sys/powerpc/include/param.h +++ b/sys/powerpc/include/param.h @@ -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) diff --git a/sys/sparc64/include/param.h b/sys/sparc64/include/param.h index 8a1c7df..e8f783f 100644 --- a/sys/sparc64/include/param.h +++ b/sys/sparc64/include/param.h @@ -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) diff --git a/sys/sun4v/include/param.h b/sys/sun4v/include/param.h index 0ac9c9b..4d7b42e 100644 --- a/sys/sun4v/include/param.h +++ b/sys/sun4v/include/param.h @@ -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) |