Thomas Veerman [Fri, 26 Aug 2011 15:14:55 +0000 (15:14 +0000)]
Let FSes exit themselves upon system shutdown
During shutdown all processes are semi-exited and FSes are unmounted.
This semi-exit causes trouble for FUSE mounts as they still need access
to file descriptors and working directory in order to unmount.
Thomas Veerman [Fri, 26 Aug 2011 13:16:16 +0000 (13:16 +0000)]
Clean up tests and do runtime test for max name length
- Remove unused code
- Use standard functions declared in common.c
- Change tests to do a runtime test for the max name length of a path
component (aka NAME_MAX). The actual value might differ from the hard
coded NAME_MAX depending on the file system used.
Ben Gras [Thu, 18 Aug 2011 00:08:38 +0000 (00:08 +0000)]
use minix malloc
. default jemalloc is not too easy to compile without threads
libraries/types
. non-default malloc has odd virtual address space binge problem
. switch to ack/minix malloc in old libc for now
Ben Gras [Thu, 4 Aug 2011 23:15:16 +0000 (23:15 +0000)]
increase system-wide filename limit to 255
. move mfs-specific struct, constants to mfs/, so
mfs-specific, on-disk format structs and consts are
fully isolated from generic structs and functions
. removes de and readfs utils
Thomas Cort [Sun, 14 Aug 2011 12:41:39 +0000 (12:41 +0000)]
mkdir: allow 'mkdir -p' with trailing '/'
Let's suppose that /usr/tmp exists and one wants /usr/tmp/a/b
If one runs "mkdir -p /usr/tmp/a/b/" (the '/' at the end is
important), then a "File exists" error comes up. Example:
Ben Gras [Fri, 12 Aug 2011 20:59:23 +0000 (20:59 +0000)]
kernel: don't use -ffreestanding
. workaround for clang's stdint.h __STDC_HOSTED__ test
that causes the host stdint.h to be ignored for -ffreestanding,
causing a type to be double-defined in the kernel
Ben Gras [Mon, 1 Aug 2011 13:35:34 +0000 (15:35 +0200)]
kernel: invlpg facility
. only use for single-page invalidations initially
. shows tiny but statistically significant performance
improvement; will be more helpful in certain VM debug
modes
Ben Gras [Thu, 4 Aug 2011 23:52:03 +0000 (23:52 +0000)]
vm/ipc: only report signals when it matters to ipc
. ipc wants to know about processes that get
signals, so that it can break blocking ipc operations
. doing it for every single signal is wasteful
and causes the annoying 'no slot for signals' message
. this fix tells vm on a per-process basis it (ipc)
wants to be notified, i.e. only when it does any ipc calls
. move ipc config to separate config file while we're at it
Antoine Leca [Tue, 26 Jul 2011 11:49:20 +0000 (13:49 +0200)]
ash: don't rely on libc signal names
The bsd signal names are out-of-order compared to the minix ones.
I found out (the hard way) that the (MINIX-descending) ordered list of
signals in <sys/signal.h> does not match the (BSD-descending) ordered
list of signals in usr/src/lib/libc/nbsd_libc/gen/sig{name,list}.c
Beyond being unfortunate, it prevents the trap command of ash to handle
correctly a named signal; a funny test case is
#!/bin/sh
trap 'echo trapping signal BUS' BUS
trap 'echo trapping signal 10 (USR1)' 10
trap # show me what is currently trapped
As a quick workaround, I disabled the use of the libc-provided
sys_sig{name,list} arrays for ash, and reverted to the hand-made array
which is used by the less capable MINIX libc. It allowed me to use
pkgsrc.
Ben Gras [Tue, 26 Jul 2011 15:59:57 +0000 (17:59 +0200)]
add /etc/resolv.conf pointing to minix nonamed
. needed for netbsd libc dns resolution
. points to minix nonamed
. /etc/resolv.conf should have the real info
(written by netconf / dhcp client)
. nonamed should be phased out but will probably
be around for the 'old' libc