Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
39 changes: 20 additions & 19 deletions ompi/mca/mtl/portals4/mtl_portals4.h
Original file line number Diff line number Diff line change
Expand Up @@ -158,7 +158,8 @@ extern mca_mtl_portals4_module_t ompi_mtl_portals4;
/* send posting */
#define MTL_PORTALS4_SET_SEND_BITS(match_bits, contextid, source, tag, type) \
{ \
match_bits = contextid; \
match_bits = 0; \
match_bits |= contextid; \
match_bits = (match_bits << 24); \
match_bits |= source; \
match_bits = (match_bits << 24); \
Expand All @@ -171,7 +172,7 @@ extern mca_mtl_portals4_module_t ompi_mtl_portals4;
match_bits = 0; \
ignore_bits = MTL_PORTALS4_PROTOCOL_IGNR; \
\
match_bits = contextid; \
match_bits |= contextid; \
match_bits = (match_bits << 24); \
\
if (MPI_ANY_SOURCE == source) { \
Expand All @@ -193,38 +194,38 @@ extern mca_mtl_portals4_module_t ompi_mtl_portals4;
(0 != (MTL_PORTALS4_SHORT_MSG & match_bits))
#define MTL_PORTALS4_IS_LONG_MSG(match_bits) \
(0 != (MTL_PORTALS4_LONG_MSG & match_bits))
#define MTL_PORTALS4_IS_READY_MSG(match_bits) \
(0 != (MTL_PORTALS4_READY_MSG & match_bits))

#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) >> 24))
#define MTL_PORTALS4_GET_CONTEXT(match_bits) \
((int)((match_bits & MTL_PORTALS4_CONTEXT_MASK) >> 48))


/* hda_data bit manipulation
*
* 0 1234567 01234567 01234567 0123 4567 01234567 01234567 01234567 01234567
* | | |
* ^| | context id | message tag
* || | |
* +---- is_sync
*/

#define MTL_PORTALS4_SYNC_MSG 0x8000000000000000ULL

#define MTL_PORTALS4_SET_HDR_DATA(hdr_data, tag, contextid, sync) \
#define MTL_PORTALS4_SET_HDR_DATA(hdr_data, opcount, length, sync) \
{ \
hdr_data = (sync) ? 1 : 0; \
hdr_data = (hdr_data << 39); \
hdr_data |= contextid; \
hdr_data = (hdr_data << 24); \
hdr_data |= (MTL_PORTALS4_TAG_MASK & tag); \
hdr_data = 0; \
hdr_data |= opcount & 0x7FFFULL; \
hdr_data = (hdr_data << 48); \
hdr_data |= (length & 0xFFFFFFFFFFFFULL); \
hdr_data |= (sync ? MTL_PORTALS4_SYNC_MSG : 0); \
}

#define MTL_PORTALS4_GET_LENGTH(hdr_data) ((size_t)(hdr_data & 0xFFFFFFFFFFFFULL))
#define MTL_PORTALS4_IS_SYNC_MSG(hdr_data) \
(0 != (MTL_PORTALS4_SYNC_MSG & hdr_data))

#define MTL_PORTALS4_SET_READ_BITS(match_bits, contextid, tag) \
{ \
match_bits = 0; \
match_bits |= (contextid & 0x0000000000FFFFFFULL); \
match_bits = (match_bits << 24); \
match_bits |= (tag & 0x0000000000FFFFFFULL); \
}

/* mtl-portals4 helpers */
OMPI_DECLSPEC ompi_proc_t *
ompi_mtl_portals4_get_proc_group(struct ompi_group_t *group, int rank);
Expand Down
2 changes: 1 addition & 1 deletion ompi/mca/mtl/portals4/mtl_portals4_probe.c
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,7 @@ completion_fn(ptl_event_t *ev, ompi_mtl_portals4_base_request_t *ptl_base_reques
ptl_request->status.MPI_SOURCE = MTL_PORTALS4_GET_SOURCE(ev->match_bits);
ptl_request->status.MPI_TAG = MTL_PORTALS4_GET_TAG(ev->match_bits);
ptl_request->status.MPI_ERROR = MPI_SUCCESS;
ptl_request->status._ucount += ev->mlength;
ptl_request->status._ucount =MTL_PORTALS4_GET_LENGTH(ev->hdr_data);
if (ev->type != PTL_EVENT_SEARCH) {
ptl_request->message = ompi_mtl_portals4_message_alloc(ev);
}
Expand Down
Loading