Split GENCGC_PAGE_BYTES in 3 constants
authorPaul Khuong <pvk@pvk.ca>
Sun, 3 Jul 2011 16:45:42 +0000 (12:45 -0400)
committerPaul Khuong <pvk@pvk.ca>
Sun, 3 Jul 2011 16:45:42 +0000 (12:45 -0400)
commit5c0a884190d6c98448d86fb05e1e99df901c9bf8
tree6471fa34556adfe6908d11b4e03c8b276b088775
parent9effe671fd4baacd924b58a25dac89587d38eb27
Split GENCGC_PAGE_BYTES in 3 constants

 * We still have BACKEND_PAGE_BYTES, which should be a conservative
   over-approximation of the OS's page size.

 * GENCGC_PAGE_BYTES is mostly replaced by GENCGC_CARD_BYTES, the
   byte granularity at which we track writes to old generations.
   While we're using mprotect-based write barriers, this should be
   a multiple of BACKEND_PAGE_BYTES.

 * GENCGC_ALLOC_GRANULARITY is the minimum size we attempt to make
   each allocation region.  Should be a multiple of GENCGC_CARD_BYTES.
   While we have largeish cards, this shouldn't ever be an issue, but
   it might if we ever go down to < 1k cards.

 * GENCGC_RELEASE_GRANULARITY is the minimum size at which we release
   address space to the OS.  This should always be a multiple of
   BACKEND_PAGE_BYTES.

 * For now, all three new constants are equal to BACKEND_PAGE_BYTES.
12 files changed:
contrib/sb-sprof/sb-sprof.lisp
package-data-list.lisp-expr
src/code/room.lisp
src/compiler/generic/genesis.lisp
src/compiler/ppc/backend-parms.lisp
src/compiler/x86-64/backend-parms.lisp
src/compiler/x86/backend-parms.lisp
src/runtime/gc.h
src/runtime/gencgc-internal.h
src/runtime/gencgc.c
src/runtime/linux-os.c
src/runtime/runtime.c