1
1

Merge pull request #562 from tkordenbrock/topic/mtl.expand.source.bits.to.24

mtl-portals4: expand the source field of the match bits to 24 bits
Этот коммит содержится в:
Ryan Grant 2015-04-28 14:31:06 -06:00
родитель 91a8ec52ca 3e437f6184
Коммит cc3da91700

Просмотреть файл

@ -129,21 +129,23 @@ extern mca_mtl_portals4_module_t ompi_mtl_portals4;
/* match/ignore bit manipulation /* match/ignore bit manipulation
* *
* 0123 4567 01234567 01234567 01234567 01234567 01234567 01234567 01234567 * 0123 4567 01234567 01234567 01234567 01234567 01234567 01234567 01234567
* | | | * | | |
* ^ | context id | source | message tag * ^ | context id | source | message tag
* | | | | * | | | |
* +---- protocol * +---- protocol
*/ */
#define MTL_PORTALS4_MAX_TAG ((1UL << 24) -1)
#define MTL_PORTALS4_PROTOCOL_MASK 0xF000000000000000ULL #define MTL_PORTALS4_PROTOCOL_MASK 0xF000000000000000ULL
#define MTL_PORTALS4_CONTEXT_MASK 0x0FFF000000000000ULL #define MTL_PORTALS4_CONTEXT_MASK 0x0FFF000000000000ULL
#define MTL_PORTALS4_SOURCE_MASK 0x0000FFFF00000000ULL #define MTL_PORTALS4_SOURCE_MASK 0x0000FFFFFF000000ULL
#define MTL_PORTALS4_TAG_MASK 0x00000000FFFFFFFFULL #define MTL_PORTALS4_TAG_MASK 0x0000000000FFFFFFULL
#define MTL_PORTALS4_PROTOCOL_IGNR MTL_PORTALS4_PROTOCOL_MASK #define MTL_PORTALS4_PROTOCOL_IGNR MTL_PORTALS4_PROTOCOL_MASK
#define MTL_PORTALS4_CONTEXT_IGNR MTL_PORTALS4_CONTEXT_MASK #define MTL_PORTALS4_CONTEXT_IGNR MTL_PORTALS4_CONTEXT_MASK
#define MTL_PORTALS4_SOURCE_IGNR MTL_PORTALS4_SOURCE_MASK #define MTL_PORTALS4_SOURCE_IGNR MTL_PORTALS4_SOURCE_MASK
#define MTL_PORTALS4_TAG_IGNR 0x000000007FFFFFFFULL #define MTL_PORTALS4_TAG_IGNR 0x00000000007FFFFFULL
#define MTL_PORTALS4_SHORT_MSG 0x1000000000000000ULL #define MTL_PORTALS4_SHORT_MSG 0x1000000000000000ULL
#define MTL_PORTALS4_LONG_MSG 0x2000000000000000ULL #define MTL_PORTALS4_LONG_MSG 0x2000000000000000ULL
@ -152,9 +154,9 @@ extern mca_mtl_portals4_module_t ompi_mtl_portals4;
#define MTL_PORTALS4_SET_SEND_BITS(match_bits, contextid, source, tag, type) \ #define MTL_PORTALS4_SET_SEND_BITS(match_bits, contextid, source, tag, type) \
{ \ { \
match_bits = contextid; \ match_bits = contextid; \
match_bits = (match_bits << 16); \ match_bits = (match_bits << 24); \
match_bits |= source; \ match_bits |= source; \
match_bits = (match_bits << 32); \ match_bits = (match_bits << 24); \
match_bits |= (MTL_PORTALS4_TAG_MASK & tag) | type; \ match_bits |= (MTL_PORTALS4_TAG_MASK & tag) | type; \
} }
@ -165,14 +167,14 @@ extern mca_mtl_portals4_module_t ompi_mtl_portals4;
ignore_bits = MTL_PORTALS4_PROTOCOL_IGNR; \ ignore_bits = MTL_PORTALS4_PROTOCOL_IGNR; \
\ \
match_bits = contextid; \ match_bits = contextid; \
match_bits = (match_bits << 16); \ match_bits = (match_bits << 24); \
\ \
if (MPI_ANY_SOURCE == source) { \ if (MPI_ANY_SOURCE == source) { \
match_bits = (match_bits << 32); \ match_bits = (match_bits << 24); \
ignore_bits |= MTL_PORTALS4_SOURCE_IGNR; \ ignore_bits |= MTL_PORTALS4_SOURCE_IGNR; \
} else { \ } else { \
match_bits |= source; \ match_bits |= source; \
match_bits = (match_bits << 32); \ match_bits = (match_bits << 24); \
} \ } \
\ \
if (MPI_ANY_TAG == tag) { \ if (MPI_ANY_TAG == tag) { \
@ -192,7 +194,7 @@ extern mca_mtl_portals4_module_t ompi_mtl_portals4;
#define MTL_PORTALS4_GET_TAG(match_bits) \ #define MTL_PORTALS4_GET_TAG(match_bits) \
((int)(match_bits & MTL_PORTALS4_TAG_MASK)) ((int)(match_bits & MTL_PORTALS4_TAG_MASK))
#define MTL_PORTALS4_GET_SOURCE(match_bits) \ #define MTL_PORTALS4_GET_SOURCE(match_bits) \
((int)((match_bits & MTL_PORTALS4_SOURCE_MASK) >> 32)) ((int)((match_bits & MTL_PORTALS4_SOURCE_MASK) >> 24))
#define MTL_PORTALS4_SYNC_MSG 0x8000000000000000ULL #define MTL_PORTALS4_SYNC_MSG 0x8000000000000000ULL