From f6f9c32b2d47406026ca1f03f88b0a338db5ec39 Mon Sep 17 00:00:00 2001 From: toy <toy> Date: Sat, 10 Jan 2004 05:09:26 +0000 Subject: [PATCH] Make the PAGE_SIZE 32K for sparc since that give performance at least as good as non-gencgc on sparc with Eric Marsden's cl-bench tests. --- lisp/gencgc.h | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/lisp/gencgc.h b/lisp/gencgc.h index 9afc92ba3..47746d3d7 100644 --- a/lisp/gencgc.h +++ b/lisp/gencgc.h @@ -7,7 +7,7 @@ * * Douglas Crosher, 1996, 1997. * - * $Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/lisp/gencgc.h,v 1.9 2003/10/13 18:59:37 toy Exp $ + * $Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/lisp/gencgc.h,v 1.10 2004/01/10 05:09:26 toy Exp $ * */ @@ -127,7 +127,15 @@ struct page { #if defined(i386) #define PAGE_SIZE 4096 #else -#define PAGE_SIZE 8192 +/* + * For sparc, the minimum page size (physical page size) is 8K. + * However, some experimments indicate that this gives worse + * performance in some cases than the non-gencgc version. By upping + * the page size to 32K, we are as good as before, so let us use a 32K + * page size. (I'm assuming the gain is because we do the kernel + * allocation trap less often.) + */ +#define PAGE_SIZE (4*8192) #endif extern unsigned dynamic_space_pages; @@ -159,7 +167,7 @@ void gencgc_pickup_dynamic(void); void sniff_code_object(struct code *code, unsigned displacement); #endif lispobj *search_dynamic_space(lispobj *pointer); -void update_x86_dynamic_space_free_pointer(void); +void update_dynamic_space_free_pointer(void); lispobj * component_ptr_from_pc(lispobj *pc); -- GitLab