Source-Changes archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

CVS commit: src/usr.bin/rump_allserver



Module Name:    src
Committed By:   pooka
Date:           Mon Dec 13 14:13:22 UTC 2010

Modified Files:
        src/usr.bin/rump_allserver: rump_allserver.c

Log Message:
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).


To generate a diff of this commit:
cvs rdiff -u -r1.6 -r1.7 src/usr.bin/rump_allserver/rump_allserver.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.



Home | Main Index | Thread Index | Old Index