1.0.16.31: --control-stack-size runtime argument
authorNikodemus Siivola <nikodemus@random-state.net>
Thu, 15 May 2008 15:37:48 +0000 (15:37 +0000)
committerNikodemus Siivola <nikodemus@random-state.net>
Thu, 15 May 2008 15:37:48 +0000 (15:37 +0000)
commitdc5d8cef786c974258601109f79ab18f874b1270
tree2cdb9f7907f0f433953f06094e258ab0a1de3422
parent8a09cf6e06fd6f5bbc7abfb4d9c4abee2658fa71
1.0.16.31: --control-stack-size runtime argument

 * THREAD_CONTROL_STACK_SIZE becomes DEFAULT_CONTROL_STACK_SIZE.

 * Align thread spaces using the larger of BACKEND_PAGE_SIZE and
   CONTROL_STACK_ADJUSTMENT_BYTES.

 * Take care of aligning both ends of the control stack when setting
   up the thread struct -- that way pthread_attr_setstack doesn't have
   to worry about alignment.

 * Simplify stack setup in on x86oid platforms in
   call_into_lisp_first_time: instead of having the nasty window where
   ESP/RSP is right at the end of the stack, use pull out the control
   stack end right out of the thread struct.

 * Minimal documentation.

 Not strictly related to --control-stack-size:

 * Refactor thread post mortem cleanups to share as much code as
   possible and reduce conditionalization. The core functions in the
   new world are plan_thread_post_mortem, schedule_thread_post_mortem,
   and perform_thread_post_mortem.

 * Malloc thread attributes, and destroy them before freeing thread
   stacks. (pthread_attr_setstack seems to say that we are not allowed
   to free stacks that have attributes referring to them -- hopefully
   pthread_attr_destroy gives us the licence we need, and since it is
   not entirely clear we are allowed to destroy the attr before the
   thread has finished, do it only after pthread_join.)
13 files changed:
NEWS
doc/manual/start-stop.texinfo
doc/sbcl.1
src/compiler/generic/objdef.lisp
src/runtime/gc-common.c
src/runtime/globals.h
src/runtime/runtime.c
src/runtime/thread.c
src/runtime/thread.h
src/runtime/validate.h
src/runtime/x86-64-assem.S
src/runtime/x86-assem.S
version.lisp-expr