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
*
* 0123 4567 01234567 01234567 01234567 01234567 01234567 01234567 01234567
* | | |
* ^ | context id | source | message tag
* | | | |
* | | |
* ^ | context id | source | message tag
* | | | |
* +---- protocol
*/
#define MTL_PORTALS4_MAX_TAG ((1UL << 24) -1)
#define MTL_PORTALS4_PROTOCOL_MASK 0xF000000000000000ULL
#define MTL_PORTALS4_CONTEXT_MASK 0x0FFF000000000000ULL
#define MTL_PORTALS4_SOURCE_MASK 0x0000FFFF00000000ULL
#define MTL_PORTALS4_TAG_MASK 0x00000000FFFFFFFFULL
#define MTL_PORTALS4_SOURCE_MASK 0x0000FFFFFF000000ULL
#define MTL_PORTALS4_TAG_MASK 0x0000000000FFFFFFULL
#define MTL_PORTALS4_PROTOCOL_IGNR MTL_PORTALS4_PROTOCOL_MASK
#define MTL_PORTALS4_CONTEXT_IGNR MTL_PORTALS4_CONTEXT_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_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) \
{ \
match_bits = contextid; \
match_bits = (match_bits << 16); \
match_bits = (match_bits << 24); \
match_bits |= source; \
match_bits = (match_bits << 32); \
match_bits = (match_bits << 24); \
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; \
\
match_bits = contextid; \
match_bits = (match_bits << 16); \
match_bits = (match_bits << 24); \
\
if (MPI_ANY_SOURCE == source) { \
match_bits = (match_bits << 32); \
match_bits = (match_bits << 24); \
ignore_bits |= MTL_PORTALS4_SOURCE_IGNR; \
} else { \
match_bits |= source; \
match_bits = (match_bits << 32); \
match_bits = (match_bits << 24); \
} \
\
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) \
((int)(match_bits & MTL_PORTALS4_TAG_MASK))
#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