Home | History | Annotate | only in /src/usr.bin/rump_allserver
History log of /src/usr.bin/rump_allserver
RevisionDateAuthorComments
 1.16 24-Apr-2023  uwe rump_allserver: trim down the list of libraries

Now that cyclic dependencies are (mostly) broken, we can drop repeated
-l instances that worked around those cycles. Links on sun2.
 1.15 01-Nov-2021  nia Force at most partial RELRO for rump_server and related libraries

rump_server with -l uses lazy resolution by default and thus cannot be
used with full RELRO/BIND_NOW.
 1.14 07-Jul-2021  martin Allow to set sanitizer flags for the rump build from the
build.sh command line, like: -V RUMP_SANITIZE=address
 1.13 17-May-2020  christos fix sun2 build
 1.12 01-Mar-2020  christos Fix sun2
 1.11 11-May-2017  sevan branches: 1.11.10;
With the removal of HAVE_REGISTER_T from rumpuser_port.h, _KERNTYPES does not
need to be defined. This allows register_t to be typedef'd to RUMP_REGISTER_T
without conflict, as highlighted in PR kern/52206.
 1.10 10-May-2017  sevan Revert previous change so builds can resume.
_KERNTYPES needs to be defined for NetBSD builds to succeed.
_KERNTYPES must not be defined for buildrum.sh builds to succeed.
 1.9 10-May-2017  sevan Do not define _KERNTYPES as this breaks build with buildrump.sh due to
conflicting types for register_t.
Closes PR kern/52206
Steered in the right direction by christos.
 1.8 23-Jan-2016  christos branches: 1.8.6;
Define _KERNTYPES for things that need it.
 1.7 13-Nov-2013  pooka Support disklabel partitions on all platforms.

also addresses buildrump.sh issue #41 (github)
 1.6 10-Sep-2013  pooka Need bsd.own.mk for mk.conf, include it at an opportune place.
 1.5 10-Sep-2013  pooka Make it possible to omit libutil from the link. It's used only for
disklabel stuff, and is only harmful on platforms that don't currently
provide user namespace disklabel interfaces.
 1.4 04-Feb-2011  pooka branches: 1.4.4; 1.4.10;
Allow to specify -d hostpath offset,size with disklabel.
 1.3 13-Dec-2010  pooka branches: 1.3.2;
manpage
 1.2 05-Dec-2010  pooka rumpcrypto now comes as part of RUMPKERNLDADD
 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.3.2.1 08-Feb-2011  bouyer Sync with HEAD
 1.4.10.1 20-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.4.4.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.8.6.2 19-May-2017  pgoyette Resolve conflicts from previous merge (all resulting from $NetBSD
keywork expansion)
 1.8.6.1 11-May-2017  pgoyette Sync with HEAD
 1.11.10.1 08-Apr-2020  martin Merge changes from current as of 20200406
 1.24 24-Apr-2023  uwe rump_allserver(1): fix markup, clarify

Reorder text for the -d option to hopefully make it easier to follow.
Clarify that the "disklabel" keyword takes partion letter (from RTFS).
 1.23 05-Nov-2015  wiz Sort options in SYNOPSIS.

Order is: 0123.9AaBbCc...Zz;
options without arguments in a block first, then the ones with arguments.
 1.22 05-Nov-2015  ozaki-r Add missing options to SYNOPSIS and sort
 1.21 16-Jan-2014  pooka terminology audit
 1.20 16-Jan-2014  pooka Attempt to load all components even if they are not given in
dependency order.
 1.19 04-Mar-2011  pooka branches: 1.19.4; 1.19.10;
adjust wording in previous
 1.18 04-Mar-2011  pooka Add note about block device properties.

From discussion with <riz>.
 1.17 23-Feb-2011  pooka .Xr rump_sp 7
 1.16 21-Feb-2011  pooka add command line options for kernel memory allocation limit and bootverbose
 1.15 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.14 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.13 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.12 04-Feb-2011  pooka Allow to specify -d hostpath offset,size with disklabel.
 1.11 03-Feb-2011  pooka Create backing image with mode 0644 instead of 0755 & document this.
 1.10 03-Feb-2011  pooka whoopsie, bump date
 1.9 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.8 08-Jan-2011  pooka branches: 1.8.2;
BUGS is gone (and on its way out it inquired about the doctor's status)
 1.7 03-Jan-2011  pooka Add -c to control the number of CPUs configured in the kernel.
 1.6 15-Dec-2010  pooka language fix. sniped by wizd
 1.5 15-Dec-2010  pooka document the current syscall bug with rump_server and -l
 1.4 14-Dec-2010  pooka Add an example for a server listening on a tcp port.

also, bump date to avoid problems with wizd
 1.3 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.2 14-Dec-2010  wiz Fix Xr and use Sx.
 1.1 13-Dec-2010  pooka manpage
 1.8.2.2 05-Mar-2011  bouyer Sync with HEAD
 1.8.2.1 08-Feb-2011  bouyer Sync with HEAD
 1.19.10.1 20-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.19.4.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.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