Ben Gras [Fri, 21 Oct 2005 11:07:33 +0000 (11:07 +0000)]
. don't kill tty, send it messages on signals
. kill processes first, then tell fs to reboot (otherwise fs will have
exited its processes and be confused when they exit again)
Ben Gras [Thu, 20 Oct 2005 20:59:02 +0000 (20:59 +0000)]
. check for notify() from NONE (shouldn't happen any more)
. test for cleared process slots when checking processes on exiting
. clear process slot first, then do cleanup on exiting
Jorrit Herder [Thu, 20 Oct 2005 20:34:34 +0000 (20:34 +0000)]
New IPC error codes: ESRCDIED, EDSTDIED, ETRAPDENIED.
New getsysinfo type to get DS store contents from IS.
New Data Store (DS) server message types and arguments.
Jorrit Herder [Thu, 20 Oct 2005 20:31:18 +0000 (20:31 +0000)]
New Reincarnation Server functionality.
- service refresh: to cleanly stop and restart a server or driver
- binary exponential backoff: don't restart in a loop
Ben Gras [Thu, 20 Oct 2005 19:39:32 +0000 (19:39 +0000)]
Two 'dynamic driver' features in FS:
. When drivers disappear that have pending select()s, wake up
those user processes with EAGAIN so that they can retry their
select() and won't hang forever on it.
. When drivers re-appear and are mapped into the dmap, run through
the list of mounted filesystems and re-dev_open() every one (for
partition tables and such). This can't happen before the driver
has exec()ced itself, so processes that have fork()ed but not
exec()ced yet are marked as DMAP_BABY in the dmap table if they
are dmapped before they are execced. If that happens, the above
procedure happens after the exec(). If the exec() happens before
the dmapping, it (the dev_open()ing) happens right away.
Ben Gras [Tue, 18 Oct 2005 10:34:54 +0000 (10:34 +0000)]
printf() by kernel and servers now send messages to an array of processes,
OUTPUT_PROCS_ARRAY in <minix/config.h>, in that order, terminated by NONE.
log no longer forwards messages to tty itself. This leads to less funny
loops and more robust debug-message handling. Also the list of
processes receiving messages can easily be changed around or disabled by
editing the array (e.g. disable it by changing the array to { NONE }.).
Ben Gras [Mon, 17 Oct 2005 13:19:22 +0000 (13:19 +0000)]
A new panic that makes processes exit with PM knowing about it, instead
of sys_exit, so that PM functions (e.g. findproc) keep working properly,
and RS finds out about process deaths.
Ben Gras [Thu, 13 Oct 2005 12:48:43 +0000 (12:48 +0000)]
PM: added possibility to copy hole list from alloc.c to outside, for
misc.c to copy it away by getsysinfo
IS: prints out hole list + stats such as largest contiguous chunk
Ben Gras [Thu, 13 Oct 2005 12:45:09 +0000 (12:45 +0000)]
Moved 'struct hole' for memory holes from PM to <minix/type.h>; also
number of holes to sys_config.h, to make memory allocation data structure
visible from outside..
Jorrit Herder [Wed, 12 Oct 2005 15:07:38 +0000 (15:07 +0000)]
New signal handling behaviour at PM (services can be killed).
New Shift-F6 dump for RS server at IS.
New getnpid, getnproc, getpproc library calls at PM.
New reincarnation server (basic functionality is there now).
Ben Gras [Wed, 5 Oct 2005 15:38:15 +0000 (15:38 +0000)]
FS:
. unmap device drivers from dmap when PM signals they are dead
. new null-io function (no_dev_io) to fill in for io functions
of unmapped drivers
. driver (process number) of unmapped drivers is NONE instead of
0 (a valid process number)
IS:
. print mutable flag of dmap table too
FS changes require sync() to be done 'manually' (currently by
reboot/shutdown) at shutdown time; could be caught by SIGTERM in
the future.
Jorrit Herder [Wed, 5 Oct 2005 09:51:50 +0000 (09:51 +0000)]
Minor bug fixes in proc.c and utility.c;
Removed debug dumps on panic from main.c;
Return error on exit when other process does IPC to/from exiting process.