Home | History | Annotate | Download | only in rump_allserver
History log of /src/usr.bin/rump_allserver/rump_allserver.c
RevisionDateAuthorComments
 1.39  16-Apr-2015  pooka Accept 0 size for -d type=reg, it grows dynamically anyway.
(though perhaps there should be some way to limit that)
 1.38  04-Nov-2014  pooka Use autoconf for rump kernel posix hypercall layer.

This gets rid of homegrown hacks and puts all probes in one place.

Tested for NetBSD (build.sh + anita) and Linux (buildrump.sh)
 1.37  27-Apr-2014  pooka Remove LD_DYNAMIC_WEAK whine, by large it's not necessary anymore.
 1.36  21-Mar-2014  pooka branches: 1.36.2;
On glibc systems, issue a warning if LD_DYNAMIC_WEAK is not
 1.35  16-Jan-2014  pooka alleviate may-be-used-unused
 1.34  16-Jan-2014  pooka Attempt to load all components even if they are not given in
dependency order.
 1.33  31-Dec-2013  pooka Use signal.h instead of sys/signal.h. The latter is not standard
and does not exist at least on systems with musl libc.

from Justin Cormack
 1.32  18-Dec-2013  pooka Actually, nevermind with the whole LD_DYNAMIC_WEAK business, forgot
to unset it from the shell before testing.
 1.31  18-Dec-2013  pooka Set LD_DYNAMIC_WEAK, required by glibc ld.so for -l params.

