mit-scheme.git
9 years agosmp: without-interrupts: parser-buffer.scm
Matt Birkholz [Fri, 6 Mar 2015 22:14:15 +0000 (15:14 -0700)]
smp: without-interrupts: parser-buffer.scm

9 years agosmp: without-interrupts: os2graph.scm
Matt Birkholz [Fri, 6 Mar 2015 22:10:40 +0000 (15:10 -0700)]
smp: without-interrupts: os2graph.scm

9 years agosmp: without-interrupts: make.scm
Matt Birkholz [Fri, 6 Mar 2015 21:57:53 +0000 (14:57 -0700)]
smp: without-interrupts: make.scm

9 years agosmp: without-interrupts: io.scm
Matt Birkholz [Fri, 6 Mar 2015 21:51:29 +0000 (14:51 -0700)]
smp: without-interrupts: io.scm

9 years agosmp: Squash into 65f63da. Quiet unused parameter warning.
Matt Birkholz [Fri, 6 Mar 2015 21:04:26 +0000 (14:04 -0700)]
smp: Squash into 65f63da.  Quiet unused parameter warning.

9 years agosmp: without-interrupts: intrpt.scm
Matt Birkholz [Wed, 25 Feb 2015 15:49:08 +0000 (08:49 -0700)]
smp: without-interrupts: intrpt.scm

9 years agosmp: without-interrupts: infutl.scm
Matt Birkholz [Wed, 25 Feb 2015 15:38:41 +0000 (08:38 -0700)]
smp: without-interrupts: infutl.scm

9 years agosmp: Use make-serial-population. Squash into 7f0c85a.
Matt Birkholz [Wed, 25 Feb 2015 15:29:01 +0000 (08:29 -0700)]
smp: Use make-serial-population.  Squash into 7f0c85a.

9 years agosmp: Use make-serial-population. Squash into 0dd59191.
Matt Birkholz [Wed, 25 Feb 2015 15:14:30 +0000 (08:14 -0700)]
smp: Use make-serial-population.  Squash into 0dd59191.

9 years agosmp: Add make-serial-population.
Matt Birkholz [Wed, 25 Feb 2015 15:12:38 +0000 (08:12 -0700)]
smp: Add make-serial-population.

9 years agosmp: Add without-interruption.
Matt Birkholz [Wed, 25 Feb 2015 15:07:02 +0000 (08:07 -0700)]
smp: Add without-interruption.

9 years agosmp: without-interrupts: hashtb.scm
Matt Birkholz [Tue, 24 Feb 2015 23:25:42 +0000 (16:25 -0700)]
smp: without-interrupts: hashtb.scm

9 years agosmp: without-interrupts: hash.scm
Matt Birkholz [Mon, 23 Feb 2015 18:29:04 +0000 (11:29 -0700)]
smp: without-interrupts: hash.scm

9 years agosmp: Squash into 3b4bc23. Lock signal-subprocess-status-change
Matt Birkholz [Sun, 22 Feb 2015 19:55:32 +0000 (12:55 -0700)]
smp: Squash into 3b4bc23.  Lock signal-subprocess-status-change

when called by handle-subprocess-status-change.  Use %handle-
subprocess-status-change internally, to avoid a second (dead)lock.

9 years agosmp: without-interrupts: global.scm
Matt Birkholz [Sun, 22 Feb 2015 19:54:08 +0000 (12:54 -0700)]
smp: without-interrupts: global.scm

9 years agosmp: Move call to make-fluid. Squash into 99bc079.
Matt Birkholz [Sun, 22 Feb 2015 01:17:32 +0000 (18:17 -0700)]
smp: Move call to make-fluid.  Squash into 99bc079.

Presumably 99bc079 does not build without moving the make-fluid from
initialize-low! to initialize-high!.

9 years agosmp: without-interrupts: generic.scm
Matt Birkholz [Sat, 21 Feb 2015 20:11:16 +0000 (13:11 -0700)]
smp: without-interrupts: generic.scm

9 years agosmp: without-interrupts: geneqht.scm
Matt Birkholz [Sat, 21 Feb 2015 19:54:21 +0000 (12:54 -0700)]
smp: without-interrupts: geneqht.scm

9 years agosmp: without-interrupts: gencache.scm
Matt Birkholz [Sat, 21 Feb 2015 18:43:34 +0000 (11:43 -0700)]
smp: without-interrupts: gencache.scm

