]> Zhao Yanbai Git Server - minix.git/log
minix.git
14 years agoUnique matching for package name when grepping for it in the master list.
Ben Gras [Fri, 2 Oct 2009 13:02:36 +0000 (13:02 +0000)]
Unique matching for package name when grepping for it in the master list.

14 years agoAdd id(1) -g, -n, -r options (Bug#302, reported by Aleksey Cheusov)
David van Moolenbroek [Fri, 2 Oct 2009 12:23:00 +0000 (12:23 +0000)]
Add id(1) -g, -n, -r options (Bug#302, reported by Aleksey Cheusov)

14 years agoisofs links with libsysutil which does not exist anymore
Tomas Hruby [Fri, 2 Oct 2009 12:07:46 +0000 (12:07 +0000)]
isofs links with libsysutil which does not exist anymore

14 years agodirs for OSS
Ben Gras [Fri, 2 Oct 2009 10:35:05 +0000 (10:35 +0000)]
dirs for OSS

14 years agorevert to 16MB to fix reinstall for now.
Ben Gras [Fri, 2 Oct 2009 09:48:15 +0000 (09:48 +0000)]
revert to 16MB to fix reinstall for now.

14 years agoINET: fix panic when network drivers are started late (Bug#309, reported by Niek...
David van Moolenbroek [Thu, 1 Oct 2009 21:24:12 +0000 (21:24 +0000)]
INET: fix panic when network drivers are started late (Bug#309, reported by Niek Linnenbank)

14 years agoRS: disable harmless warning
David van Moolenbroek [Thu, 1 Oct 2009 19:21:57 +0000 (19:21 +0000)]
RS: disable harmless warning

14 years agopostgresql in packing list
Ben Gras [Thu, 1 Oct 2009 18:14:49 +0000 (18:14 +0000)]
postgresql in packing list

14 years agoslightly larger /usr needed
Ben Gras [Thu, 1 Oct 2009 17:45:14 +0000 (17:45 +0000)]
slightly larger /usr needed

14 years agoconnect OSS to the build (clean and install only)
Ben Gras [Thu, 1 Oct 2009 17:23:54 +0000 (17:23 +0000)]
connect OSS to the build (clean and install only)

14 years agoFix bios_wini using wrong size for vector (Bug#280, reported by John Peace)
David van Moolenbroek [Thu, 1 Oct 2009 16:59:04 +0000 (16:59 +0000)]
Fix bios_wini using wrong size for vector (Bug#280, reported by John Peace)

14 years agoRemove treecmp utility (Bug#310, reported by John Peace)
David van Moolenbroek [Thu, 1 Oct 2009 16:58:13 +0000 (16:58 +0000)]
Remove treecmp utility (Bug#310, reported by John Peace)

14 years agoFix writeisofs lseek() usage (Bug#311, reported by John Peace
David van Moolenbroek [Thu, 1 Oct 2009 16:56:46 +0000 (16:56 +0000)]
Fix writeisofs lseek() usage (Bug#311, reported by John Peace

14 years agodir for oss config files
Ben Gras [Thu, 1 Oct 2009 16:55:54 +0000 (16:55 +0000)]
dir for oss config files

14 years agoFix syslog buffer overflow (Bug#270, reported by Kevin Jordan)
David van Moolenbroek [Thu, 1 Oct 2009 16:54:56 +0000 (16:54 +0000)]
Fix syslog buffer overflow (Bug#270, reported by Kevin Jordan)

14 years agosupport for OSS.
Ben Gras [Thu, 1 Oct 2009 16:36:14 +0000 (16:36 +0000)]
support for OSS.

14 years agoFixes to ISOFS
Thomas Veerman [Thu, 1 Oct 2009 14:34:17 +0000 (14:34 +0000)]
Fixes to ISOFS

14 years agoInitial import of ISOFS by Jacopo Urbani
Thomas Veerman [Thu, 1 Oct 2009 14:00:27 +0000 (14:00 +0000)]
Initial import of ISOFS by Jacopo Urbani

14 years agoimplement VAR += .. feature, contributed by Pieter Hijma
Ben Gras [Thu, 1 Oct 2009 11:29:08 +0000 (11:29 +0000)]
implement VAR += .. feature, contributed by Pieter Hijma

14 years agoPM delay call infrastructure improvements
David van Moolenbroek [Thu, 1 Oct 2009 10:36:09 +0000 (10:36 +0000)]
PM delay call infrastructure improvements
- allow PM to tell sys_runctl() whether to use delay call feature
- only use this feature in PM for delivering signals - not for exits
- do better error checking in PM on sys_runctl() calls
- rename SIGKREADY to SIGNDELAY

14 years agoMake message type ranges in com.h (eventually) unique
David van Moolenbroek [Thu, 1 Oct 2009 10:33:01 +0000 (10:33 +0000)]
Make message type ranges in com.h (eventually) unique

14 years agoFix erroneous times() call in udpstat/tcpstat.
David van Moolenbroek [Thu, 1 Oct 2009 10:31:29 +0000 (10:31 +0000)]
Fix erroneous times() call in udpstat/tcpstat.
Reported by John Peace, bug #312.
Also fix times(2) man page.

14 years agoidle_task() declared 3x in kernel/proto.h. 2 declarations removed
Tomas Hruby [Thu, 1 Oct 2009 07:59:15 +0000 (07:59 +0000)]
idle_task() declared 3x in kernel/proto.h. 2 declarations removed

14 years agoIncrease root partition size to 64 MB.
Arun Thomas [Wed, 30 Sep 2009 14:11:58 +0000 (14:11 +0000)]
Increase root partition size to 64 MB.

14 years ago - retrieve binary packages and sources from webserver to make a release, incremental...
Ben Gras [Wed, 30 Sep 2009 13:11:22 +0000 (13:11 +0000)]
 - retrieve binary packages and sources from webserver to make a release, incrementally using wget
   (so wget required)
 - don't build List file again, but use webserver List file and filter it

14 years agoBump release to 3.1.5 in issue.install
Arun Thomas [Wed, 30 Sep 2009 13:00:38 +0000 (13:00 +0000)]
Bump release to 3.1.5 in issue.install

14 years agoMerge of David's ptrace branch. Summary:
David van Moolenbroek [Wed, 30 Sep 2009 09:57:22 +0000 (09:57 +0000)]
Merge of David's ptrace branch. Summary:
o Support for ptrace T_ATTACH/T_DETACH and T_SYSCALL
o PM signal handling logic should now work properly, even with debuggers
  being present
o Asynchronous PM/VFS protocol, full IPC support for senda(), and
  AMF_NOREPLY senda() flag

DETAILS

Process stop and delay call handling of PM:
o Added sys_runctl() kernel call with sys_stop() and sys_resume()
  aliases, for PM to stop and resume a process
o Added exception for sending/syscall-traced processes to sys_runctl(),
  and matching SIGKREADY pseudo-signal to PM
o Fixed PM signal logic to deal with requests from a process after
  stopping it (so-called "delay calls"), using the SIGKREADY facility
o Fixed various PM panics due to race conditions with delay calls versus
  VFS calls
o Removed special PRIO_STOP priority value
o Added SYS_LOCK RTS kernel flag, to stop an individual process from
  running while modifying its process structure

Signal and debugger handling in PM:
o Fixed debugger signals being dropped if a second signal arrives when
  the debugger has not retrieved the first one
o Fixed debugger signals being sent to the debugger more than once
o Fixed debugger signals unpausing process in VFS; removed PM_UNPAUSE_TR
  protocol message
o Detached debugger signals from general signal logic and from being
  blocked on VFS calls, meaning that even VFS can now be traced
o Fixed debugger being unable to receive more than one pending signal in
  one process stop
o Fixed signal delivery being delayed needlessly when multiple signals
  are pending
o Fixed wait test for tracer, which was returning for children that were
  not waited for
o Removed second parallel pending call from PM to VFS for any process
o Fixed process becoming runnable between exec() and debugger trap
o Added support for notifying the debugger before the parent when a
  debugged child exits
o Fixed debugger death causing child to remain stopped forever
o Fixed consistently incorrect use of _NSIG

Extensions to ptrace():
o Added T_ATTACH and T_DETACH ptrace request, to attach and detach a
  debugger to and from a process
o Added T_SYSCALL ptrace request, to trace system calls
o Added T_SETOPT ptrace request, to set trace options
o Added TO_TRACEFORK trace option, to attach automatically to children
  of a traced process
o Added TO_ALTEXEC trace option, to send SIGSTOP instead of SIGTRAP upon
  a successful exec() of the tracee
o Extended T_GETUSER ptrace support to allow retrieving a process's priv
  structure
o Removed T_STOP ptrace request again, as it does not help implementing
  debuggers properly
o Added MINIX3-specific ptrace test (test42)
o Added proper manual page for ptrace(2)

Asynchronous PM/VFS interface:
o Fixed asynchronous messages not being checked when receive() is called
  with an endpoint other than ANY
o Added AMF_NOREPLY senda() flag, preventing such messages from
  satisfying the receive part of a sendrec()
o Added asynsend3() that takes optional flags; asynsend() is now a
  #define passing in 0 as third parameter
o Made PM/VFS protocol asynchronous; reintroduced tell_fs()
o Made PM_BASE request/reply number range unique
o Hacked in a horrible temporary workaround into RS to deal with newly
  revealed RS-PM-VFS race condition triangle until VFS is asynchronous

System signal handling:
o Fixed shutdown logic of device drivers; removed old SIGKSTOP signal
o Removed is-superuser check from PM's do_procstat() (aka getsigset())
o Added sigset macros to allow system processes to deal with the full
  signal set, rather than just the POSIX subset

Miscellaneous PM fixes:
o Split do_getset into do_get and do_set, merging common code and making
  structure clearer
o Fixed setpriority() being able to put to sleep processes using an
  invalid parameter, or revive zombie processes
o Made find_proc() global; removed obsolete proc_from_pid()
o Cleanup here and there

Also included:
o Fixed false-positive boot order kernel warning
o Removed last traces of old NOTIFY_FROM code

THINGS OF POSSIBLE INTEREST

o It should now be possible to run PM at any priority, even lower than
  user processes
o No assumptions are made about communication speed between PM and VFS,
  although communication must be FIFO
o A debugger will now receive incoming debuggee signals at kill time
  only; the process may not yet be fully stopped
o A first step has been made towards making the SYSTEM task preemptible

14 years agothrow out exec debugging message.
Ben Gras [Wed, 30 Sep 2009 08:36:13 +0000 (08:36 +0000)]
throw out exec debugging message.

14 years agothere is no elvis.
Ben Gras [Wed, 30 Sep 2009 08:21:21 +0000 (08:21 +0000)]
there is no elvis.

14 years agoaudio package obsolete
Ben Gras [Wed, 30 Sep 2009 07:41:03 +0000 (07:41 +0000)]
audio package obsolete

14 years agothrow out FIXME reminders for release
Ben Gras [Wed, 30 Sep 2009 07:40:34 +0000 (07:40 +0000)]
throw out FIXME reminders for release

14 years agoMostly a revert of r5306. com.h defines MAX_NR_TASKS value which replaces
Tomas Hruby [Tue, 29 Sep 2009 20:13:41 +0000 (20:13 +0000)]
Mostly a revert of r5306. com.h defines MAX_NR_TASKS value which replaces
NR_TASKS in the endpoint macros. MAX_NR_TASKS defines the maximal number of
kernel tasks. It is unlikely that we will ever need this many tasks as the goal
is not to have such a difference in the future. For now it makes possible to
remove the limiting NR_TASKS from the endpoint code.

14 years agoRemoved macros that depend on NOTIFY_FROM from servers and drivers. They
Tomas Hruby [Tue, 29 Sep 2009 18:47:56 +0000 (18:47 +0000)]
Removed macros that depend on NOTIFY_FROM from servers and drivers. They
determine the information defined by these macros from the m_source field of the
notify message.

14 years agoadd SDL-1.2.13
Ben Gras [Tue, 29 Sep 2009 14:32:49 +0000 (14:32 +0000)]
add SDL-1.2.13

14 years agosort; throw out old packages; qemu in
Ben Gras [Tue, 29 Sep 2009 14:31:26 +0000 (14:31 +0000)]
sort; throw out old packages; qemu in

14 years agoRemoved debug string
Thomas Veerman [Tue, 29 Sep 2009 13:23:04 +0000 (13:23 +0000)]
Removed debug string

14 years agorevert mkfs change; might run out of inodes, but large number of inodes
Ben Gras [Tue, 29 Sep 2009 12:14:35 +0000 (12:14 +0000)]
revert mkfs change; might run out of inodes, but large number of inodes
makes mkfs not want to mkfs large filesystems.

find optimal formula (e.g. dynamic capping of no. of inodes) later.

14 years agodisable address space randomisation feature in normal mode.
Ben Gras [Tue, 29 Sep 2009 12:10:30 +0000 (12:10 +0000)]
disable address space randomisation feature in normal mode.

14 years agoMacros in endpoint.h need to know about endpoint_t
Tomas Hruby [Mon, 28 Sep 2009 16:25:47 +0000 (16:25 +0000)]
Macros in endpoint.h need to know about endpoint_t

14 years agodisable 'clever' optimisation (workaround for vmware(?) problem)
Ben Gras [Mon, 28 Sep 2009 15:47:01 +0000 (15:47 +0000)]
disable 'clever' optimisation (workaround for vmware(?) problem)

14 years agoassert overammbitious.
Ben Gras [Mon, 28 Sep 2009 01:23:11 +0000 (01:23 +0000)]
assert overammbitious.

14 years agothrew out sanity checks before pagetable rewrites, triggering false
Ben Gras [Sun, 27 Sep 2009 12:44:36 +0000 (12:44 +0000)]
threw out sanity checks before pagetable rewrites, triggering false
page table inconsistencies.

fix handle_memory logic. again.

14 years agofield for sanity check feature.
Ben Gras [Sun, 27 Sep 2009 12:37:37 +0000 (12:37 +0000)]
field for sanity check feature.

14 years agonew prototypes.
Ben Gras [Sun, 27 Sep 2009 12:37:16 +0000 (12:37 +0000)]
new prototypes.

14 years agoverbose printing and sanity checking functions.
Ben Gras [Sun, 27 Sep 2009 12:36:48 +0000 (12:36 +0000)]
verbose printing and sanity checking functions.

14 years agore-enable munmap().
Ben Gras [Fri, 25 Sep 2009 19:01:27 +0000 (19:01 +0000)]
re-enable munmap().

14 years agounnecessarily verbose message.
Ben Gras [Fri, 25 Sep 2009 17:59:38 +0000 (17:59 +0000)]
unnecessarily verbose message.

14 years agoold reminder
Ben Gras [Fri, 25 Sep 2009 17:58:23 +0000 (17:58 +0000)]
old reminder

14 years agoget_randomness restored.
Ben Gras [Fri, 25 Sep 2009 17:57:24 +0000 (17:57 +0000)]
get_randomness restored.

14 years agoalso don't let user process change ss segment selector when returning from
Ben Gras [Fri, 25 Sep 2009 17:44:26 +0000 (17:44 +0000)]
also don't let user process change ss segment selector when returning from
signal.

14 years agocorrect logic error in region.c.
Ben Gras [Fri, 25 Sep 2009 17:39:39 +0000 (17:39 +0000)]
correct logic error in region.c.

14 years agopre-APPROVEd (thanks Arun) sanity check function.
Ben Gras [Fri, 25 Sep 2009 11:12:06 +0000 (11:12 +0000)]
pre-APPROVEd (thanks Arun) sanity check function.

14 years agoBroken pipes fix
Tomas Hruby [Thu, 24 Sep 2009 16:03:25 +0000 (16:03 +0000)]
Broken pipes fix

- fix for the broken partial pipes r/w operations

14 years agops fix
Tomas Hruby [Thu, 24 Sep 2009 16:00:59 +0000 (16:00 +0000)]
ps fix

It removes the no more existing marcos (XPIPE XPOPEN XDOPEN XLOCK XSELECT) and
replaces them with the new ones from servers/vfs/const.h No more dependency on
NR_TASKS macro.

15 years agothrow out the debugging stuff again.
Ben Gras [Wed, 23 Sep 2009 16:26:05 +0000 (16:26 +0000)]
throw out the debugging stuff again.

15 years agodebug output in SANITYCHECKS mode
Ben Gras [Wed, 23 Sep 2009 16:02:27 +0000 (16:02 +0000)]
debug output in SANITYCHECKS mode

15 years agomissing level-- in out-of-memory case.
Ben Gras [Wed, 23 Sep 2009 15:19:36 +0000 (15:19 +0000)]
missing level-- in out-of-memory case.

15 years agotemporarily disable munmap() to mask memory problem.
Ben Gras [Wed, 23 Sep 2009 13:34:04 +0000 (13:34 +0000)]
temporarily disable munmap() to mask memory problem.

15 years ago - simplify findhole() for use for 1 page only
Ben Gras [Wed, 23 Sep 2009 13:33:01 +0000 (13:33 +0000)]
 - simplify findhole() for use for 1 page only
 - do WMF_FREE
 - added WMF_VERIFY to check page table contents
 - randomize address space usage in vm self

15 years agosave a few lines of unnecessary output.
Ben Gras [Wed, 23 Sep 2009 13:27:21 +0000 (13:27 +0000)]
save a few lines of unnecessary output.

15 years agoRelease script: Increase root ramdisk to 8KB
Arun Thomas [Wed, 23 Sep 2009 11:07:55 +0000 (11:07 +0000)]
Release script: Increase root ramdisk to 8KB

15 years agogive sys_fork() a real endpoint_t * arg
Ben Gras [Wed, 23 Sep 2009 10:48:57 +0000 (10:48 +0000)]
give sys_fork() a real endpoint_t * arg

15 years agoFixed compilation errors in ps.c and rs/manager.c. The former was fixed by disabling...
Erik van der Kouwe [Wed, 23 Sep 2009 08:46:17 +0000 (08:46 +0000)]
Fixed compilation errors in ps.c and rs/manager.c. The former was fixed by disabling code using no-longer-existant flags and the latter by removing the spurious parameter i from sys_privctl

15 years agoNOT_REACHABLE() removed until ack will be taught to handle macros as a grownup
Tomas Hruby [Wed, 23 Sep 2009 07:25:04 +0000 (07:25 +0000)]
NOT_REACHABLE() removed until ack will be taught to handle macros as a grownup
compiler

15 years agoremoved idt_reload()
Tomas Hruby [Wed, 23 Sep 2009 07:20:57 +0000 (07:20 +0000)]
removed idt_reload()

- not part of klib386 yet

15 years agoRemoved the broken PROC_EVENT and SYN_ALARM from VFS
Tomas Hruby [Tue, 22 Sep 2009 22:11:20 +0000 (22:11 +0000)]
Removed the broken PROC_EVENT and SYN_ALARM from VFS

15 years agoRemoved dependency of vfs on NR_TASKS macro
Tomas Hruby [Tue, 22 Sep 2009 21:48:26 +0000 (21:48 +0000)]
Removed dependency of vfs on NR_TASKS macro

- all macros in consts.h that depend on NR_TASKS replaced by a FP_BLOCKED_ON_*

- fp_suspended removed and replaced by fp_blocked_on. Testing whether a process
  is supended is qeual to testing whether fp_blocked_on is FP_BLOCKED_ON_NONE or
  not

- fp_task is valid only if fp_blocked_on == FP_BLOCKED_ON_OTHER

- no need of special values that do not colide with valid and special endpoints
  since they are not used as endpoints anymore

- suspend only takes FP_BLOCKED_ON_* values not endpoints anymore

- suspend(task) replaced by wait_for(task) which sets fp_task so we remember who
  are we waiting for and suspend sets fp_blocked_on to FP_BLOCKED_ON_OTHER to
  signal that we are waiting for some other process

- some functions should take endpoint_t instead of int, fixed

15 years agoNOT_REACHABLE macro
Tomas Hruby [Tue, 22 Sep 2009 21:46:47 +0000 (21:46 +0000)]
NOT_REACHABLE macro

- marks code path that should be unreachable (never executed)

- if hit, panics and reports the problem

- the end of main() marked as such. The SMP changes need some magic with stack
  switching before the AP can be started as they need to run on the boot stack
  before figuring out what is their own stack. As main() uses the boot stack to,
  we need to switch to to the stack of BSP before executing the last part of
  main() which needs to be in a separate function so we can jump to it.
  Therefore restart() won't be the last call in main() which may be confusing.
  The macro can/should be used in other such places too.

15 years agoRemoved NR_TASKS from macros manipulating endpoint_t
Tomas Hruby [Tue, 22 Sep 2009 21:45:26 +0000 (21:45 +0000)]
Removed NR_TASKS from macros manipulating endpoint_t

- the magic numbers ANY, NONE and SELF are kept for the compatibility with the
  current userspace. It is OK as long as NR_PROCS is greater so they don't
  colide with other endpoints

- the 32 bit endpoint_t value is split in half, lower 16 bits for process slot
  number and upper half for generation number

- transition to a structured endpoint_t in the future possible

15 years agoendpoint_t in syslib
Tomas Hruby [Tue, 22 Sep 2009 21:42:02 +0000 (21:42 +0000)]
endpoint_t in syslib

- headers use the endpoint_t in syslib.h and the implmentation was using int
  instead. Both uses endpoint_t now

- every variable named like proc, proc_nr or proc_nr_e of type endpoint_t has
  name proc_ep now

- endpoint_t defined as u32_t not int

15 years agoumount before ramdisk spec to allow resizing
Ben Gras [Tue, 22 Sep 2009 14:01:17 +0000 (14:01 +0000)]
umount before ramdisk spec to allow resizing

15 years agoallow resizing of ramdisks.
Ben Gras [Tue, 22 Sep 2009 13:57:21 +0000 (13:57 +0000)]
allow resizing of ramdisks.

15 years agoRemove duplicate nanosleep stub
Erik van der Kouwe [Tue, 22 Sep 2009 12:05:22 +0000 (12:05 +0000)]
Remove duplicate nanosleep stub

15 years agounmap VR_DIRECT mappings too (fix for X)
Ben Gras [Tue, 22 Sep 2009 11:51:17 +0000 (11:51 +0000)]
unmap VR_DIRECT mappings too (fix for X)

15 years agounused, thanks david
Ben Gras [Mon, 21 Sep 2009 21:00:36 +0000 (21:00 +0000)]
unused, thanks david

15 years agosha1 unused now.
Ben Gras [Mon, 21 Sep 2009 20:32:53 +0000 (20:32 +0000)]
sha1 unused now.

15 years agoforgot to svn add this.
Ben Gras [Mon, 21 Sep 2009 19:56:30 +0000 (19:56 +0000)]
forgot to svn add this.

15 years agoRS_LOOKUP feature for libc functions that want to access servers.
Ben Gras [Mon, 21 Sep 2009 15:25:15 +0000 (15:25 +0000)]
RS_LOOKUP feature for libc functions that want to access servers.

let ipc talk to all USER processes and vice versa.

pm sig wrapper notify has to be called from two files.

actually install include files.

15 years agofp might be NULL.
Ben Gras [Mon, 21 Sep 2009 15:23:08 +0000 (15:23 +0000)]
fp might be NULL.

15 years agoipc tests by GQ
Ben Gras [Mon, 21 Sep 2009 14:53:53 +0000 (14:53 +0000)]
ipc tests by GQ

15 years agonew ipc server that implements shared memory and semaphores.
Ben Gras [Mon, 21 Sep 2009 14:53:13 +0000 (14:53 +0000)]
new ipc server that implements shared memory and semaphores.

this server, tests, vm support, library stubs and other contributions
are the work of Guanqun Lu, a 2009 GSOC student.

15 years ago - pages that points to page directory values of all processes,
Ben Gras [Mon, 21 Sep 2009 14:49:49 +0000 (14:49 +0000)]
 - pages that points to page directory values of all processes,
   shared with the kernel, mapped into kernel address space;
   kernel is notified of its location. kernel segment size is
   increased to make it fit.
 - map in kernel and other processes that don't have their
   own page table using single 4MB (global) mapping.
 - new sanity check facility: objects that are allocated with
   the slab allocator are, when running with sanity checking on,
   marked readonly until they are explicitly unlocked using the USE()
   macro.
 - another sanity check facility: collect all uses of memory and
   see if they don't overlap with (a) eachother and (b) free memory
 - own munmap() and munmap_text() functions.
 - exec() recovers from out-of-memory conditions properly now; this
   solves some weird exec() behaviour
 - chew off memory from the same side of the chunk as where we
   start scanning, solving some memory fragmentation issues
 - use avl trees for freelist and phys_ranges in regions
 - implement most useful part of munmap()
 - remap() stuff is GQ's for shared memory

15 years ago - some exec debugging prints when errors happen
Ben Gras [Mon, 21 Sep 2009 14:49:26 +0000 (14:49 +0000)]
 - some exec debugging prints when errors happen
 - lookup mounted_on check to avoid NULL dereference
 - some errors in exec() shouldn't be fatal

15 years agosupport for vm priv system.
Ben Gras [Mon, 21 Sep 2009 14:49:04 +0000 (14:49 +0000)]
support for vm priv system.

fix NULL envp ptr.

15 years ago - Introduce some macros for field names, so that endpt, pendpt,
Ben Gras [Mon, 21 Sep 2009 14:48:19 +0000 (14:48 +0000)]
  - Introduce some macros for field names, so that endpt, pendpt,
    addr and taddr don't have to be defined any more, so that <sys/mman.h>
    can be included for proper prototypes of munmap() and friends.
  - rename our GETPID to MINIX_GETPID to avoid a name conflict with
    other sources
  - PM needs its own munmap() and munmap_text() to avoid sending messages
    to VM at the startup phase. It *does* want to do that, but only
    after initialising. So they're called again with unmap_ok set to 1
    later.
  - getnuid(), getngid() implementation

15 years ago - No maximum block size any more.
Ben Gras [Mon, 21 Sep 2009 14:47:51 +0000 (14:47 +0000)]
 - No maximum block size any more.
 - If allocation of a new buffer fails, use an already-allocated
   unused buffer if available (low memory conditions)
 - Allocate buffers dynamically, so memory isn't wasted on wrong-sized
   buffers.
 - No more _MAX_BLOCK_SIZE.

15 years agono more scheduling queue dumps (kernel will print this over serial);
Ben Gras [Mon, 21 Sep 2009 14:47:24 +0000 (14:47 +0000)]
no more scheduling queue dumps (kernel will print this over serial);
initial vm stats retrieve support

15 years agoclever hack to avoid starting from 0 disabled because
Ben Gras [Mon, 21 Sep 2009 14:46:42 +0000 (14:46 +0000)]
clever hack to avoid starting from 0 disabled because
when own 0-pages are mapped out, this doesn't work and
isn't necessary.

15 years agovarious syscall entry points
Ben Gras [Mon, 21 Sep 2009 14:46:10 +0000 (14:46 +0000)]
various syscall entry points

15 years agorename GETPID to MINIX_GETPID (for now); macro for field name
Ben Gras [Mon, 21 Sep 2009 14:45:46 +0000 (14:45 +0000)]
rename GETPID to MINIX_GETPID (for now); macro for field name

15 years agomore vm stubs
Ben Gras [Mon, 21 Sep 2009 14:45:09 +0000 (14:45 +0000)]
more vm stubs

15 years agoftime()
Ben Gras [Mon, 21 Sep 2009 14:44:35 +0000 (14:44 +0000)]
ftime()

15 years agomore pid queries; PM field macros; vm stubs
Ben Gras [Mon, 21 Sep 2009 14:44:00 +0000 (14:44 +0000)]
more pid queries; PM field macros; vm stubs

15 years agovm stubs; no more sys_vm_setbuf
Ben Gras [Mon, 21 Sep 2009 14:42:58 +0000 (14:42 +0000)]
vm stubs; no more sys_vm_setbuf

15 years agosysvipc dir
Ben Gras [Mon, 21 Sep 2009 14:42:13 +0000 (14:42 +0000)]
sysvipc dir

15 years agochange startup code to call munmap()/munmap_text() to map out
Ben Gras [Mon, 21 Sep 2009 14:41:47 +0000 (14:41 +0000)]
change startup code to call munmap()/munmap_text() to map out
own 0-pages.

15 years agonew sysv ipc call stubs
Ben Gras [Mon, 21 Sep 2009 14:41:03 +0000 (14:41 +0000)]
new sysv ipc call stubs

15 years ago - remove unused kmalloc
Ben Gras [Mon, 21 Sep 2009 14:39:15 +0000 (14:39 +0000)]
 - remove unused kmalloc
 - initial implementation of _read_host_time_ns, a function to retrieve
   real-time in ns in vmware virtual machines

15 years agoPrimary goal for these changes is:
Ben Gras [Mon, 21 Sep 2009 14:31:52 +0000 (14:31 +0000)]
Primary goal for these changes is:
  - no longer have kernel have its own page table that is loaded
    on every kernel entry (trap, interrupt, exception). the primary
    purpose is to reduce the number of required reloads.
Result:
  - kernel can only access memory of process that was running when
    kernel was entered
  - kernel must be mapped into every process page table, so traps to
    kernel keep working
Problem:
  - kernel must often access memory of arbitrary processes (e.g. send
    arbitrary processes messages); this can't happen directly any more;
    usually because that process' page table isn't loaded at all, sometimes
    because that memory isn't mapped in at all, sometimes because it isn't
    mapped in read-write.
So:
  - kernel must be able to map in memory of any process, in its own
    address space.
Implementation:
  - VM and kernel share a range of memory in which addresses of
    all page tables of all processes are available. This has two purposes:
      . Kernel has to know what data to copy in order to map in a range
      . Kernel has to know where to write the data in order to map it in
    That last point is because kernel has to write in the currently loaded
    page table.
  - Processes and kernel are separated through segments; kernel segments
    haven't changed.
  - The kernel keeps the process whose page table is currently loaded
    in 'ptproc.'
  - If it wants to map in a range of memory, it writes the value of the
    page directory entry for that range into the page directory entry
    in the currently loaded map. There is a slot reserved for such
    purposes. The kernel can then access this memory directly.
  - In order to do this, its segment has been increased (and the
    segments of processes start where it ends).
  - In the pagefault handler, detect if the kernel is doing
    'trappable' memory access (i.e. a pagefault isn't a fatal
     error) and if so,
       - set the saved instruction pointer to phys_copy_fault,
 breaking out of phys_copy
       - set the saved eax register to the address of the page
 fault, both for sanity checking and for checking in
 which of the two ranges that phys_copy was called
 with the fault occured
  - Some boot-time processes do not have their own page table,
    and are mapped in with the kernel, and separated with
    segments. The kernel detects this using HASPT. If such a
    process has to be scheduled, any page table will work and
    no page table switch is done.

Major changes in kernel are
  - When accessing user processes memory, kernel no longer
    explicitly checks before it does so if that memory is OK.
    It simply makes the mapping (if necessary), tries to do the
    operation, and traps the pagefault if that memory isn't present;
    if that happens, the copy function returns EFAULT.
    So all of the CHECKRANGE_OR_SUSPEND macros are gone.
  - Kernel no longer has to copy/read and parse page tables.
  - A message copying optimisation: when messages are copied, and
    the recipient isn't mapped in, they are copied into a buffer
    in the kernel. This is done in QueueMess. The next time
    the recipient is scheduled, this message is copied into
    its memory. This happens in schedcheck().
    This eliminates the mapping/copying step for messages, and makes
    it easier to deliver messages. This eliminates soft_notify.
  - Kernel no longer creates a page table at all, so the vm_setbuf
    and pagetable writing in memory.c is gone.

Minor changes in kernel are
  - ipc_stats thrown out, wasn't used
  - misc flags all renamed to MF_*
  - NOREC_* macros to enter and leave functions that should not
    be called recursively; just sanity checks really
  - code to fully decode segment selectors and descriptors
    to print on exceptions
  - lots of vmassert()s added, only executed if DEBUG_VMASSERT is 1

15 years agominor change to panic code
Ben Gras [Mon, 21 Sep 2009 14:28:16 +0000 (14:28 +0000)]
minor change to panic code