(this accidentally slipped in the previous commit already, but
I'm recommitting it to get cvs annotate right)
 1.30  18-Dec-2013  pooka Use rumperr to print correct error strings on !NetBSD.
 1.29  16-Dec-2013  bad Don't hold back, tell us how you really feel when dlopen() fails.
 1.28  13-Nov-2013  pooka Support disklabel partitions on all platforms.

also addresses buildrump.sh issue #41 (github)
 1.27  13-Nov-2013  pooka make -m available on all platforms
 1.26  10-Sep-2013  pooka Not all systems sport err.h, so redo those bits using the die() routine
we need to have hanging around anyway for proper error reporting from
a daemonizing server. le sigh
 1.25  10-Sep-2013  pooka <sys/cdefs.h> comes from rumpuser_port.h
 1.24  10-Sep-2013  pooka Make this work on platforms without disklabels, modules, etc.
 1.23  10-Sep-2013  pooka Do like the comment suggests and don't sanity-check the -c parameter here,
since we can't do it properly.
 1.22  16-Sep-2011  joerg branches: 1.22.2; 1.22.8;
Use __dead
 1.21  22-Feb-2011  pooka * at least try to query size of non-regular size=host files too,
give up if we get 0
* fix a few error messages
 1.20  21-Feb-2011  pooka add command line options for kernel memory allocation limit and bootverbose
 1.19  18-Feb-2011  pooka Use "host" instead of the slightly more cryptic "e" to indicate
that the size of the mapping should be taken from the host file
size.
 1.18  17-Feb-2011  pooka Use "size=e" as a way say "if the underlying file is preexisting
regular file, use whatever size it has".
 1.17  17-Feb-2011  pooka Make it possible to specify the type of file (blk/chr/reg) that a
mapped file (-d) is exposed as within the rump kernel.
 1.16  04-Feb-2011  pooka Allow to specify -d hostpath offset,size with disklabel.
 1.15  03-Feb-2011  pooka Create backing image with mode 0644 instead of 0755 & document this.
 1.14  03-Feb-2011  pooka * make it possible to specify an offset in -d
* truncate -d hostpath only if it's a regular file and smaller
than offset+size
 1.13  03-Jan-2011  wiz branches: 1.13.2;
Fix usage (8th bit begone!)
 1.12  03-Jan-2011  pooka Add -c to control the number of CPUs configured in the kernel.
 1.11  15-Dec-2010  pooka Guard against supplying the same parameter multiple times in one -d argument.
 1.10  15-Dec-2010  wiz Sort options in usage same as in man page.
While here, replace \xa0 with ' '. Where do you get these from?
 1.9  14-Dec-2010  pooka Add -d which can be used to register host-backed block devices in
the rump kernel.

It would be cool if this, and the other options, could be specified
in a config file (plist or other).
 1.8  13-Dec-2010  pooka Also support ld syntax in -l.

was: -l librumpvfs.so
now: -lrumpvfs
 1.7  13-Dec-2010  pooka Add -m which can be used to load modules (which is a completely
different code path than using dlopen() before rump_init(), since
the former uses the in-kernel linker and the latter links the object
in rtld).

So:
golem> ./rump_server -l librumpvfs.so -m /sys/modules/tmpfs/tmpfs.kmod unix:///tmp/commsuck
==>
golem> env RUMP_SERVER=unix:///tmp/commsuck rump.modstat
NAME CLASS SOURCE REFS SIZE REQUIRES
suser secmodel builtin 0 - -
tmpfs vfs filesys 0 16713 -
wapbl vfs builtin 0 - -

Source is filesys instead of builtin, as expected.

Notably, for -m you *must* use -l librumpvfs.so. This is because
you need VFS in your kernel to be able to load modules from the
file system. In a regular kernel "librumpvfs.so" is linked at
kernel build time and loaded by the bootloader. Here we use dlopen()
for both effects (the other choices would have been to link
rump_server with -lrumpvfs, but that would limit the flexibility,
or link tmpfs.kmod directly into the binary, but that would limit
the flexibility even more).
 1.6  13-Dec-2010  pooka Handle -l which dlopens libs. This is more applicable to rump_server
than rump_allserver.

So if I do:

golem> rump_server unix:///tmp/commsuck
==>
golem> env RUMP_SERVER=unix:///tmp/commsuck rump.modstat
NAME CLASS SOURCE REFS SIZE REQUIRES
suser secmodel builtin 0 - -

and:

golem> rump_server -l librumpvfs.so unix:///tmp/commsuck
==>
golem> env RUMP_SERVER=unix:///tmp/commsuck rump.modstat
NAME CLASS SOURCE REFS SIZE REQUIRES
suser secmodel builtin 0 - -
wapbl vfs builtin 0 - -

golem> rump_server -l librumpvfs.so -l librumpfs_ffs.so unix:///tmp/commsuck
==>
golem> env RUMP_SERVER=unix:///tmp/commsuck rump.modstat
NAME CLASS SOURCE REFS SIZE REQUIRES
ffs vfs builtin 0 - -
suser secmodel builtin 0 - -
wapbl vfs builtin 0 - -

Well, you get the picture...
 1.5  12-Dec-2010  pooka lint hint to previous
 1.4  12-Dec-2010  pooka Reboot when killed (does cleanup).
 1.3  12-Dec-2010  pooka use appropriate macro
 1.2  11-Dec-2010  pooka Detach by default or -s to stay-on-top.
 1.1  05-Dec-2010  pooka Add a rump server which comes with all the drivers currently
available. In terms of modules it maps to:

golem> rump.modstat
NAME CLASS SOURCE REFS SIZE REQUIRES
bpf driver builtin 0 - -
cd9660 vfs builtin 0 - -
cgd driver builtin 0 - -
dm driver builtin 0 - -
efs vfs builtin 0 - -
ext2fs vfs builtin 0 - ffs
fdesc vfs builtin 0 - -
ffs vfs builtin 3 - -
fss driver builtin 0 - -
hfs vfs builtin 0 - -
kernfs vfs builtin 0 - -
ksem misc builtin 0 - -
layerfs misc builtin 2 - -
lfs vfs builtin 0 - ffs
mfs vfs builtin 0 - ffs
msdos vfs builtin 0 - -
nfs vfs builtin 1 - -
nfsserver misc builtin 0 - nfs
nilfs vfs builtin 0 - -
ntfs vfs builtin 0 - -
null vfs builtin 0 - layerfs
pad driver builtin 0 - -
ptyfs vfs builtin 0 - -
puffs vfs builtin 0 - putter
putter driver builtin 1 - -
scsiverbose misc builtin 0 - -
smbfs vfs builtin 0 - -
suser secmodel builtin 0 - -
swsensor driver builtin 0 - -
sysvbfs vfs builtin 0 - -
tmpfs vfs builtin 0 - -
udf vfs builtin 0 - -
umap vfs builtin 0 - layerfs
union vfs builtin 0 - -
usbverbose misc builtin 0 - -
wapbl vfs builtin 0 - -


In terms of interfaces:
golem> rump.ifconfig -C
shmif virt lo carp


and dmesg:
NetBSD 5.99.41 (RUMP-ROAST) #0: Tue Nov 30 15:35:05 CET 2010
pooka@pain-rustique.localhost:/usr/allsrc/src/sys/rump/librump/rumpkern
total memory = unlimited (host limit)
timecounter: Timecounters tick every 10.000 msec
timecounter: Timecounter "rumpclk" frequency 100 Hz quality 0
cpu0 at thinair0: rump virtual cpu
cpu1 at thinair0: rump virtual cpu
root file system type: rumpfs
mainbus0 (root)
ugenhc0 at mainbus0
usb0 at ugenhc0: USB revision 2.0
uhub0 at usb0: vendor 0x7275 product 0x6d70, class 9/0, rev 0.00/0.00, addr 1
uhub0: 1 port with 1 removable, self powered
ugenhc1 at mainbus0
usb1 at ugenhc1: USB revision 2.0
uhub1 at usb1: vendor 0x7275 product 0x6d70, class 9/0, rev 0.00/0.00, addr 1
uhub1: 1 port with 1 removable, self powered
ugenhc2 at mainbus0
usb2 at ugenhc2: USB revision 2.0
uhub2 at usb2: vendor 0x7275 product 0x6d70, class 9/0, rev 0.00/0.00, addr 1
uhub2: 1 port with 1 removable, self powered
ugenhc3 at mainbus0
usb3 at ugenhc3: USB revision 2.0
uhub3 at usb3: vendor 0x7275 product 0x6d70, class 9/0, rev 0.00/0.00, addr 1
uhub3: 1 port with 1 removable, self powered
scsitest0 at mainbus0
scsibus0 at scsitest0: 2 targets, 1 lun per target
cd0 at scsibus0 target 1 lun 0: <RUMPHOBO, It's a LIE, 0.00> cdrom removable
Chicony Electronics Chicony Electronics, class 0/0, rev 2.00/1.00, addr 2, uhub0 port 1 not configured
AuthenTec AuthenTec, class 255/255, rev 1.10/6.21, addr 2, uhub1 port 1 not configured
swwdog0: software watchdog initialized
Kernelized RAIDframe activated
pad0: outputs: 44100Hz, 16-bit, stereo
audio0 at pad0: half duplex, playback, capture


There a bunch of other stuff which doesn't show up as any of the
above, plus of course the usb drivers which are probed only if I
have the appropriate hardware plugged into my workstation.
 1.13.2.2  05-Mar-2011  bouyer Sync with HEAD
 1.13.2.1  08-Feb-2011  bouyer Sync with HEAD
 1.22.8.1  20-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.22.2.1  22-May-2014  yamt sync with head.

for a reference, the tree before this commit was tagged
as yamt-pagecache-tag8.

this commit was splitted into small chunks to avoid
a limitation of cvs. ("Protocol error: too many arguments")
 1.36.2.1  10-Aug-2014  tls Rebase.

RSS XML Feed