00001 /* This header is included in conv-config.h, which is included in the 00002 * machine layer implementations through converse.h 00003 */ 00004 00005 // Use CMA for intra node shared memory communication on all machines where it is supported, except for Multicore 00006 #define CMK_USE_CMA (CMK_HAS_CMA && !CMK_MULTICORE && !CMK_BLUEGENEQ) 00007 00008 #if CMK_USE_CMA 00009 00010 #ifndef CMK_CMA_MIN 00011 #define CMK_CMA_MIN 1024 00012 #endif 00013 00014 #ifndef CMK_CMA_MAX 00015 #define CMK_CMA_MAX 131072 00016 #endif 00017 00018 #endif // end of CMK_USE_CMA 00019 00020 // Converse Message header contains msgtype which is set to one of these message types 00021 enum cmiCMAMsgType { 00022 // CMK_REG_NOCMA_MSG refers to a message which contains the payload being sent 00023 CMK_REG_NO_CMA_MSG=0, 00024 00025 // CMK_CMA_MD_MSG refers to a message which contains payload metadata (pe, pid, address, size) without the payload 00026 // This message is used by the receiving process (running on the same physical host) to perform a CMA read operation 00027 CMK_CMA_MD_MSG=1, 00028 00029 // CMK_CMA_ACK_MSG refers to a message which contains payload metadata (pe, pid, address, size) without the payload 00030 // This message is sent by the receiving process to the sending process to signal the completion of the CMA operation in order 00031 // to free the payload buffer 00032 CMK_CMA_ACK_MSG=2, 00033 }; 00034 00035 #if CMK_USE_CMA 00036 #undef CMK_COMMON_NOCOPY_DIRECT_BYTES // previous definition is in conv-mach-common.h 00037 #define CMK_COMMON_NOCOPY_DIRECT_BYTES sizeof(pid_t) 00038 #endif 00039 00040 #if CMK_ONESIDED_IMPL 00041 // This macro is used to specify the threshold size in bytes, above which 00042 // the Zerocopy API is used to broadcast large readonly variables to all 00043 // processes 00044 #define CMK_ONESIDED_RO_THRESHOLD 1048576 00045 00046 // TODO: Modify and move this variable to <layer>/conv-common.h by running experiments on each layer 00047 // CMK_ONESIDED_RO_THRESHOLD is currently set to 1 MiB arbitrarily until the experiments are conducted 00048 00049 #endif