kernel: Major rework of the single process in memory model
authorAlan Cox <alan@linux.intel.com>
Sat, 8 Dec 2018 00:09:28 +0000 (00:09 +0000)
committerAlan Cox <alan@linux.intel.com>
Sat, 8 Dec 2018 00:09:28 +0000 (00:09 +0000)
commitbd3e0abe37b8268dfc6dba62e0afe9bf24552bb1
tree88f5b21134287459b54533196a3d72c6d1dd85fc
parentc3e740d36ef43608c77d95fabc0493e4fa22dd7c
kernel: Major rework of the single process in memory model

- Support 'parent runs first' in fork. We will also need this for flat memory
  models like 68000 to work nicely. In our case we write the child to swap but
  for flat models we'd duplicate the update and write a short stub stack to
  the child

- Introduce a makeproc to replace newproc. Different arguments so deliberately
  break all the old code

- Fix some interestingly bad scheduling corner cases where we have a process
  running for a long time with nothing else that then causes fork to thrash

- Make tmpfree always a function. Useful for debug and also avoids icky asm
  dependencies

- Fix the Z80 single process model to use the new features

- Fix the Z80 banked process model to pass the new arguments

- Also adjust the switching rate on the Plus 3 as our test platform for the
  single process in memory tunings

Takes our boot time down about 33% !
Kernel/devio.c
Kernel/include/kernel.h
Kernel/lib/z80fixedbank-banked.s
Kernel/lib/z80fixedbank-core.s
Kernel/lib/z80single.s
Kernel/platform-zx+3/README
Kernel/platform-zx+3/config.h
Kernel/process.c
Kernel/simple.c
Kernel/start.c
Kernel/syscall_proc.c