9 years agosmp: without-interrupts: gdbm.scm
Matt Birkholz [Sat, 21 Feb 2015 18:42:37 +0000 (11:42 -0700)]
smp: without-interrupts: gdbm.scm

9 years agosmp: README.txt wordsmithing. Squash into be90997.
Matt Birkholz [Sat, 21 Feb 2015 18:41:02 +0000 (11:41 -0700)]
smp: README.txt wordsmithing.  Squash into be90997.

9 years agosmp: README.txt correction. Squash into ae2e9ce.
Matt Birkholz [Sat, 21 Feb 2015 18:35:36 +0000 (11:35 -0700)]
smp: README.txt correction.  Squash into ae2e9ce.

9 years agosmp: README.txt wordsmithing. Squash into 9969ff0.
Matt Birkholz [Sat, 21 Feb 2015 18:33:00 +0000 (11:33 -0700)]
smp: README.txt wordsmithing.  Squash into 9969ff0.

9 years agosmp: (runtime wind) initialization. Squash into fca7e9c, which also
Matt Birkholz [Sat, 21 Feb 2015 18:17:26 +0000 (11:17 -0700)]
smp: (runtime wind) initialization.  Squash into fca7e9c, which also

needs to drop a line from make.scm, a line which did not disappear
until 99bc079.

9 years agosmp: without-interrupts: gcfinal.scm
Matt Birkholz [Sat, 21 Feb 2015 18:10:31 +0000 (11:10 -0700)]
smp: without-interrupts: gcfinal.scm

9 years agosmp: without-interrupts: gc.scm
Matt Birkholz [Sat, 21 Feb 2015 01:05:21 +0000 (18:05 -0700)]
smp: without-interrupts: gc.scm

9 years agosmp: without-interrupts: floenv.scm
Matt Birkholz [Tue, 27 Jan 2015 23:53:37 +0000 (16:53 -0700)]
smp: without-interrupts: floenv.scm

9 years agosmp: without-interrupts: ffi.scm
Matt Birkholz [Sat, 31 Jan 2015 00:45:44 +0000 (17:45 -0700)]
smp: without-interrupts: ffi.scm

9 years agosmp: without-interrupts: emacs.scm
Matt Birkholz [Tue, 27 Jan 2015 20:27:36 +0000 (13:27 -0700)]
smp: without-interrupts: emacs.scm

9 years agosmp: without-interrupts: crypto.scm
Matt Birkholz [Tue, 27 Jan 2015 20:27:03 +0000 (13:27 -0700)]
smp: without-interrupts: crypto.scm

9 years agosmp: without-interrupts: conpar.scm
Matt Birkholz [Tue, 27 Jan 2015 20:26:21 +0000 (13:26 -0700)]
smp: without-interrupts: conpar.scm

9 years agosmp: without-interrupts: condvar.scm
Matt Birkholz [Tue, 27 Jan 2015 20:25:30 +0000 (13:25 -0700)]
smp: without-interrupts: condvar.scm

9 years agosmp: without-interrupts: boot.scm
Matt Birkholz [Tue, 27 Jan 2015 20:24:04 +0000 (13:24 -0700)]
smp: without-interrupts: boot.scm

9 years agosmp: without-interrupts: README.txt begins the analysis
Matt Birkholz [Fri, 16 Jan 2015 22:25:12 +0000 (15:25 -0700)]
smp: without-interrupts: README.txt begins the analysis

9 years agosmp: README.txt frobbery. Squash into d93bc7f and 9969ff0.
Matt Birkholz [Fri, 16 Jan 2015 22:17:35 +0000 (15:17 -0700)]
smp: README.txt frobbery.  Squash into d93bc7f and 9969ff0.

10 years agosmp: share: usrdef.o
Matt Birkholz [Sat, 6 Dec 2014 07:11:24 +0000 (00:11 -0700)]
smp: share: usrdef.o

10 years agosmp: share: comutl.o
Matt Birkholz [Sat, 6 Dec 2014 07:09:58 +0000 (00:09 -0700)]
smp: share: comutl.o

10 years agosmp: share: cmpintmd.o
Matt Birkholz [Sat, 6 Dec 2014 07:07:51 +0000 (00:07 -0700)]
smp: share: cmpintmd.o

10 years agosmp: share: cmpint.o
Matt Birkholz [Sat, 6 Dec 2014 07:04:40 +0000 (00:04 -0700)]
smp: share: cmpint.o

10 years agosmp: share: pruxffi.o
Matt Birkholz [Sat, 6 Dec 2014 07:02:44 +0000 (00:02 -0700)]
smp: share: pruxffi.o

