28.08.2015 Views

The Design and Implementation of the Anykernel and Rump Kernels

1F3KDce

1F3KDce

SHOW MORE
SHOW LESS
  • No tags were found...

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

A–16<br />

RUMP(3) NetBSD Library Functions Manual RUMP(3)<br />

Clients using services provided by rump kernels can exist ei<strong>the</strong>r in <strong>the</strong><br />

same process as <strong>the</strong> rump kernel or in o<strong>the</strong>r processes. Local clients<br />

access <strong>the</strong> rump kernel through direct function calls. <strong>The</strong>y also naturally<br />

have access to <strong>the</strong> kernel memory space. This document is geared<br />

towards local clients. For more information on remote clients, see<br />

rump_sp(7). It is also possible to use unmodified application binaries<br />

as remote clients with rumphijack(3).<br />

A rump kernel is bootstrapped by calling rump_init(). Before bootstrapping<br />

<strong>the</strong> kernel, it is possible to control its functionality by setting<br />

various environment variables:<br />

RUMP_NCPU<br />

If set, indicates <strong>the</strong> number <strong>of</strong> virtual CPUs configured<br />

into a rump kernel. <strong>The</strong> default is <strong>the</strong> number <strong>of</strong> host<br />

CPUs. <strong>The</strong> number <strong>of</strong> virtual CPUs controls how many<br />

threads can enter <strong>the</strong> rump kernel simultaneously.<br />

RUMP_VERBOSE<br />

If set to non-zero, activates bootverbose.<br />

RUMP_THREADS<br />

If set to 0, prevents <strong>the</strong> rump kernel from creating any<br />

kernel threads. This is possible usually only for file<br />

systems, as o<strong>the</strong>r subsystems depend on threads to work.<br />

RUMP_MEMLIMIT<br />

If set, indicates how many bytes <strong>of</strong> memory a rump kernel<br />

will allocate before attempting to purge caches. <strong>The</strong><br />

default is as much as <strong>the</strong> host allows.<br />

RUMP_NVNODES<br />

Sets <strong>the</strong> value <strong>of</strong> <strong>the</strong> kern.maxvnodes sysctl node to <strong>the</strong><br />

indicated amount. Adjusting this may be useful for<br />

example when testing vnode reclaim code paths. While<br />

<strong>the</strong> same value can be set by means <strong>of</strong> sysctl, <strong>the</strong> env<br />

NetBSD 5.99.48 March 25, 2011 NetBSD 5.99.48

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!