From 846ddb1c8fe97e01b6da490e8ab40af6d06d39da Mon Sep 17 00:00:00 2001 From: toy <toy> Date: Mon, 6 Oct 2003 17:15:06 +0000 Subject: [PATCH] o Clean up and correct description address map. o Moved definition of SPARSE_BLOCK_SIZE from solaris-os.c to here, so we can use it in defining the sizes of the various spaces. o With GENCGC, we can use the space that was allocated for dynamic space 1, so make it 2GB. (Not that I've ever had to use that much space.) --- lisp/sparc-validate.h | 30 ++++++++++++++++++++---------- 1 file changed, 20 insertions(+), 10 deletions(-) diff --git a/lisp/sparc-validate.h b/lisp/sparc-validate.h index 8a85ffd63..72b23e804 100644 --- a/lisp/sparc-validate.h +++ b/lisp/sparc-validate.h @@ -1,6 +1,6 @@ /* - $Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/lisp/sparc-validate.h,v 1.14 2003/09/22 13:29:49 toy Exp $ + $Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/lisp/sparc-validate.h,v 1.15 2003/10/06 17:15:06 toy Exp $ This code was written as part of the CMU Common Lisp project at Carnegie Mellon University, and has been placed in the public domain. @@ -10,7 +10,8 @@ /* * Address map: * - * 0x00000000->0x10000000 256M C code and stuff(?) + * 0x00000000->0x0f800000 248M C code and stuff(?) + * 0x0f800000->0x10000000 8M for linkage table area * 0x10000000->0x20000000 256M Read-Only Space. * 0x20000000->0x28000000 128M Binding stack growing up. * 0x28000000->0x38000000 256M Static Space. @@ -40,8 +41,13 @@ * sunos-os.c. If not, then mapping the holes causes segfaults in * initialization.) * + * Sparse block size must be larger than the system page size. */ +#define SPARSE_BLOCK_SIZE (1<<15) +#define SPARSE_SIZE_MASK (SPARSE_BLOCK_SIZE-1) + + #ifdef LINKAGE_TABLE /* * This space start better match the value of @@ -56,21 +62,21 @@ * long). Hope that's enough! Make sure this doesn't overlap the * READ_ONLY_SPACE_START! */ -#define FOREIGN_LINKAGE_SPACE_SIZE (0x007f8000) /* 8 MB - 32 KB */ +#define FOREIGN_LINKAGE_SPACE_SIZE (0x00800000 - SPARSE_BLOCK_SIZE) /* 8 MB - 32 KB */ #endif #define READ_ONLY_SPACE_START (0x10000000) -#define READ_ONLY_SPACE_SIZE (0x07ff8000) /* 128 MB - 32 KB, 256 MB max */ +#define READ_ONLY_SPACE_SIZE (0x08000000 - SPARSE_BLOCK_SIZE) /* 128 MB - 32 KB, 256 MB max */ #define BINDING_STACK_START (0x20000000) -#define BINDING_STACK_SIZE (0x07ff8000) /* 128 MB - 32 KB, 128 MB max */ +#define BINDING_STACK_SIZE (0x08000000 - SPARSE_BLOCK_SIZE) /* 128 MB - 32 KB, 128 MB max */ #define STATIC_SPACE_START (0x28000000) -#define STATIC_SPACE_SIZE (0x03ff8000) /* 128 MB - 32 KB, 256 MB max */ +#define STATIC_SPACE_SIZE (0x04000000 - SPARSE_BLOCK_SIZE) /* 128 MB - 32 KB, 256 MB max */ #define CONTROL_STACK_START (0x38000000) -#define CONTROL_STACK_SIZE (0x07ff8000) /* 128 MB - 32 KB, 128 MB max */ +#define CONTROL_STACK_SIZE (0x08000000 - SPARSE_BLOCK_SIZE) /* 128 MB - 32 KB, 128 MB max */ #define CONTROL_STACK_END (CONTROL_STACK_START + CONTROL_STACK_SIZE) #define DYNAMIC_0_SPACE_START (0x40000000) @@ -78,11 +84,15 @@ #define DYNAMIC_1_SPACE_START (0x80000000) /* The default dynamic space to allocate */ -#define DEFAULT_DYNAMIC_SPACE_SIZE (0x0fff8000) /* 256 MB - 32 KB */ +#define DEFAULT_DYNAMIC_SPACE_SIZE (0x10000000 - SPARSE_BLOCK_SIZE) /* 256 MB - 32 KB */ /* The maximum dynamic space that we can allocate */ #ifdef GENCGC -#define DYNAMIC_SPACE_SIZE (0x3ff80000) /* 1GB - 32 KB max */ +/* + * For GENCGC, we can use both dynamic spaces, so we get double the + * heap size. + */ +#define DYNAMIC_SPACE_SIZE (0x80000000 - SPARSE_BLOCK_SIZE) /* 2GB - 32 KB max */ #else -#define DYNAMIC_SPACE_SIZE (0x3ff80000) /* 1GB - 32 KB max */ +#define DYNAMIC_SPACE_SIZE (0x40000000 - SPARSE_BLOCK_SIZE) /* 1GB - 32 KB max */ #endif -- GitLab