mars/Kconfig

227 lines
5.5 KiB
Plaintext

#
# MARS configuration
#
config MARS
tristate "storage system MARS (EXPERIMENTAL)"
default n
---help---
Experimental storage System. Only compile as a module!
config MARS_BIGMODULE
tristate "compile all MARS modules into a single kernel module"
depends on MARS
default m
select MARS_HAVE_BIGMODULE
---help---
Normally ON. Switch off only for EXPERIMENTS!
config MARS_LOGFILE
string "full path to the logfile"
depends on MARS
default "/mars/log.txt"
---help---
Path to the logfile where all MARS messages go to.
The logfile must already exist in order to be appended.
Logiles can be rotated by renaming them and creating
a new empty file in place of the old one.
When none exists, messages are either reported to syslog when
CONFIG_MARS_USE_SYSLOG is set, or else MARS will be qiet.
config MARS_USE_SYSLOG
bool "use syslog for messages"
depends on MARS
default n
---help---
Normally OFF.
When switched on (and no logfile exists), the syslog
may get flooded by printk() messages, leading to performance
problems if remote syslog forwarding is enabled (and possibly
in other cases). Thus we recommend to prefer file logging.
When this option is off, the logfile will be used (if one exists).
config MARS_SCAN_INTERVAL
int "re-scanning of symlinks in /mars/ (in seconds)"
depends on MARS
default 5
---help---
May influence the system load; dont use too low nubmers.
config MARS_PROPAGATE_INTERVAL
int "network propagation delay of changes in /mars/ (in seconds)"
depends on MARS
default 5
---help---
May influence the system load; dont use too low nubmers.
config MARS_FAST_TRIGGER
bool "fast internal triggering"
depends on MARS
default y
---help---
Normally ON. Switch off in case of endless trigger loops
config MARS_NETIO_TIMEOUT
int "timeout for remote IO operations (in seconds)"
depends on MARS
default 30
---help---
In case of network hangs, don't wait forever, but rather
abort with -ENOTCONN
when == 0, wait forever (may lead to hanging operations
similar to NFS hard mounts)
config MARS_MEM_PREALLOC
bool "avoid memory fragmentation by preallocation"
depends on MARS
default y
---help---
Normally ON. Switch off only for EXPERIMENTS!
#config MARS_HUNG
# bool "hangup on kernel stacktrace (EXPERIMENTAL!!!)"
# depends on MARS && MARS_BIGMODULE!=m
# default n
# ---help---
# Normally OFF. Switch on only for EXPERIMENTS!
config MARS_LOGROT
bool "allow logrotate during operation"
depends on MARS
default y
---help---
Normally ON. Switch off only for EXPERIMENTS!
config MARS_MIN_SPACE
bool "check for filesystem overflow in /mars"
depends on MARS
default y
---help---
Normally ON. Switch off only for EXPERIMENTS!
config MARS_MIN_SPACE_BASE
int "free space in /mars/ (hard limit in gigabytes)"
depends on MARS && MARS_MIN_SPACE
default 8
---help---
when this limit is exceeded, all write requests to /mars/
will stop. This affects not only write IO to /dev/mars/*,
but also logfile transfers etc.
In order to retain full operations, you _need_ to implement
your own monitoring which _must_ warn you long before this
hard limit catches you.
config MARS_MIN_SPACE_PERCENT
int "free space in /mars/ (hard limit in percent)"
depends on MARS && MARS_MIN_SPACE
default 0
---help---
this limit is in addition to CONFIG_MARS_MIN_SPACE_BASE.
config MARS_PREFER_SIO
bool "prefer sio bricks instead of aio"
depends on MARS
default n
---help---
Normally OFF for production systems.
Only use as alternative for testing.
##### mostly obsolete
config MARS_DUMMY
tristate "MARS dummy brick"
depends on MARS && MARS_BIGMODULE!=m
default m
---help---
Experimental storage System.
config MARS_CHECK
tristate "MARS check brick"
depends on MARS && MARS_BIGMODULE!=m
default m
---help---
Experimental storage System.
config MARS_IF
tristate "interface to a linux device"
depends on MARS && MARS_BIGMODULE!=m
default m
---help---
Experimental storage System.
config MARS_BIO
tristate "interface to blkdev via kernel BIO"
depends on MARS && MARS_BIGMODULE!=m
default m
---help---
Experimental storage System.
config MARS_AIO
tristate "interface to a linux file (Asynchronous IO)"
depends on MARS && MARS_BIGMODULE!=m
default m
---help---
Experimental storage System.
config MARS_SIO
tristate "interface to a linux file, synchronous (currently unused)"
depends on MARS && MARS_BIGMODULE!=m
default m
---help---
Experimental storage System.
config MARS_BUF
tristate "buffer brick (currently unused)"
depends on MARS && MARS_BIGMODULE!=m
default m
---help---
Experimental storage System.
config MARS_USEBUF
tristate "usebuf brick (currently unused)"
depends on MARS && MARS_BIGMODULE!=m
default m
---help---
Experimental storage System.
config MARS_TRANS_LOGGER
tristate "transaction logger"
depends on MARS && MARS_BIGMODULE!=m
default m
---help---
Experimental storage System.
config MARS_SERVER
tristate "server brick"
depends on MARS && MARS_BIGMODULE!=m
default m
---help---
Experimental storage System.
config MARS_CLIENT
tristate "client brick"
depends on MARS && MARS_BIGMODULE!=m
default m
---help---
Experimental storage System.
config MARS_COPY
tristate "copy brick"
depends on MARS && MARS_BIGMODULE!=m
default m
---help---
Experimental storage System.
config MARS_LIGHT
tristate "MARS Light main (protoype, will be replaced)"
depends on MARS && MARS_BIGMODULE!=m
default m
---help---
Experimental storage System.
# the following is used as an internal proprocessor symbol
config MARS_HAVE_BIGMODULE
bool