Commit Graph

1637 Commits

Author SHA1 Message Date
pooka
5f240a5279 unionfs voodoo 2011-01-12 21:08:55 +00:00
pooka
0312c5cee5 Explicitly set *vpp to NULL in lookup. At least reluckup gets
upset if we don't explicitly nullify vpp in the error case.
2011-01-12 19:31:39 +00:00
pooka
0f41405209 reject r/o mount attempts 2011-01-12 17:20:54 +00:00
pooka
8c4600a2ed Mark rootfs r/w. Thanks to the incredible machine known as vfs,
the only one who noticed the inconsistency of writing to a r/o fs
was unionfs.
2011-01-12 17:14:34 +00:00
pooka
6f53b4a35d make this happy to compile standalone 2011-01-12 16:12:30 +00:00
pooka
2bd6ac2300 add spop_procexit 2011-01-12 12:51:47 +00:00
pooka
b0bfbf33ac When the client and the rump kernel are the same host process, all
threads blocking in the kernel automatically exit when the process
exists.  However, for the sysproxy case this does not hold.
Typically it's ~harmless, but e.g. in the case of socket binding
following by poll it gets annoying.

Introduce sysproxy procexit, which wakes up all threads blocking
on a condition when a process's communication socket is closed.
The code is a little different from the regular kernel simply
because in a rump kernel l_mutex is not available at all times
(this is because scheduling happens on every kernel entry and exit,
and that path must be kept lockless for any reasonable performance).
Instead, use gating which makes sure all threads are either out of
the cv code or suspended in a well-known state.  Then, wake up the
threads and tell them to get the hell out of our galaxy.
2011-01-12 12:51:21 +00:00
kefren
6469d79cd6 add advlock to rumpfs, ok pooka@ 2011-01-11 14:05:32 +00:00
pooka
0de1b73a11 KASSERT we don't return back to userspace with the kernel lock held. 2011-01-11 10:49:20 +00:00
pooka
a05de63f6b Ensure that a) loopback attaches after all the domains have attached
b) loopback is configured only after it has attached.

makes tests/net/if_loop work again
2011-01-11 09:24:05 +00:00
pooka
68ede6388b Add one more component level to networking: IFCFG.
It is executed after IF and the purposes to guarantee the right
order in cross-component interface address configuration.
(e.g. lo0 is attached by net but 127.0.0.1 is configured by netinet)
2011-01-11 09:22:32 +00:00
christos
fb4e945aa5 regen 2011-01-10 04:42:24 +00:00
pooka
574a31f2de Shortcircuit remote 0-len copyin/out already in the kernel. 2011-01-09 14:12:37 +00:00
pooka
35e989d694 accept '\0' as a valid string 2011-01-09 13:49:57 +00:00
pooka
9a17e75e0e Autoconfigure 127.0.0.1 for lo0.
(testing bind/connect/etc. is now possible on a virgin rump kernel
without the need to ifconfig anything)
2011-01-09 12:22:34 +00:00
pooka
284c651488 Separate interface init and domain adding. 2011-01-09 12:20:53 +00:00
pooka
74e0a75b03 Allow multiple RUMP_COMPONENT() in one file. 2011-01-09 12:20:10 +00:00
pooka
712b80467f SIGPIPE is generated internally by the kernel, so include it in
the list of "no panic" sigs.
2011-01-08 14:01:04 +00:00
pooka
6d44fb2799 Do a minidehumanizenumber for RUMP_MEMLIMIT. Now you can set it
to e.g. 16m instead of having to type out 16777216.
2011-01-08 09:40:05 +00:00
pooka
3a382dc397 Avoid double init of tty_lock if rumpkern_tty is included. LOCKDEBUG
does not tolerate double inits.