10 years agosmp: share: pruxdld.o
Matt Birkholz [Sat, 6 Dec 2014 07:01:16 +0000 (00:01 -0700)]
smp: share: pruxdld.o

10 years agosmp: share: tterm.o
Matt Birkholz [Sat, 6 Dec 2014 06:56:21 +0000 (23:56 -0700)]
smp: share: tterm.o

10 years agosmp: share: cmpauxmd.o
Matt Birkholz [Sat, 6 Dec 2014 06:53:55 +0000 (23:53 -0700)]
smp: share: cmpauxmd.o

10 years agosmp: share: uxutil.o
Matt Birkholz [Sat, 6 Dec 2014 06:14:08 +0000 (23:14 -0700)]
smp: share: uxutil.o

10 years agosmp: share: uxtty.o
Matt Birkholz [Sat, 6 Dec 2014 06:09:11 +0000 (23:09 -0700)]
smp: share: uxtty.o

10 years agosmp: share: uxtrap.o
Matt Birkholz [Sat, 6 Dec 2014 06:07:28 +0000 (23:07 -0700)]
smp: share: uxtrap.o

10 years agosmp: share: uxtop.o
Matt Birkholz [Sat, 6 Dec 2014 06:03:40 +0000 (23:03 -0700)]
smp: share: uxtop.o

10 years agosmp: share: uxterm.o
Matt Birkholz [Sat, 20 Dec 2014 20:06:03 +0000 (13:06 -0700)]
smp: share: uxterm.o

10 years agosmp: share: uxsock.o
Matt Birkholz [Sat, 6 Dec 2014 05:53:34 +0000 (22:53 -0700)]
smp: share: uxsock.o

10 years agosmp: share: uxsig.o
Matt Birkholz [Sat, 20 Dec 2014 21:42:57 +0000 (14:42 -0700)]
smp: share: uxsig.o

10 years agosmp: share: uxproc.o
Matt Birkholz [Sat, 20 Dec 2014 21:38:24 +0000 (14:38 -0700)]
smp: share: uxproc.o

10 years agosmp: share: uxio.o
Matt Birkholz [Sat, 20 Dec 2014 19:27:28 +0000 (12:27 -0700)]
smp: share: uxio.o

10 years agosmp: share: uxfs.o
Matt Birkholz [Sat, 20 Dec 2014 21:34:56 +0000 (14:34 -0700)]
smp: share: uxfs.o

10 years agosmp: share: uxenv.o
Matt Birkholz [Sat, 6 Dec 2014 01:00:34 +0000 (18:00 -0700)]
smp: share: uxenv.o

10 years agosmp: share: uxctty.o
Matt Birkholz [Sat, 6 Dec 2014 00:56:07 +0000 (17:56 -0700)]
smp: share: uxctty.o

10 years agosmp: share: ux.o
Matt Birkholz [Sat, 6 Dec 2014 00:55:10 +0000 (17:55 -0700)]
smp: share: ux.o

10 years agosmp: share: intext.o
Matt Birkholz [Sat, 6 Dec 2014 00:53:08 +0000 (17:53 -0700)]
smp: share: intext.o

10 years agosmp: share: prossmp.o
Matt Birkholz [Sat, 6 Dec 2014 00:51:32 +0000 (17:51 -0700)]
smp: share: prossmp.o

10 years agosmp: share: prosio.o
Matt Birkholz [Sat, 6 Dec 2014 19:18:02 +0000 (12:18 -0700)]
smp: share: prosio.o

10 years agosmp: share: wind.o
Matt Birkholz [Sat, 6 Dec 2014 00:48:49 +0000 (17:48 -0700)]
smp: share: wind.o

10 years agosmp: share: utils.o
Matt Birkholz [Sat, 6 Dec 2014 00:47:16 +0000 (17:47 -0700)]
smp: share: utils.o

10 years agosmp: share: utabmd.o
Matt Birkholz [Sat, 6 Dec 2014 00:39:30 +0000 (17:39 -0700)]
smp: share: utabmd.o

10 years agosmp: share: transact.o
Matt Birkholz [Sat, 6 Dec 2014 00:37:19 +0000 (17:37 -0700)]
smp: share: transact.o

10 years agosmp: share: term.o
Matt Birkholz [Sat, 6 Dec 2014 00:36:27 +0000 (17:36 -0700)]
smp: share: term.o

