Commit Graph

1594 Commits

Author SHA1 Message Date
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
pooka
92050ae959 stubs to make life easier 2010-12-13 14:03:59 +00:00
pooka
cee48cd5d1 Call rumpuser_sp_fini() from cpu_reboot() to make sure sys_reboot
with RB_HALT does not hang.
2010-12-12 17:11:33 +00:00
pooka
c59435eea2 add rumpuser_sp_fini, which surpringly is the opposite of rumpuser_sp_init 2010-12-12 17:10:36 +00:00
pooka
8a596af853 print a bit more diagnostics when halting 2010-12-12 13:18:07 +00:00
pooka
02357b48fb weak stubs for agr(4) 2010-12-08 20:20:52 +00:00
pooka
3589617ac9 agr(4) support 2010-12-08 20:20:16 +00:00
pooka
4dd3369fc2 add weak stubs for bridge (not the game) 2010-12-08 18:06:58 +00:00
pooka
7ed2407316 Actually, unlike e.g. carp, bridge can be its own component since
it doesn't want to join the protosw party.  We can deal with other
linkhappy stuff with weak symbols.

(where is our modular networking stack?)
2010-12-08 18:06:43 +00:00
joerg
db91f3e244 Don't alias the same symbol twice. 2010-12-08 01:22:55 +00:00
pooka
8d84854f4d add drvctl component 2010-12-07 21:38:07 +00:00
pooka
9b108f4af3 Support bridging. As usual, it would be nice if this could be a
separate component, but King Ifdef doesn't let us.
2010-12-07 20:39:07 +00:00
pooka
f03553f56f haad removed 64bit atomic ops from dm, so put it back on the MI all list 2010-12-07 17:25:40 +00:00
pooka
e7ec49d29a sockin cannot be loaded the same time as rumpnet_inet because both
provide a PF_INET domain.  Guess that real inet is more useful and
don't put sockin on the "all components" list.
2010-12-07 17:23:27 +00:00
pooka
53fd187690 Allow creation with NULL busname (to be later set with SIOCSLINKSTR). 2010-12-06 10:48:18 +00:00
pooka
6816648ce4 use -isystem where appropriate 2010-12-06 09:12:34 +00:00
pooka
99f70917f1 dm uses non-MI 64bit atomic ops, so don't include it in the default list. 2010-12-05 22:01:23 +00:00
pooka
76c4650a3f Leave usb-stuff out of alldevs until DELAY() is mi. 2010-12-05 20:39:10 +00:00
pooka
fee25d6c52 rumpcrypto should never have been its own faction, so finally make
it a component under kern, i.e. rumpcrypto -> rumpkern_crypto.
2010-12-05 20:11:21 +00:00
pooka
7e29270f53 claim ENOTTY for PRU_CONTROL for now 2010-12-05 18:01:46 +00:00
pooka
fdb9b6e9bf Revert previous: it introduces a dependency between sockin and the
netinet rump components and will have to be done another way.
2010-12-05 17:59:12 +00:00
pooka
6292852036 Rename Makefile.rump${x} to Makefile.rump${x}comp for consistency. 2010-12-05 16:53:46 +00:00
pooka
a0cc35fc67 include usb_verbose in the component (at least for the time being) 2010-12-05 16:51:00 +00:00
pooka
6c11d60910 whitespace polish 2010-12-05 16:50:09 +00:00
pooka
6dccdaa019 Make build similar to fs, net & dev. 2010-12-05 16:27:42 +00:00
pooka
520524fd92 Fix RUMPFSLIBS etc. As collateral, rename nullfs/umapfs to match
the vfsname, i.e. to "null" and "umap".
2010-12-05 16:11:16 +00:00
pooka
6ec300d935 get rid of this uninstalled "test", even i haven't compiled it for ages 2010-12-05 16:02:04 +00:00
pooka
2665f62b03 use in_control() for PRU_CONTROL 2010-12-05 15:54:50 +00:00
pooka
688fddb6c6 add ci_curlwp since we use it now 2010-12-02 21:20:39 +00:00
pooka
1de81dd955 If the pagedaemon cannot free any memory due to not being able to
lock any uvm objects, check if lockholders are currently on CPU
and yield to try very soon again instead of assuming deadlock.