pointed out by njoly
2011-01-07 15:10:22 +00:00
pooka
f9736ee54f Censor no-longer-relevant flags which may be passed down from
somewhere (e.g. an older kernel).  We really can't do anything
about new flags or flags changing meaning, though.
2011-01-07 11:27:53 +00:00
pooka
46b37b0509 regen: fix PARAMASK 2011-01-07 11:25:43 +00:00
pooka
97936d4ea0 antipasto 2011-01-06 13:36:48 +00:00
pooka
04056e47b5 give the outside world some idea of if we have LOCKDEBUG or not 2011-01-06 13:09:17 +00:00
pooka
cd73d116db Support LOCKDEBUG. To use it, compile sys/rump with RUMP_LOCKDEBUG=yes.
requested by martin (sparc64 gdb cannot reliably produce a stack trace)
2011-01-06 11:22:54 +00:00
pooka
51426b1ada cwdi0 lock is now initialized in proc0_init() 2011-01-06 10:20:57 +00:00
pooka
4b258054be Add NetBSD 5 compat wrapping for *utimes() 2011-01-04 17:00:19 +00:00
pooka
a9dcf542ce Add SMP support for all architectures.
tested on sparc64 by martin
2011-01-04 16:23:35 +00:00
pooka
da5a203b0b Need to check for VNOVAL when setting attrs. 2011-01-04 09:49:16 +00:00
pooka
41cdab1b22 Don't try to change the size of non-reg nodes or when vattr doesn't
contain a new size.

from njoly
2011-01-04 00:09:43 +00:00
pooka
7766a79555 kqueue signal filters are not supported, so be explicit about it. 2011-01-03 14:57:06 +00:00
pooka
afa6c20325 regen: rump_lwproc_rfork 2011-01-02 12:53:13 +00:00
pooka
8b69e65f3e There is a use case where preserving the parent's fd table is
relevant, so to accommodate that change rump_lwproc_newproc() to
rump_lwproc_rfork().  The new interface has the rfork() fd table
semantics.  The equivalent of rump_lwproc_newproc() is
rump_lwproc_rfork(RUMP_RFCFDG).
2011-01-02 12:52:25 +00:00
dholland
a2770d1fb4 Final regen for tonight. 2011-01-02 05:12:56 +00:00
dholland
201ce42cd0 Regen yet again. 2011-01-02 05:09:50 +00:00
dholland
bf71879ee8 Regen again. 2011-01-02 05:05:42 +00:00
dholland
ef568a47eb Regen. 2011-01-02 05:02:04 +00:00
pooka
d015d3f957 Report correct file size + deal with ftruncate() and O_APPEND. 2011-01-01 19:47:22 +00:00
pooka
5cf9cd8f68 regen for comments 2010-12-30 20:11:07 +00:00
pooka
7b44389237 regen: SYCALL_NOSYS in rump_sysent[] 2010-12-30 16:51:28 +00:00
pooka
9b98cb6805 Requery syscall handlers during rump kernel init. This fixes
syscalls provided by a rump faction such as rumpvfs when the library
is not linked into the binary, but is dlopen()'d before calling
rump_init().
(it is illegal to dlopen() a faction after rump_init(), but syscalls
maybe be added the usual way with modules)

rump_server(1) -lstuff works now.
2010-12-30 16:46:32 +00:00
pooka
4513e431d6 Refetch netisr function pointers with dlsym(). This gives the
desired values in case the components containing the netisr handlers
were not linked in but dlopen()'d before calling rump_init().

(could simplify a little in case static linking is declared dead)
2010-12-30 16:19:39 +00:00
pooka
2aa9fbc0b2 Allow rump kernel to call dlsym(RTLD_DEFAULT). 2010-12-30 15:47:30 +00:00
pooka
6234f7657c regen: whitespace polish police 2010-12-30 13:38:56 +00:00
skrll
1892263359 Pull in sys/atomic.h so that hp700 can build - needed for membar_exit. 2010-12-18 14:01:43 +00:00
pooka
5e6a6543ba Don't loop eternally if uiomove() fails eternally (e.g. because
the connection to the client has been severed).
2010-12-18 11:45:09 +00:00
pooka
a290b96152 Use correct spec_islocked method. 2010-12-18 08:20:12 +00:00
rmind
11a35aed4d - Fix a few possible locking issues in execve1() and exit1(). Add a note
that scheduler locks are special in this regard - adaptive locks cannot
  be in the path due to turnstiles.  Randomly spotted/reported by uebayasi@.
- Remove unused lwp_relock() and replace lwp_lock_retry() by simplifying
  lwp_lock() and sleepq_enter() a little.
- Give alllwp its own cache-line and mark lwp_cache pointer as read-mostly.

OK ad@
2010-12-18 01:36:19 +00:00
joerg
dc09d3bc32 Support MKREPRO 2010-12-17 00:53:16 +00:00
pooka
3c4a27f7cd Print a banner a connecting client. The banner contains rump sp
protocol version, os name, os revision and machine.
2010-12-16 12:38:20 +00:00