pooka
8d2ee87e24
Do not force _FILE_OFFSET_BITS=64 here. It's no longer strictly speaking
...
required (rumpuser interface no longer uses off_t) and force-defining
it causes foo() to magically become foo64() on glibc (even on 64bit
platforms).
2014-01-16 16:03:33 +00:00
pooka
29316c504c
Make setprogname() a nop where it's not supported.
2014-01-15 16:53:15 +00:00
pooka
2b361b10dd
remove obsolete definitions
2014-01-08 11:04:47 +00:00
pooka
6459f6aa95
do as the comment says and #if defined(every_other) || defined(platform) || ...
...
===> #if !defined(__NetBSD__)
2014-01-08 01:47:31 +00:00
pooka
f67143f64b
OpenBSD support
...
from Justin Cormack via github
2014-01-08 01:45:29 +00:00
pooka
55ffc8641a
Do not export symbols which don't need to be exported.
...
via Justin Cormack
2013-12-31 00:25:17 +00:00
pooka
cbbcae5f8b
remove outdated comment (since quite a few months ago)
2013-12-18 20:24:04 +00:00
pooka
9f9913cebe
Workaround a gcc -Wuninitilized whine
...
github/buildrump.sh issue #44
2013-11-01 23:22:13 +00:00
pooka
d3852222c9
Oh, stdint.h isn't written with a comma ...
2013-10-30 13:08:14 +00:00
pooka
e5aed19d72
need to include stdint.h before rump/rumpuser.h
2013-10-30 12:55:53 +00:00
pooka
079cd2100d
glibc on MIPS uses the same DYN d_ptr variant as NetBSD and musl.
...
from Justin Cormack
2013-10-30 12:30:32 +00:00
rmind
d60eb8c12f
librumpuser: add some #ifdef __APPLE__ and missing bits to build it on OS X.
...
OK pooka@
2013-10-27 16:39:46 +00:00
rmind
0f412aba18
Give RUMP mutex and rwlock their own cache-line. Also give a separate
...
cache-line for the rwlock's reader counter.
2013-09-26 00:41:51 +00:00
rmind
72b022939e
rumpuser_rwlock: replace internal pthread_spin_lock (for protecting reader
...
count) with atomic operations. As pthread_spin_lock is not adaptive lock, it
can have hugely negative impact if contended here, especially with priority
inversions. Now contended rwlock(9) no longer falls flat in RUMP kernels.
2013-09-24 23:45:16 +00:00
pooka
4be69cd08b
If pthread_create() fails with EAGAIN, try a few more times with short
...
sleeps in between. If it helps, good. If it doesn't, oh well, at
least we tried. pthread_create() returning EAGAIN has been observed in
real life at least on Linux (buildrump.sh issue #40 )
2013-09-23 10:35:20 +00:00
pooka
b3e8687dfb
more platform-specific qualifiers
2013-09-10 17:58:39 +00:00
pooka
6cd40f3fba
Install rumpuser_port.h
2013-09-10 16:51:24 +00:00
pooka
e9fe155c86
Change the default value of rump kernels CPUs to 2. It used to be
...
the number of host cores, but that value is overkill for most uses,
especially with massively multicore hosts. Dozens of useless virtual
CPUs are relatively speaking expensive in terms of bootstrap time and
memory footprint. On the other end of the spectrum, defaulting to 2
might shake out some bugs from the qemu test runs.
2013-08-14 08:29:25 +00:00
pooka
f3adf1e54f
comment polish: just musl
2013-07-30 18:56:03 +00:00
pooka
aaf7a23bf7
Decide ET_DYN behavior based on __GLIBC__ instead of __linux__,
...
e.g. musl libc doesn't follow glibc behavior.
per discussions with a number of people
2013-07-30 18:48:51 +00:00
njoly
f2bb7e6625
Use <major>.<minor> for NetBSD version.
2013-07-22 12:36:56 +00:00
pooka
3fcbbf6450
TIMEVAL_TO_TIMESPEC (for musl)
...
from Justin Cormack
2013-07-22 08:58:31 +00:00
pooka
40fd6d6fa3
Fixes when compiling against musl libc.
...
from Justin Cormack via private email
2013-07-20 18:46:15 +00:00
pooka
f768d01c4f
Fix build where compiler can throw an array-bounds error and
...
code is built with NDEBUG
or
platform's assert is not __dead
2013-07-18 12:28:26 +00:00
pooka
69c4f929cd
FreeBSD does the Solaris-like map->l_addr boogie.
...
from Ben Gras
2013-06-04 15:17:28 +00:00
wiz
890db9708a
More markup, less typos.
2013-05-15 22:09:32 +00:00
pooka
03395b4cf5
also, bsd.own.mk to pick up mk.conf
2013-05-15 20:47:20 +00:00
pooka
5666bf4b73
Make it possible for external parties to specify additional dplibs.
...
This is useful for example on platforms which require -ldl.
2013-05-15 20:27:00 +00:00
pooka
907ce8379e
Improve documentation on the locking order of cv_wait mtx/cpu.
2013-05-15 17:53:09 +00:00
pooka
3306a659de
Add a generalized rumpuser_syncfd() call which allows the caller
...
to request a sync or a barrier for fd.
2013-05-15 15:57:01 +00:00
pooka
601de6b09f
Pass off_t over the hypercall interface as int64_t to avoid potential
...
problems in setups where off_t doesn't want to be 64bit.
I'm already excitedly waiting for 128bit off_t and _LARGE_LARGE_FILES
2013-05-15 14:58:24 +00:00
pooka
15dc8bf975
Pass enums over the hypercall interface as ints to avoid some
...
pathological scenarios from arising in setups where enums might be
of a different size in the rump kernel and hypervisor.
2013-05-15 14:52:49 +00:00
pooka
d0d5069c1a
Add RUMPUSER_LWP_CLEAR instead of overloading RUMPUSER_LWP_SET.
...
This simplifies some alternative hypervisor implementations.
2013-05-15 14:07:26 +00:00
pooka
af9586a1db
need the rw_downgrade/tryupgrade methods too
2013-05-07 16:40:31 +00:00
pooka
c0e1ad2997
update to recent interface changes
2013-05-07 15:37:05 +00:00
pooka
059f8df6f9
include stdint.h before rumpuser.h (on some platforms it doesn't get
...
there automagically)
2013-05-07 15:18:35 +00:00
pooka
302678cea5
Initialize rw->downgrade when allocating a rwlock.
...
should/might/etc fix recent test hangs reported by martin & pgoyette
2013-05-05 12:27:38 +00:00
wiz
1747869c0f
Fix some punctuation nits and bump date for previous.
2013-05-03 20:27:16 +00:00
pooka
cfbb87e05b
Support proper rw_downgrade() semantics.
2013-05-03 00:23:49 +00:00
pooka
92e27cb3c3
reorder for better locality. no functional change.
2013-05-02 22:07:57 +00:00
pooka
f448fededb
update for previous change
2013-05-02 21:47:12 +00:00
pooka
5606f9bf46
Ok, maybe using int64 for nanoseconds in the (sec,nsec) tuple was
...
a bit too future-proof. I think long is enough there (let's just
hope nobody redefines "nano"). Also, make seconds signed just in
case someone wants their clock to be in 1901.
2013-05-02 21:45:28 +00:00
pooka
f950fd3d52
Push rwlock upgrade and downgrade into the hypervisor where there's
...
at least a chance to implement them with minimal fuss.
2013-05-02 21:35:19 +00:00
pooka
9a6702d07c
Retry enabling spin mutexes. We should be able to avoid poking the
...
scheduler by just making wakeup from cv_wait() honor the same locking
order as when a spin mutex is acquired though mutex_enter().
*fingers crossed*
2013-05-02 20:33:54 +00:00
pooka
939c69c331
Inform the rump kernel hypervisor of valid thread contexts so
...
that the implementation can allocate and release storage for them
in an optimal fashion, if necessary.
2013-05-02 19:14:59 +00:00
pooka
5fe33bdc4b
Clear rwlock's "writer" field when releasing the lock. Otherwise it might
...
have been possible for "readers" to reach visibility before "writer"
when another CPU took the lock, thus leading the previous owner to
incorrectly think that it still owned the lock in rw_write_held().
Also, remove duplicate clause from assert().
2013-05-02 16:49:08 +00:00
pooka
75af291e99
add HISTORY
2013-05-02 15:32:19 +00:00
pooka
47795d39b6
expand the intended usage of rumpuser_open()
2013-05-02 12:27:08 +00:00
pooka
a4068b6249
avoid Wunused on !NetBSD
2013-05-01 17:17:54 +00:00
pooka
aed84d6b35
document the hypercall interface
2013-04-30 21:18:40 +00:00
pooka
152588e3a9
Flip parameter order in the clock hypercalls to make them consistent
...
with everything else wrt in/out parameters.
2013-04-30 16:03:44 +00:00
pooka
6601e4ea9f
put optional modules on a separate SRCS line
2013-04-30 15:48:29 +00:00
pooka
2e5a2855bd
make this build/work again
2013-04-30 13:37:03 +00:00
pooka
c46eb786b4
In kthread_create(), pass the priority and cpu index down to the
...
rump kernel hypervisor (though the current implementation doesn't take
advantage of them).
2013-04-30 13:29:28 +00:00
pooka
be085dcd72
Translate error codes between the hypervisor and rump kernel.
2013-04-30 12:39:20 +00:00
pooka
8f668dabd5
Some systems don't provide preadv/pwritev (hi Solaris!), so implement
...
that with lseek + readv/writev instead (and avoid rewinding the
pointer with soon-to-be documentation).
2013-04-30 11:26:26 +00:00
pooka
32a34307fa
Make hypercall calling conventions consistent: iff a hypercall can fail,
...
it returns an int containing the error value.
2013-04-30 00:03:52 +00:00
pooka
0dc3609e1c
Reduce hypercalls related to reading to essentially an amalgamation
...
of readv and preadv. ditto for writing. Hypercalls are so seldomly
used that it doesn't justify 3x the calls for syntactic sugar.
2013-04-29 20:08:48 +00:00
pooka
86c3d1928f
Make rumpuser_dl_bootstrap() optional for platforms which don't
...
provide dynamic linking.
2013-04-29 18:00:19 +00:00
pooka
810cff61f8
Replace the various "get info from hypervisor" interfaces with one
...
unified rumpuser_getparam(), and make it return a plist. The
contents can come e.g. from the env or a config file. Make
identifiers starting with an underscore denote system identifiers
which must be implemented by hypervisor. (yea, j/k about the plist bit)
2013-04-29 17:31:05 +00:00
pooka
25df76591e
The fsync hypercall is now used only with close, so get rid of it.
...
rumpuser_bio() should do the necessary syncing.
2013-04-29 15:40:38 +00:00
pooka
9dda4d8626
Give private hypercalls the ability to meddle with kthread contexts too.
2013-04-29 15:20:05 +00:00
pooka
a15e077982
Create a kernel thread context for the bio upcalls.
2013-04-29 14:54:03 +00:00
pooka
5af3856aee
Make the rump kernel upcalls which were previous available only to
...
the sysproxy module available for the entire hypervisor.
2013-04-29 14:51:39 +00:00
pooka
f134f09680
set default bio mode to threaded
2013-04-29 13:57:46 +00:00
pooka
17b3a6d03d
unschedule around blocking i/o
2013-04-29 13:53:46 +00:00
pooka
831d6eeb05
RUMPUSER_OPEN_DIRECT is no longer necessary
2013-04-29 13:21:03 +00:00
pooka
696d8241ab
changes to bio hypercalls, part 3/n:
...
retire the filemmap/memsync hypercalls, they're no longer used
2013-04-29 13:19:11 +00:00
pooka
262a3aaf9f
Rework how the bio hypercalls work, part 1/n:
...
Reduce the set of hypercalls to one: "do block i/o". This not only
eliminates a lot of pseudo-duplicate code, it also gives the
hypervisor a lot more freedom on how to optimize the i/o.
2013-04-29 12:56:03 +00:00
pooka
5e41922b25
don't need event.h here anymore
2013-04-28 13:39:13 +00:00
pooka
49bb662cc0
Change rumpuser_cv_timedwait() from absolute time to relative time.
...
It's then the hypervisor's problem to translate it accordingly.
Now we no longer have to worry about the kernel having to know the
hypervisor's time and vice versa.
2013-04-28 13:37:51 +00:00
pooka
a53a2a5357
Improve the time-related hypercalls so that's it's possible to
...
sleep until an absolute time on the host's monotonic clock (should
something like that be supported).
2013-04-28 13:17:24 +00:00
pooka
ad45a6e694
make the file monitoring hypercalls private to shmif
2013-04-28 10:43:45 +00:00
pooka
b985b935c6
The ioctl hypercall is used only by the usb host controller driver,
...
so make it exclusive to that component. I'm happy to see it gone.
2013-04-28 09:58:11 +00:00
pooka
b0711f2cf4
nuke unused var
2013-04-27 17:35:10 +00:00
pooka
9dd496792d
make the random hypercall more generic
2013-04-27 16:56:29 +00:00
pooka
b8f5ee1a3f
roll mutex init hypercalls into one (one of them already took a flag anyway)
2013-04-27 16:32:56 +00:00
pooka
bd14d4eb65
wrap unportable register_t with a long. should do it in the front
...
of the house too, but at least this is a start.
2013-04-27 16:02:55 +00:00
pooka
439ef2016c
* treat kern_malloc.c as an unreal allocator (it's so lightweight)
...
* get rid of the rumpuser_realloc() hypercall
* pass size to rumpuser_free()
2013-04-27 15:34:53 +00:00
pooka
c05fab5d36
rumpuser_poll() is used only by sockin, so make the hypercall
...
private to that component.
2013-04-27 15:01:21 +00:00
pooka
93b95ff6a0
* integrate rumpuser_getversion() with the hypervisor initialization
...
* rename some identifiers to better match reality
2013-04-27 14:59:08 +00:00
pooka
bc3aabc030
Try to make sure that the appropriate calls to mutex_enter() takes
...
a spin mutex (i.e. does not relinquish cpu context while trying to
take the mutex).
Bump the hypercall interface version number. I'll be doing a bunch
of other cleanups to simplify the interface for the benefit of
alternative hypervisor implementations. I'll be riding this bump
and doing a second one only after I'm finished with all of the
changes.
2013-04-27 13:59:46 +00:00
pooka
7415696ea8
Attempt two for the previous: _ILP32 comes from headers, so don't use
...
it to decide if we want to muddle with _FILE_OFFSET_BITS.
2013-03-20 12:59:10 +00:00
pooka
5ccc76a66f
Use _FILE_OFFSET_BITS=64 on Solaris too (necessary for 32bit builds).
2013-03-20 12:30:13 +00:00
pooka
ac8531a7b9
Terminate result of readlink(). Makes writefilewatch_setup() work in
...
cases when the buffer doesn't accidentally contain suitable zeroes.
Thanks to Juan RP who debugged this with me!
2013-03-18 21:00:52 +00:00
pooka
e3425032cb
Move the rumpuser_net set of hypercalls to be a private to the sockin
...
component. This cleans up the generic hypercall interfaces from ones
specific to only one component. They should always have been private,
but the infrastructure to "make it so" didn't exist earlier.
no functional change
2013-03-18 13:14:10 +00:00
pooka
dae2a8e72e
Refine previous: sys/sysmacros.h is where MIN/MAX comes from on Solaris,
...
so it needs to be included unconditionally.
2013-03-14 21:31:35 +00:00
pooka
fe337c7fc3
StunOS >= 5.11 has posix_memalign(), so add an additional constraint for
...
when we need to emulate it with memalign() and when not.
2013-03-14 20:42:57 +00:00
pooka
a3255409b1
DragonFly is in the Solaris camp in the "how to access ELF DYN at runtime"
...
valley of joy and love.
2013-03-12 14:03:32 +00:00
pooka
f9ef17b1a6
Tiny fix for Solaris.
2013-03-09 13:25:17 +00:00
pooka
4b0fe89206
Ensure that rump kernel component constructors from the main object
...
get processed. This applies to ones which were linked statically.
Unfortunately, that's where it got a bit tricky, since the dlsym()
interface searches the handle and all its dependencies. For the main
object the list of dependencies includes all the dynamic rump kernel
components that were included when the binary is linked. So, a long
story short, make only one pass through the objects to harvest all the
component entries, weed out the dupes, and initialize components from
an in-memory dupe-free list when so requested.
2013-03-08 19:04:27 +00:00
pooka
7b7946c688
Add interfaces that out-of-librumpuser hypercalls can use to unschedule
...
and reschedule themselves if they plan to block.
2013-03-01 18:15:36 +00:00
pooka
573b65f8df
limit use of rumpuser.h to where it is meant to be used from
2013-03-01 13:52:31 +00:00
pooka
a3f7afe3bd
As reported by several people, the signature of pthread_setname_np() varies
...
from one Linux distro to another (didn't suspect it to be *that* _np).
Comment out the call on Linux pending autoconf support.
2013-02-11 16:02:31 +00:00
pooka
16280deed5
Include sys/sysmacros.h on solaris for MIN/MAX.
2013-01-17 21:42:22 +00:00
pooka
4adce8f663
Use the /proc way for counting host cores on Cygwin.
2013-01-14 21:04:15 +00:00
pooka
e0f5e00388
Support Cygwin as a hypervisor.
2013-01-14 21:00:16 +00:00
pooka
44ba88ce59
.. and make it compile on said platforms.
2013-01-10 19:14:12 +00:00
pooka
a8f9daedd7
Provide an implementation of writewatchfile for platforms without kqueue
...
or inotify (it's a rather simple implementation ;)
2013-01-10 19:13:04 +00:00
pooka
1f06a056c7
FreeBSD and DragonFly also provide hosts cpus via sysctl hw.ncpu.
2012-12-14 10:48:48 +00:00
pooka
9a4570ee22
Apparently MAP_ANON mmap() on Linux requires MAP_PRIVATE to be specified
...
for the addr parameter to have a sane effect. Make it so.
2012-12-13 15:35:09 +00:00
pooka
4c7d25c0e6
Support binaries which use DT_GNU_HASH instead of DT_HASH.
2012-12-11 21:16:22 +00:00
pooka
4fd1e9198b
fix previous
2012-11-26 20:03:40 +00:00
pooka
48528ba2e9
One more thing required by DragonFly
2012-11-26 19:57:24 +00:00
pooka
149f3bccf4
Support DragonFly BSD.
2012-11-26 17:55:11 +00:00
pooka
0d8e694036
PTHREAD_PROCESS_SHARED private doesn't seem to work on DragonFly, so
...
init the spin lock _PRIVATE (we don't really care which it is).
2012-11-26 17:54:51 +00:00
pooka
303e3a3aa0
FreeBSD fixes.
...
from philip@freebsd.org
2012-11-26 17:03:15 +00:00
pooka
23a1592d75
const poison is the cure
2012-11-26 17:00:54 +00:00
pooka
2f56710909
Since SA_SETLEN() is used only for sockaddr_in, convert it to SIN_SETLEN()
...
to avoid compiler whining on breaking strict aliasing rules.
2012-11-26 16:30:14 +00:00
pooka
0163bf03f8
satisfy the slightly more picky clang
2012-11-22 21:23:08 +00:00
pooka
b65f40a8c1
export register_t to rump kernel users on solaris
2012-11-21 17:41:27 +00:00
pooka
6530621714
Fixes for Solarisa.
2012-11-18 19:29:40 +00:00
pooka
2b783d7193
Check return value of ftruncate(). Some versions of gcc give
...
warnings if I don't.
2012-11-14 09:22:58 +00:00
pooka
88593a2335
Actually define the klock/unlock pointers. Not having the storage
...
allocated for them created "interesting" effects with one compiler setup.
2012-11-06 18:33:00 +00:00
pooka
57b62be432
one more routine
2012-11-06 18:31:14 +00:00
pooka
2c32a204a7
implement mutex_owner()
2012-11-02 16:55:02 +00:00
pooka
cc24ac78d4
need rumpuser_mutex_init_kmutex() these days
2012-11-02 13:31:26 +00:00
pooka
8083a2e226
Start restoring the ability to run rump kernels on non-threading
...
hypervisors.
Step 1: make this compile again (it's not complete, but
at least it compiles).
2012-11-02 11:11:27 +00:00
pooka
edf42f21f8
Implement the writewatchfile routines for a Linux hypervisor. As a
...
result, the shmif network driver now works when hosted on Linux.
2012-10-10 11:15:57 +00:00
pooka
6bc4679626
call pthread_setname_np() on Linux too.
2012-10-08 18:02:04 +00:00
pooka
bf01f875b4
For the rumpsp protocol, don't assume that the bit representation of
...
errnos match on the client and server platforms (the syscall subprotocol
errnos are handled by the server compat code).
2012-09-21 14:33:03 +00:00
pooka
8b5f6f3669
Do not assume that O_FOO flags have matching values in the rump kernel
...
and hypervisor.
2012-09-14 16:29:21 +00:00
pooka
82e980c205
More fixes for Linux (or glibc, really).
2012-09-03 11:33:35 +00:00
pooka
c62329f7d3
Make librumphijack compile and work on Linux. Do not try to hijack
...
calls which are not supported on Linux and therefore cannot be
handled by the rump kernel side syscall emulation (not that they'd
be present in the calling binaries anyway).
2012-08-25 18:00:06 +00:00
pooka
3b3ffd7039
Once again, make the rump kernel hypercall layer work on Linux.
2012-07-27 09:09:05 +00:00
abs
9e66e6d75e
Update old-style definitions to ANSI, remove a couple of register
...
definitions along the way. Fixed gcc 4.1 build (thank you vax)
2012-06-25 22:32:43 +00:00
matt
fa835e8c8b
These directories default to WARNS?=5
2012-03-21 05:37:42 +00:00
joerg
a65b1aeb01
Disable reduced stack for now. It creates fallout I'm not willing to
...
deal with.
2012-03-09 21:03:09 +00:00
tls
f27d6532f5
Remove arc4random() and arc4randbytes() from the kernel API. Replace
...
arc4random() hacks in rump with stubs that call the host arc4random() to
get numbers that are hopefully actually random (arc4random() keyed with
stack junk is not). This should fix some of the currently failing anita
tests -- we should no longer generate duplicate "random" MAC addresses in
the test environment.
2011-11-28 08:05:05 +00:00
joerg
70b0796a0d
Ensure that rumpuser_thread_exit doesn't return.
2011-05-23 20:49:08 +00:00
pooka
f347b4496a
make work on nb5 again
2011-03-22 22:27:33 +00:00
njoly
603f3daee7
Convert hashtab to Elf_Symindx type, and use it directly to get symbol
...
count. Remove now unused GETVECWORDn macro.
This is needed to make it work on alpha which use non-standard 64bit
values for the symbol hash table section, unlike all other archs.
2011-03-16 11:44:01 +00:00
pooka
00e34b229c
Use sendmsg() instead multiple calls to sendto(). It behaves
...
slightly better in the multithreaded exec case in terms of partial
frames sent. Plus, it's theoretically a little cheaper.
There's still a gray area with partial transfer from sendmsg(),
but I'm not sure I care enough about some academic scenario to
start fixing it (it basically needs an OOB exec signaller).
2011-03-08 15:34:37 +00:00
pooka
91240244df
Nuke all threads belonging to a process calling exec before allowing
...
the exec handshake to return.
In addition to being The Right Thing To Do, fixes some nasty
conditions for CLOEXEC fd's (or at least does so in theory, I
couldn't create any problems although I tried).
2011-03-08 12:39:28 +00:00
pooka
20446f99b9
return correct value when reading a short frame
2011-03-08 10:02:01 +00:00
pooka
fc3b823359
use nwork-adjusted amount of idle workers to decide is they are truly idle.
2011-03-07 21:57:15 +00:00
pooka
3129d3ab75
Cleanup server socket before sending back "ok" for halt. Fixes
...
some occasionally-seen race conditions in tests which do server
restarts (e.g. the raidframe tests).
2011-02-15 16:10:41 +00:00
pooka
5e301bc45b
support HANDSHAKE_EXEC
2011-02-15 10:37:07 +00:00
pooka
2ba7fe5525
A bunch of changes which essentially make sshd work with a hijacked
...
rump tcp/ip stack:
* sshd likes to fork and then re-exec itself
==> trap execve() and augment the env with the current parameters
essential to a rump kernel (kernel communication fd, information
about dup2'd file descriptors)
* sshd likes to play lots of games with pipes, socketpairs and dup{,2}()
==> make sure we do not close essential rump client descriptors:
dup() them to a safe place, except for F_CLOSEM where we
simply leave them alone. also, partially solved by the above,
make sure the process's set of rump kernel descriptors persists
over exec()
* sshd likes to chdir() before exec
==> for unix-style rump_sp(7) sockets save the full path on the
initial exec and use it afterwards. thread the path through
the environment in execve()
2011-02-14 14:56:23 +00:00
pooka
8e6ede8c05
Turn the "idle workers available" from a flag into a counter so
...
that we can finally avoid all races (*knock knock*).
2011-02-08 11:21:22 +00:00
pooka
15fa3c8c84
Support query of the partition size in case underlying device is
...
a wedge. This still lacks the proplibistic query of the sector
size and just assumes 512. It's good that we make asking a file's
size as simple as requiring one stat(), one open() and three (3)
different ioctls plus some proplist mumbojumbo. I'm surprised it's
available at all by means other than #wish.
code mostly from Taylor R Campbell, rant from me.
2011-02-06 21:05:53 +00:00
pooka
627ff529aa
Fix a race condition in the worker thread caching logic: if we got
...
two or more syscall requests before any worker thread ran, we might
not have enough threads to handle the requests. In some scenarios
this could lead to a deadlock.
2011-02-06 18:25:48 +00:00
yamt
7597b0c1e6
fix indent. no functional changes.
2011-02-05 13:51:56 +00:00
pooka
dac4423feb
Pass the value of getprogname() from the client to the server and
...
record it in p_comm. This is nice for things like sockstat, since
they now display the client command name:
pain-rustique:43:~> rump.sockstat
USER COMMAND PID FD PROTO LOCAL ADDRESS FOREIGN ADDRESS
root xulrunner- 16 0 tcp 192.168.2.114.65507 204.152.190.12.80
root xulrunner- 16 1 tcp 192.168.2.114.65501 204.152.190.12.80
root xulrunner- 16 2 tcp 192.168.2.114.65500 204.152.190.12.80
root xulrunner- 16 3 tcp 192.168.2.114.65499 204.152.190.12.80
root xulrunner- 16 5 tcp 192.168.2.114.65498 204.152.190.12.80
root xulrunner- 16 6 tcp 192.168.2.114.65497 204.152.190.12.80
root socket 62 0 tcp6 *.http *.*
root socket 62 1 tcp *.http *.*
root socket 63 0 tcp6 *.81 *.*
root socket 63 1 tcp *.81 *.*
2011-01-28 19:21:28 +00:00
pooka
19a57922d0
Add reconnect code to librumpclient. In case the connection to
...
the kernel server is lost, the client will now automatically attempt
to reconnect.
Among other things, this makes it possible to "reboot" and restart
the TCP/IP stack from under firefox without any perceivable less
of service. If pages were loading at the time the TCP/IP server
was killed, there may be some broken links, but nothing a ctrl-r
cannot fix.
2011-01-24 17:47:51 +00:00
pooka
112941441d
happiness is a quiet lint
2011-01-22 14:22:10 +00:00
pooka
3b79c0eb90
shush lint
2011-01-22 14:18:55 +00:00
pooka
1d9f8678bd
In case sys_reboot() was called by a remote client, put the response
...
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.
2011-01-22 13:41:22 +00:00
pooka
3cc5cc6884
include pid of rump server in hostname
2011-01-20 15:00:12 +00:00
pooka
9fba158b8b
Add RUMPSP_RAISE: the kernel sends a signal to the client.
2011-01-14 13:12:14 +00:00