2011-11-08 13:58:29 +01:00
|
|
|
/**
|
|
|
|
* @file config.dox
|
2012-09-16 10:59:20 +02:00
|
|
|
* @page config MetalSVM feature configuration files
|
2011-11-08 13:58:29 +01:00
|
|
|
*
|
2012-09-16 10:59:20 +02:00
|
|
|
* @section main_config MetalSVM's main configuration file
|
2011-11-08 13:58:29 +01:00
|
|
|
*
|
2012-09-16 10:59:20 +02:00
|
|
|
* MetalSVM's configuration parameters and some features can be configured/activated
|
|
|
|
* in the central configuration file located at \c include/metalsvm/config.h.
|
2011-11-08 13:58:29 +01:00
|
|
|
*
|
2012-09-16 10:59:20 +02:00
|
|
|
* The `config.h` is a usual C header file and the configuration items are usual
|
|
|
|
* C preprocessor-definitions like the following:
|
2011-11-08 13:58:29 +01:00
|
|
|
* \code
|
|
|
|
#define CONFIGURATION_PARAMETER 123value /* A parameter with a value */
|
|
|
|
#define FEATURE_A /* An activated feature */
|
|
|
|
//#define FEATURE_B /* A deactivated feature */\endcode
|
|
|
|
*
|
|
|
|
* Just like the example suggests, features are deactivated by commenting them out.
|
|
|
|
*
|
2012-09-16 10:59:20 +02:00
|
|
|
* 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`.
|
|
|
|
*
|
2012-09-16 11:01:57 +02:00
|
|
|
* Another interesting feature is `LWIP_CHECKSUM_ON_COPY`. Deactivating it leads
|
|
|
|
* to higher network throughput for on-die communication.
|
|
|
|
*
|
2012-09-16 10:59:20 +02:00
|
|
|
* 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.
|
|
|
|
*
|
2011-11-08 13:58:29 +01:00
|
|
|
*
|
|
|
|
*/
|