Skip to content

Commit 9057cdd

Browse files
committed
sentinel: uses local jobid and family as uint32_t
1 parent fe3941c commit 9057cdd

File tree

1 file changed

+4
-3
lines changed

1 file changed

+4
-3
lines changed

ompi/proc/proc.h

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -373,17 +373,18 @@ static inline bool ompi_proc_is_sentinel (ompi_proc_t *proc)
373373
* we assume an ompi_proc_t is at least aligned on two bytes,
374374
* so if the LSB of a pointer to an ompi_proc_t is 1, we have to handle
375375
* this pointer as a sentinel instead of a pointer.
376-
* a sentinel can be seen as a 64 bits array with the following format :
376+
* a sentinel can be seen as an uint64_t with the following format :
377377
* - bit 0 : 1
378378
* - bits 1-15 : local jobid
379379
* - bits 16-31 : job family
380380
* - bits 32-63 : vpid
381381
*/
382382
static inline uintptr_t ompi_proc_name_to_sentinel (opal_process_name_t name)
383383
{
384-
uintptr_t tmp, sentinel = 0x1;
384+
uintptr_t tmp, sentinel = 0;
385385
/* local jobid must fit in 15 bits */
386386
assert(! (ORTE_LOCAL_JOBID(name.jobid) & 0x8000));
387+
sentinel |= 0x1;
387388
tmp = (uintptr_t)ORTE_LOCAL_JOBID(name.jobid);
388389
sentinel |= ((tmp << 1) & 0xfffe);
389390
tmp = (uintptr_t)ORTE_JOB_FAMILY(name.jobid);
@@ -396,7 +397,7 @@ static inline uintptr_t ompi_proc_name_to_sentinel (opal_process_name_t name)
396397
static inline opal_process_name_t ompi_proc_sentinel_to_name (uintptr_t sentinel)
397398
{
398399
opal_process_name_t name;
399-
uint16_t local, family;
400+
uint32_t local, family;
400401
uint32_t vpid;
401402
assert(sentinel & 0x1);
402403
local = (sentinel >> 1) & 0x7fff;

0 commit comments

Comments
 (0)