diff --git a/documentation/text/config.dox b/documentation/text/config.dox index e4e80343..cb2e1d97 100644 --- a/documentation/text/config.dox +++ b/documentation/text/config.dox @@ -1,12 +1,14 @@ /** * @file config.dox - * @page config The MetalSVM feature configuration file + * @page config MetalSVM feature configuration files * - * @section conf MetalSVM's configuration file + * @section main_config MetalSVM's main configuration file * - * MetalSVM's configuration parameters and some features can be configured/activated in the central configuration file located at \c include/metalsvm/config.h. + * MetalSVM's configuration parameters and some features can be configured/activated + * in the central configuration file located at \c include/metalsvm/config.h. * - * The \c config.h is a usual C-header file and the configuration items are usual C preprocessor-definitions like the following: + * The `config.h` is a usual C header file and the configuration items are usual + * C preprocessor-definitions like the following: * \code #define CONFIGURATION_PARAMETER 123value /* A parameter with a value */ #define FEATURE_A /* An activated feature */ @@ -14,5 +16,50 @@ * * Just like the example suggests, features are deactivated by commenting them out. * + * If you boot MetalSVM on the Intel SCC, you need to \b deactivate `CONFIG_PCI`, + * `CONFIG_VGA`, `CONFIG_KEYBOARD`, and `CONFIG_MULTIBOOT` and + * \b activate `CONFIG_ROCKCREEK`. Set `CACHE_LINE` to 32.\n + * Activate `CONFIG_UART` if you are going to use software-UART and deactivate it if + * not, to avoid unnecessary traffic. + * + * @section lwip_config LwIP configuration flags + * + * The networking subsystem, based on LwIP, can of course be influenced by various + * feature flags. + * + * MetalSVM overrides various standard settings in `lwip/src/include/lwipopts.h`. + * + * If you chose `CONFIG_ROCKCREEK`, this leads to deactivation of `LWIP_DHCP`. + * + * If you chose `CONFIG_TICKLESS`, `NO_SYS` will be activated and the following + * are deactivated: `LWIP_SOCKET`, `LWIP_NETCON`, `LWIP_NETIF_API`. + * + * See LwIP documentation for more specific information about the individual effects of + * manipulating the LwIP configuration flags/values. + * + * @section mmnif_config MMNIF configuration flags + * Several flags in the file `drivers/net/mmnif.c` file influence the memory + * mapped network interface's performance: + * + * - `USE_CACHE`: activates the cache for the memory mapped buffer region. + * This improves the performance. + * - `USE_MPB`: If activated, the buffer will be mapped onto the SCC's special MPB, + * which improves the performance drastically. + * + * @section svm_config SVM configuration flags + * + * Although the choice between different shared memory release consistency models + * is configured in the application code, there are 2 flags which influence the SVM + * implementation. These are located in `arch/x86/mm/svm.c`: + * + * - `USE_PERFCOUNTERS`: Performance counters will help evaluating the performance + * of the SVM implementation within the kernel. Deactivate to omit overhead. + * + * - `USE_RESP_MAIL`: Whenever a core requests access to a page it is not the owner + * of, it sends an interrupt to the owner. The requesting core will then wait for the mail + * indicating that it has become the new owner of the particular page, spinning on its mailbox. + * When `USE_RESP_MAIL` is activated, other interrupts will be deactivated until the response + * has arrived. + * * */