mirror of
https://github.com/genodelabs/genode.git
synced 2024-12-18 21:27:56 +00:00
7d8d4f4532
This patch facilitates the batching of I/O operations in the VFS library by replacing the implicit wakeup of remote peer (via the traditional packet-stream interface like 'submit_packet') by explicit wakeup signalling. The wakeup signalling is triggered not before the VFS user settles down. E.g., for libc-based applications, this is the case if the libc goes idle, waiting for external I/O. In the case of a busy writer to a non-blocking file descriptor or socket (e.g., lighttpd), the remote peers are woken up once a write operation yields an out-count of 0. The deferring of wakeup signals is accommodated by the new 'Remote_io' mechanism (vfs/remote_io.h) that is designated to be used by all VFS plugins that interact with asynchronous Genode services for I/O. Issue #4697 |
||
---|---|---|
.. | ||
lib | ||
patches | ||
ports | ||
recipes | ||
run | ||
src | ||
README | ||
rump.list |
================================ Genode's Rump Kernel kernel port ================================ This repository contains the Genode version of the [http://wiki.netbsd.org/rumpkernel/ - rump kernel]. The kernel is currently used to gain file-system access from within Genode. In order to achieve that, the rump kernel is integrated into a VFS plugin, located at _src/lib/vfs/rump_. It can thereby by used directly by libc applications, or indirectly by using the VFS-server component. Building instructions ##################### In order to build the VFS plugin, issue ! ./tool/ports/prepare_port dde_rump from Genode's toplevel directory. Add ! REPOSITORIES += $(GENODE_DIR)/repos/dde_rump to your _etc/build.conf_ file of you build directory. Finally, ! make lib/vfs/rump called from your build directory will build the plugin. Configuration ############# Here is an example snippet that configures the VFS plugin: | <rump fs="msdos" ram="7M" writeable="yes"/>" The VFS plugin obtains a block session. If there is more than one block session in the system, the block session must be routed to the right block-session server. The value of the _fs_ attribute can be one of the following: _ext2fs_ for EXT2, _cd9660_ for ISO-9660, or _msdos_ for FAT file-system support. When accessing a _msdos_ file system, the optional attribute 'gemdos="yes"' can be specified to operate in GEMDOS compatibility mode. The VFS plugin hands over the specified amount of RAM quota to the rump kernel. The larger the quota is, the larger the internal block caches of the rump kernel will be.