10 years agosmp: share: syntax.o
Matt Birkholz [Sat, 6 Dec 2014 19:24:10 +0000 (12:24 -0700)]
smp: share: syntax.o

10 years agosmp: share: string.o
Matt Birkholz [Sat, 6 Dec 2014 00:34:10 +0000 (17:34 -0700)]
smp: share: string.o

10 years agosmp: share: storage.o
Matt Birkholz [Sat, 20 Dec 2014 19:08:15 +0000 (12:08 -0700)]
smp: share: storage.o

10 years agosmp: share: regex.o
Matt Birkholz [Sat, 6 Dec 2014 19:21:02 +0000 (12:21 -0700)]
smp: share: regex.o

10 years agosmp: share: primutl.o
Matt Birkholz [Sat, 20 Dec 2014 19:15:31 +0000 (12:15 -0700)]
smp: share: primutl.o

10 years agosmp: share: ostty.o
Matt Birkholz [Fri, 5 Dec 2014 18:25:03 +0000 (11:25 -0700)]
smp: share: ostty.o

10 years agosmp: share: option.o
Matt Birkholz [Fri, 5 Dec 2014 17:53:32 +0000 (10:53 -0700)]
smp: share: option.o

10 years agosmp: share: obstack.o
Matt Birkholz [Fri, 5 Dec 2014 17:51:44 +0000 (10:51 -0700)]
smp: share: obstack.o

10 years agosmp: share: memmag.o
Matt Birkholz [Fri, 5 Dec 2014 17:49:18 +0000 (10:49 -0700)]
smp: share: memmag.o

10 years agosmp: share: interp.o
Matt Birkholz [Fri, 5 Dec 2014 17:36:49 +0000 (10:36 -0700)]
smp: share: interp.o

10 years agosmp: share: gcloop.o
Matt Birkholz [Fri, 5 Dec 2014 17:34:35 +0000 (10:34 -0700)]
smp: share: gcloop.o

10 years agosmp: share: floenv.o
Matt Birkholz [Fri, 5 Dec 2014 17:25:14 +0000 (10:25 -0700)]
smp: share: floenv.o

10 years agosmp: share: fasload.o
Matt Birkholz [Sat, 20 Dec 2014 18:55:34 +0000 (11:55 -0700)]
smp: share: fasload.o

10 years agosmp: share: fasdump.o
Matt Birkholz [Sun, 21 Dec 2014 04:32:54 +0000 (21:32 -0700)]
smp: share: fasdump.o

10 years agosmp: share: error.o
Matt Birkholz [Fri, 5 Dec 2014 00:24:17 +0000 (17:24 -0700)]
smp: share: error.o

10 years agosmp: share: debug.o
Matt Birkholz [Sat, 6 Dec 2014 20:00:59 +0000 (13:00 -0700)]
smp: share: debug.o

10 years agosmp: share: boot.o
Matt Birkholz [Fri, 5 Dec 2014 00:19:42 +0000 (17:19 -0700)]
smp: share: boot.o

10 years agosmp: share: bkpt.o
Matt Birkholz [Fri, 5 Dec 2014 00:16:21 +0000 (17:16 -0700)]
smp: share: bkpt.o

10 years agosmp: share: avltree.o
Matt Birkholz [Fri, 5 Dec 2014 00:12:57 +0000 (17:12 -0700)]
smp: share: avltree.o

10 years agosmp: share: README.txt begins the analysis of microcode state
Matt Birkholz [Sat, 6 Dec 2014 19:56:10 +0000 (12:56 -0700)]
smp: share: README.txt begins the analysis of microcode state

10 years agosmp: Add a top-level README.txt, an overview of the SMP branch.
Matt Birkholz [Sat, 6 Dec 2014 19:45:40 +0000 (12:45 -0700)]
smp: Add a top-level README.txt, an overview of the SMP branch.

10 years agosmp: Add mutex LOCK/UNLOCK boilerplate to confshared.h (everywhere).
Matt Birkholz [Sat, 20 Dec 2014 18:50:06 +0000 (11:50 -0700)]
smp: Add mutex LOCK/UNLOCK boilerplate to confshared.h (everywhere).

10 years agosmp: Wake io-waiter when necessary. Add io-waiter-registry...
Matt Birkholz [Sat, 20 Dec 2014 21:00:43 +0000 (14:00 -0700)]
smp: Wake io-waiter when necessary.  Add io-waiter-registry...

...a copy of io-registry for io-waiter to block on while other threads
modify io-registry.  Test io-registry in thread-timer-interrupt-
handler only when there is no io-waiter.

