pageouts active and give up only if the pagedaemon could not free
memory and there are no outstanding pageouts.
This should fix the "out of memory" pauses reported by Mihai Chelaru
and Taylor R Campbell. Tested by copying files to and from an ffs
backed by /dev/wd0 (with and without -o log) using a 1MB rump kernel
memory limit.
of p_start/endzero for whatever reasons.
Obviously, this fixes remote physio when running with MALLOC_OPTIONS J.
Otherwise PS_WEXIT is set in struct proc, proc_vmspace_getref() fails,
and copyout_proc() with it.
Reported by njoly
every time the virtual device is opened. this takes care of e.g.
a midlife chmod crisis
* when mapping initial windows, consistently look at host size and
host offset. otherwise we might end up in a situation with 0
initial windows mapped, and that will cause a crash later.
to open(), which act just like lookups if the node exists (found
from etfs). If the node doesn't exist in etfs, nothing changes
from the previous situation.
(and especially, after filesystems have been unmounted).
This way, rump.halt returns once the rump kernel is really out of the
game, which avoids races issues in test scripts using a rump kernel.
OK pooka@
returning directly. This allows other threads to run possible
setting a condition we are waiting on.
Fixes a busyloop condition which could be entered from vfs_unmountall()
where we were waiting for vrele_pending and the vrele thread could
not run since we were hogging the CPU.
should generate the right info, but it's easier to fix here now.
This fixes compat syscalls for rump servers with dynamically loaded
components. Since the compat syscall revamp a little time ago e.g.
stat() didn't work on my system (which is 5.0-based) with e.g.
rump_server -lrumpvfs. Static servers and non-compat syscalls
worked just fine, though, making this a little harder to spot that
the usual bug.
in the socket before we shut down. This way the response to the
syscall travels to the caller and they know things worked correctly
instead of having to just assume.
necessary for rump.
XXX: strictly speaking, the zfs implementation does not work
correctly since it just wakes up a thread instead of performing
the scan in the context of the pagedaemon
if it has enough memory available, just pick a number which makes
zfs happy.
We *could* use a MIN() of available host mem and rump_memlimit,
though ...
some locking and rumpcopy primitives and refactor module building Makefiles
to work with both RUMP and kernel modules. This is first part of adding
support for regular test of zfs on NetBSD to hunt some bugs and make it
stable.
Ok by pooka@.