This makes limited-memory kernels perform the same as memory-unlimited
kernels (provided there is a reasonable amount of memory available).
For example, for large file copy off of ffs where the image is
backed on host memory (i.e. no disk i/o, i.e. ideal conditions)
the figures are, per rump kernel memory limit:

3000kB: same
1000kB: 10% slower
500kB:  50% slower

(per pagedaemon code might still be able to use some tweak, though)
2010-12-01 20:29:56 +00:00
pooka
48ac8b3849 implement mutex_owner() 2010-12-01 17:22:51 +00:00
pooka
cac1c6e392 Don't bother asserting: if we create the thread without KTHREAD_MPSAFE,
it's not going to be MPSAFE.
2010-12-01 15:13:24 +00:00
pooka
5f9e9d2543 rumpuser interface changed 2010-12-01 15:02:04 +00:00
pooka
5e1b7bf36d Track lwp as the rumpuser mutex owner instead of pthread_t (this
is done in rumpuser for simplicity, since on the kernel side things
we assume we have only one pointer of space).  As a side-effect,
we can no longer know if the current thread is holding on to a
mutex locked without curlwp context (basically all mutexes inited
outside of mutex_init()).  The only thing that called rumpuser_mutex_held()
for a non-kmutex was the giant lock.  So, instead implement recursive
locking for the giant lock in the rump kernel and get rid of the
now-unused recursive pthread mutex in the hypercall interface.
2010-12-01 14:59:37 +00:00
pooka
f73729b6b4 Make uvm_pagealloc_tele() fail if the request can't be immediately
satisfied.  This allows the caller to unlock the object and the
pagedaemon to avoid deadlock even if ~all memory is consumed by
one vm object.  This in turn makes is possible to copy a large file
into a rump kernel with a 10MB memory limit (where large >> 10MB).
A little more tuning will be required to avoid the pagedaemon
hitting the sleep-and-retry path, though.

+ fix some outdated unrelated comments
2010-12-01 11:19:18 +00:00
pooka
074a7d7688 simplify 2010-11-30 18:20:41 +00:00
pooka
205a3e1371 regen: checksavecn is gone 2010-11-30 16:27:30 +00:00
pooka
2c4a6d5bab remove unnecessary interface 2010-11-30 15:41:35 +00:00
pooka
88c803e16f fix broken rototill 2010-11-30 15:39:27 +00:00
pooka
7332ad1515 Require server to be explicitly initialized with rump_init_server(url).
Also, add rump_daemonize_begin() / rump_daemonize_end() to help
with the "can't daemon() after pthread_create()" problem.  Applications
could accomplish the same, but since it's such a common operation,
provide a little help.
2010-11-30 14:23:24 +00:00
dholland
fbc55b334e SAVENAME and HASBUF namei flags have been removed; update rumpvfs accordingly. 2010-11-30 10:48:27 +00:00
dholland
cf7974120a RUMPCN_FORCEFREE is no longer needed. 2010-11-30 10:46:59 +00:00
dholland
3538a43f3a Regen for both preceding commits of namei.src together. I suppose I should
technically have regen'd separately for each but it didn't seem worthwhile.
2010-11-30 10:44:44 +00:00
dholland
0c1edef512 Fix etfs pathname handling to not (mis)use namei's scratch space.
etfs objects must now be registered as absolute paths; however, it is now
possible to access them via relative paths and through symlinks, which
previously worked some times and not others depending on exactly what
namei was doing.

discussed on tech-kern and ok'd by pooka.
2010-11-30 01:22:50 +00:00