NetBSD/sys/rump/librump/rumpuser
pooka 9454f185c4 Add initial work on a rump virtual cpu scheduler. This is necessary
for kernel code which has been written to avoid MP contention by
using cpu-local storage (most prominently, select and pool_cache).

Instead of always assuming rump_cpu, the scheduler must now be run
(and unrun) on all entry points into rump.  Likewise, rumpuser
unruns and re-runs the scheduler around each potentially blocking
operation.  As an optimization, I modified some locking primitives
to try to get the lock without blocking before releasing the cpu.

Also, ltsleep was modified to assume that it is never called without
the biglock held and made to use the biglock as the sleep interlock.
Otherwise there is just too much drama with deadlocks.  If some
kernel code wants to call ltsleep without the biglock, then, *snif*,
it's no longer supported and rump and should be modified to support
newstyle locks anyway.
2009-10-15 00:28:46 +00:00
..
Makefile Load modules from all components which are linked into a rump binary 2009-09-24 21:30:42 +00:00
rumpuser_dl.c "rumppriv" goes back to "rump" per internal interface naming change. 2009-10-14 18:18:53 +00:00
rumpuser_int.h Add initial work on a rump virtual cpu scheduler. This is necessary 2009-10-15 00:28:46 +00:00
rumpuser_net.c add rumpuser_net_setsockopt() 2009-09-02 19:02:51 +00:00
rumpuser_pth_dummy.c catch locking-against-oneself already when taking the lock 2009-04-29 14:58:50 +00:00
rumpuser_pth.c Add initial work on a rump virtual cpu scheduler. This is necessary 2009-10-15 00:28:46 +00:00
rumpuser.3 Backup some manual page sketches lest I delete the wrong source tree. 2008-07-28 18:34:31 +00:00
rumpuser.c Provide an interface for reboot. 2009-10-09 14:41:36 +00:00