10 years agosmp: Add copy-select-registry!.
Matt Birkholz [Wed, 17 Dec 2014 09:12:58 +0000 (02:12 -0700)]
smp: Add copy-select-registry!.

10 years agosmp: Add primitive copy-select-registry.
Matt Birkholz [Wed, 17 Dec 2014 08:48:39 +0000 (01:48 -0700)]
smp: Add primitive copy-select-registry.

10 years agosmp: Add SIGALRM distributor.
Matt Birkholz [Sat, 20 Dec 2014 18:13:30 +0000 (11:13 -0700)]
smp: Add SIGALRM distributor.

10 years agosmp: Add io-waiter and arrange for ONE processor to io-wait.
Matt Birkholz [Sat, 20 Dec 2014 16:27:47 +0000 (09:27 -0700)]
smp: Add io-waiter and arrange for ONE processor to io-wait.

Also, clean up the stack in SMP-IDLE.  And do NOT tail into a runnable
thread in signal-thread-event -- always return.

10 years agosmp: Check for SIGCHLD in thread timer interrupt handler.
Matt Birkholz [Sat, 20 Dec 2014 16:15:03 +0000 (09:15 -0700)]
smp: Check for SIGCHLD in thread timer interrupt handler.

An idle thread might get a SIGCHLD, wake and run the thread timer
interrupt handler (since there is no subprocess-status-change
interrupt) and return to idle.  If it is not the io-waiter, it does
not call test-select-registry nor otherwise notice the subprocess
status change.

Funnel all status change notifications through handle-subprocess-
status-change.  It uses the last-global-tick variable to remember the
tick when threads blocking on status changes were last woken.

10 years agosmp: Add smp-wake primitive.
Matt Birkholz [Sat, 20 Dec 2014 16:05:57 +0000 (09:05 -0700)]
smp: Add smp-wake primitive.

10 years agosmp: Add x86_64 support.
Matt Birkholz [Sat, 20 Dec 2014 15:58:22 +0000 (08:58 -0700)]
smp: Add x86_64 support.

10 years agosmp: unshare: svm1 interpreter's state
Matt Birkholz [Tue, 25 Nov 2014 15:50:37 +0000 (08:50 -0700)]
smp: unshare: svm1 interpreter's state

10 years agosmp: unshare: UX trap_state and current_interruptable_extent.
Matt Birkholz [Tue, 25 Nov 2014 15:46:15 +0000 (08:46 -0700)]
smp: unshare: UX trap_state and current_interruptable_extent.

Split the thread-local parts out of UX_initialize_trap_recovery into
UX_initialize_trap_state, and those of OS_initialize into
OS_initialize_processor.

10 years agosmp: unshare: interpreter_state, dstack, current_transaction...
Matt Birkholz [Tue, 25 Nov 2014 15:07:19 +0000 (08:07 -0700)]
smp: unshare: interpreter_state, dstack, current_transaction...

...scheme_fenv, scheme_fenv_p, dstack_position,
current_winding_record, interpreter_state, prim_apply_error_code,
critical_section_hook, critical_section_hook_p, critical_section_name.

Pulled initializations into a new initialize_processor_early function
and used it in both main and the co-processors' work.

10 years agosmp: Initialize thread-local compiler_utilities.
Matt Birkholz [Sat, 20 Dec 2014 15:50:09 +0000 (08:50 -0700)]
smp: Initialize thread-local compiler_utilities.

Split the thread-local parts of compiler_initialize into
compiler_initialize_processor, those of compiler_reset into
compiler_reset_processor.  Split the non-thread-local parts of
ASM_RESET_HOOK into ASM_INIT_HOOK, i.e. i386_reset_hook into
i386_init_hook.  Call the _processor versions in co-processor startup
and SMP-GC-WAITs.

Add compiler_reset_p flag to processor_t so that load-band
(compiler_reset) can notify the other processors to load the new
compiler_utilities into their Registers slots.

10 years agosmp: Serialize the outf functions.
Matt Birkholz [Sat, 20 Dec 2014 15:44:05 +0000 (08:44 -0700)]
smp: Serialize the outf functions.

10 years agosmp: Synchronize initialized processors.
Matt Birkholz [Sat, 20 Dec 2014 15:37:56 +0000 (08:37 -0700)]
smp: Synchronize initialized processors.

The main pthread must wait for the other processors to be initialized,
else the first GC waits forever for processors that cleared the
global-gc interrupt while initializing.