Yes, and I completely agree. I was simply trying to keep it consistent in
case there is something I don't know about the heterogeneous case.

I increased the size of the 64 bit member because there is no uint128 type.

-Nathan

On Mon, 7 Nov 2011 10:00:27 -0500, Jeff Squyres <jsquy...@cisco.com> wrote:
> It's a union, right?  So the size increase (and type change for the 64
> value) shouldn't have been necessary.
> 
> 
> On Nov 7, 2011, at 9:56 AM, Nathan T. Hjelm wrote:
> 
>> Just keeping it consistent with the existing code. Thought it might be
>> necessary for heterogenous.
>>
>> -Nathan
>>
>> On Mon, 7 Nov 2011 09:14:21 -0500, Jeff Squyres <jsquy...@cisco.com>
> wrote:
>>> Just curious -- why was it necessary to increase the size of the 8, 32,
>> and
>>> 64 arrays?
>>>
>>>
>>> On Nov 6, 2011, at 11:19 AM, hje...@osl.iu.edu wrote:
>>>
>>>> Author: hjelmn
>>>> Date: 2011-11-06 11:19:09 EST (Sun, 06 Nov 2011)
>>>> New Revision: 25445
>>>> URL: https://svn.open-mpi.org/trac/ompi/changeset/25445
>>>>
>>>> Log:
>>>> changes to seg_key needed for a new btl
>>>> Text files modified:
>>>>  trunk/ompi/mca/btl/btl.h                      |     8 ++++----
>>>>  trunk/ompi/mca/btl/mx/btl_mx.c                |     6 +++---
>>>>  trunk/ompi/mca/btl/portals/btl_portals.c      |    12 ++++++------
>>>>  trunk/ompi/mca/btl/portals/btl_portals_frag.c |     2 +-
>>>>  trunk/ompi/mca/btl/portals/btl_portals_rdma.c |     8 ++++----
>>>>  trunk/ompi/mca/btl/self/btl_self.c            |     4 ++--
>>>>  trunk/ompi/mca/btl/sm/btl_sm.c                |     6 +++---
>>>>  trunk/ompi/mca/btl/vader/btl_vader.c          |     4 ++--
>>>>  trunk/ompi/mca/btl/vader/btl_vader_get.c      |     6 +++---
>>>>  trunk/ompi/mca/btl/vader/btl_vader_put.c      |     6 +++---
>>>>  10 files changed, 31 insertions(+), 31 deletions(-)
>>>>
>>>> Modified: trunk/ompi/mca/btl/btl.h
>>>>
>>>
>>
>
==============================================================================
>>>> --- trunk/ompi/mca/btl/btl.h       (original)
>>>> +++ trunk/ompi/mca/btl/btl.h       2011-11-06 11:19:09 EST (Sun, 06 Nov
> 2011)
>>>> @@ -238,10 +238,10 @@
>>>> #endif
>>>>    /** Memory segment key required by some RDMA networks */
>>>>    union {
>>>> -        uint32_t  key32[2];
>>>> -        uint64_t  key64;
>>>> -        uint8_t   key8[8];
>>>> -        uintptr_t ptr;
>>>> +        uint32_t  key32[4];
>>>> +        uint64_t  key64[2];
>>>> +        uint8_t   key8[16];
>>>> +        uintptr_t ptr[2];
>>>>    } seg_key;
>>>> };
>>>> typedef struct mca_btl_base_segment_t mca_btl_base_segment_t;
>>>>
>>>> Modified: trunk/ompi/mca/btl/mx/btl_mx.c
>>>>
>>>
>>
>
==============================================================================
>>>> --- trunk/ompi/mca/btl/mx/btl_mx.c (original)
>>>> +++ trunk/ompi/mca/btl/mx/btl_mx.c 2011-11-06 11:19:09 EST (Sun, 06
> Nov
>>> 2011)
>>>> @@ -323,13 +323,13 @@
>>>>
>>>>    frag->segment[0].seg_len       = *size;
>>>>    opal_convertor_get_current_pointer( convertor,
>>> (void**)&(frag->segment[0].seg_addr.pval) );
>>>> -    frag->segment[0].seg_key.key64 = (uint64_t)(intptr_t)frag;
>>>> +    frag->segment[0].seg_key.key64[0] = (uint64_t)(intptr_t)frag;
>>>>
>>>>    mx_segment.segment_ptr    = frag->segment[0].seg_addr.pval;
>>>>    mx_segment.segment_length = frag->segment[0].seg_len;
>>>>
>>>>    mx_return = mx_irecv( mx_btl->mx_endpoint, &mx_segment, 1,
>>>> -                          frag->segment[0].seg_key.key64,
>>>> +                          frag->segment[0].seg_key.key64[0],
>>>>                          BTL_MX_PUT_MASK, NULL, &(frag->mx_request) );
>>>>    if( OPAL_UNLIKELY(MX_SUCCESS != mx_return) ) {
>>>>        opal_output( 0, "Fail to re-register a fragment with the MX NIC
>>> ...\n" );
>>>> @@ -396,7 +396,7 @@
>>>>
>>>>    mx_return = mx_isend( mx_btl->mx_endpoint, mx_segment,
>>> descriptor->des_src_cnt,
>>>>                          endpoint->mx_peer_addr,
>>>> -                          descriptor->des_dst[0].seg_key.key64, frag,
>>>> +                          descriptor->des_dst[0].seg_key.key64[0],
>>> frag,
>>>>                          &frag->mx_request );
>>>>    if( OPAL_UNLIKELY(MX_SUCCESS != mx_return) ) {
>>>>        opal_output( 0, "mx_isend fails with error %s\n",
>>> mx_strerror(mx_return) );
>>>>
>>>> Modified: trunk/ompi/mca/btl/portals/btl_portals.c
>>>>
>>>
>>
>
==============================================================================
>>>> --- trunk/ompi/mca/btl/portals/btl_portals.c       (original)
>>>> +++ trunk/ompi/mca/btl/portals/btl_portals.c       2011-11-06 11:19:09 EST
>>> (Sun, 06 Nov 2011)
>>>> @@ -357,7 +357,7 @@
>>>>
>>>>        frag->segments[0].seg_len = max_data;
>>>>        frag->segments[0].seg_addr.pval = iov.iov_base;
>>>> -        frag->segments[0].seg_key.key64 =
>>>> +        frag->segments[0].seg_key.key64[0] =
>>>>
>>> OPAL_THREAD_ADD64(&(mca_btl_portals_module.portals_rdma_key), 1);
>>>>        frag->base.des_src_cnt = 1;
>>>>
>>>> @@ -366,13 +366,13 @@
>>>>                             "rdma src posted for frag 0x%lx, callback
>>> 0x%lx, bits %"PRIu64", flags say %d" ,
>>>>                             (unsigned long) frag,
>>>>                             (unsigned long) frag->base.des_cbfunc,
>>>> -                             frag->segments[0].seg_key.key64,
> flags));
>>>> +                             frag->segments[0].seg_key.key64[0],
>>> flags));
>>>>
>>>>        /* create a match entry */
>>>>        ret = PtlMEAttach(mca_btl_portals_module.portals_ni_h,
>>>>                          OMPI_BTL_PORTALS_RDMA_TABLE_ID,
>>>>                          *((mca_btl_base_endpoint_t*) peer),
>>>> -                          frag->segments[0].seg_key.key64, /* match
> */
>>>> +                          frag->segments[0].seg_key.key64[0], /*
> match
>>> */
>>>>                          0, /* ignore */
>>>>                          PTL_UNLINK,
>>>>                          PTL_INS_AFTER,
>>>> @@ -449,7 +449,7 @@
>>>>
>>>>    frag->segments[0].seg_len = *size;
>>>>    opal_convertor_get_current_pointer( convertor,
>>> (void**)&(frag->segments[0].seg_addr.pval) );
>>>> -    frag->segments[0].seg_key.key64 =
>>>> +    frag->segments[0].seg_key.key64[0] =
>>>>        OPAL_THREAD_ADD64(&(mca_btl_portals_module.portals_rdma_key),
>>> 1);
>>>>    frag->base.des_src = NULL;
>>>>    frag->base.des_src_cnt = 0;
>>>> @@ -461,14 +461,14 @@
>>>>                         "rdma dest posted for frag 0x%lx, callback
>>> 0x%lx, bits %" PRIu64 " flags %d",
>>>>                         (unsigned long) frag,
>>>>                         (unsigned long) frag->base.des_cbfunc,
>>>> -                         frag->segments[0].seg_key.key64,
>>>> +                         frag->segments[0].seg_key.key64[0],
>>>>                         flags));
>>>>
>>>>    /* create a match entry */
>>>>    ret = PtlMEAttach(mca_btl_portals_module.portals_ni_h,
>>>>                      OMPI_BTL_PORTALS_RDMA_TABLE_ID,
>>>>                      *((mca_btl_base_endpoint_t*) peer),
>>>> -                      frag->segments[0].seg_key.key64, /* match */
>>>> +                      frag->segments[0].seg_key.key64[0], /* match */
>>>>                      0, /* ignore */
>>>>                      PTL_UNLINK,
>>>>                      PTL_INS_AFTER,
>>>>
>>>> Modified: trunk/ompi/mca/btl/portals/btl_portals_frag.c
>>>>
>>>
>>
>
==============================================================================
>>>> --- trunk/ompi/mca/btl/portals/btl_portals_frag.c  (original)
>>>> +++ trunk/ompi/mca/btl/portals/btl_portals_frag.c  2011-11-06 11:19:09
>>> EST (Sun, 06 Nov 2011)
>>>> @@ -34,7 +34,7 @@
>>>>
>>>>    frag->segments[0].seg_addr.pval = frag + 1;
>>>>    frag->segments[0].seg_len = frag->size;
>>>> -    frag->segments[0].seg_key.key64 = 0;
>>>> +    frag->segments[0].seg_key.key64[0] = 0;
>>>>
>>>>    frag->md_h = PTL_INVALID_HANDLE;
>>>> }
>>>>
>>>> Modified: trunk/ompi/mca/btl/portals/btl_portals_rdma.c
>>>>
>>>
>>
>
==============================================================================
>>>> --- trunk/ompi/mca/btl/portals/btl_portals_rdma.c  (original)
>>>> +++ trunk/ompi/mca/btl/portals/btl_portals_rdma.c  2011-11-06 11:19:09
>>> EST (Sun, 06 Nov 2011)
>>>> @@ -39,7 +39,7 @@
>>>>    OPAL_OUTPUT_VERBOSE((90, mca_btl_portals_component.portals_output,
>>>>                         "PtlPut (rdma) fragment %lx, bits %" PRIx64,
>>>>                         (unsigned long) frag,
>>>> -                         frag->base.des_dst[0].seg_key.key64));
>>>> +                         frag->base.des_dst[0].seg_key.key64[0]));
>>>>
>>>>    assert(&mca_btl_portals_module == (mca_btl_portals_module_t*)
>>> btl_base);
>>>>    assert(frag->md_h != PTL_INVALID_HANDLE);
>>>> @@ -55,7 +55,7 @@
>>>>                 *((mca_btl_base_endpoint_t*) btl_peer),
>>>>                 OMPI_BTL_PORTALS_RDMA_TABLE_ID,
>>>>                 0, /* ac_index - not used*/
>>>> -                 frag->base.des_dst[0].seg_key.key64, /* match bits
> */
>>>> +                 frag->base.des_dst[0].seg_key.key64[0], /* match
> bits
>>> */
>>>>                 0, /* remote offset - not used */
>>>>                 *((ptl_hdr_data_t*) hdr_data));            /*
> hdr_data:
>>> tag */
>>>>    if (ret != PTL_OK) {
>>>> @@ -79,7 +79,7 @@
>>>>    OPAL_OUTPUT_VERBOSE((90, mca_btl_portals_component.portals_output,
>>>>                         "PtlGet (rdma) fragment %lx, bits %" PRIx64,
>>>>                         (unsigned long) frag,
>>>> -                         frag->base.des_src[0].seg_key.key64));
>>>> +                         frag->base.des_src[0].seg_key.key64[0]));
>>>>
>>>>    assert(&mca_btl_portals_module == (mca_btl_portals_module_t*)
>>> btl_base);
>>>>    assert(frag->md_h != PTL_INVALID_HANDLE);
>>>> @@ -91,7 +91,7 @@
>>>>                 *((mca_btl_base_endpoint_t*) btl_peer),
>>>>                 OMPI_BTL_PORTALS_RDMA_TABLE_ID,
>>>>                 0, /* ac_index - not used*/
>>>> -                 frag->base.des_src[0].seg_key.key64, /* match bits
> */
>>>> +                 frag->base.des_src[0].seg_key.key64[0], /* match
> bits
>>> */
>>>>                 0); /* remote offset - not used */
>>>>    if (ret != PTL_OK) {
>>>>        opal_output(mca_btl_portals_component.portals_output,
>>>>
>>>> Modified: trunk/ompi/mca/btl/self/btl_self.c
>>>>
>>>
>>
>
==============================================================================
>>>> --- trunk/ompi/mca/btl/self/btl_self.c     (original)
>>>> +++ trunk/ompi/mca/btl/self/btl_self.c     2011-11-06 11:19:09 EST (Sun,
> 06
>>> Nov 2011)
>>>> @@ -235,7 +235,7 @@
>>>>    frag->base.des_flags = flags;
>>>>    frag->base.des_src          = &frag->segment;
>>>>    frag->base.des_src_cnt      = 1;
>>>> -    frag->segment.seg_key.key64 = (uint64_t)(intptr_t)convertor;
>>>> +    frag->segment.seg_key.key64[0] = (uint64_t)(intptr_t)convertor;
>>>>    return &frag->base;
>>>> }
>>>>
>>>> @@ -264,7 +264,7 @@
>>>>    /* setup descriptor to point directly to user buffer */
>>>>    opal_convertor_get_current_pointer( convertor,
>>> (void**)&(frag->segment.seg_addr.pval) );
>>>>    frag->segment.seg_len = reserve + max_data;
>>>> -    frag->segment.seg_key.key64 = (uint64_t)(intptr_t)convertor;
>>>> +    frag->segment.seg_key.key64[0] = (uint64_t)(intptr_t)convertor;
>>>>    frag->base.des_dst = &frag->segment;
>>>>    frag->base.des_dst_cnt = 1;
>>>>    frag->base.des_flags = flags;
>>>>
>>>> Modified: trunk/ompi/mca/btl/sm/btl_sm.c
>>>>
>>>
>>
>
==============================================================================
>>>> --- trunk/ompi/mca/btl/sm/btl_sm.c (original)
>>>> +++ trunk/ompi/mca/btl/sm/btl_sm.c 2011-11-06 11:19:09 EST (Sun, 06
> Nov
>>> 2011)
>>>> @@ -739,7 +739,7 @@
>>>>        if (OPAL_UNLIKELY(ioctl(sm_btl->knem_fd,
> KNEM_CMD_CREATE_REGION,
>>> &knem_cr) < 0)) {
>>>>            return NULL;
>>>>        }
>>>> -        frag->segment.seg_key.key64 = knem_cr.cookie;
>>>> +        frag->segment.seg_key.key64[0] = knem_cr.cookie;
>>>>    }
>>>> #endif
>>>>    frag->base.des_src = &(frag->segment);
>>>> @@ -968,7 +968,7 @@
>>>>    recv_iovec.len =  dst->seg_len;
>>>>    icopy.local_iovec_array = (uintptr_t)&recv_iovec;
>>>>    icopy.local_iovec_nr = 1;
>>>> -    icopy.remote_cookie = src->seg_key.key64;
>>>> +    icopy.remote_cookie = src->seg_key.key64[0];
>>>>    icopy.remote_offset = 0;
>>>>    icopy.write = 0;
>>>>
>>>> @@ -1044,7 +1044,7 @@
>>>>        sm_btl->knem_status_first_avail = 0;
>>>>    }
>>>>    ++sm_btl->knem_status_num_used;
>>>> -    icopy.remote_cookie = src->seg_key.key64;
>>>> +    icopy.remote_cookie = src->seg_key.key64[0];
>>>>    icopy.remote_offset = 0;
>>>>
>>>>    /* Use the DMA flag if knem supports it *and* the segment length
>>>>
>>>> Modified: trunk/ompi/mca/btl/vader/btl_vader.c
>>>>
>>>
>>
>
==============================================================================
>>>> --- trunk/ompi/mca/btl/vader/btl_vader.c   (original)
>>>> +++ trunk/ompi/mca/btl/vader/btl_vader.c   2011-11-06 11:19:09 EST (Sun,
>>> 06 Nov 2011)
>>>> @@ -643,7 +643,7 @@
>>>>
>>>>    opal_convertor_get_current_pointer (convertor, (void **)
> &data_ptr);
>>>>
>>>> -    frag->segment.seg_key.ptr = (uintptr_t) data_ptr;
>>>> +    frag->segment.seg_key.ptr[0] = (uintptr_t) data_ptr;
>>>>    frag->segment.seg_len     = *size;
>>>>
>>>>    frag->base.des_dst     = &frag->segment;
>>>> @@ -738,7 +738,7 @@
>>>>            return NULL;
>>>>        }
>>>>
>>>> -        frag->segment.seg_key.ptr = (uintptr_t) data_ptr;
>>>> +        frag->segment.seg_key.ptr[0] = (uintptr_t) data_ptr;
>>>>        frag->segment.seg_len = reserve + *size;
>>>>    }
>>>>
>>>>
>>>> Modified: trunk/ompi/mca/btl/vader/btl_vader_get.c
>>>>
>>>
>>
>
==============================================================================
>>>> --- trunk/ompi/mca/btl/vader/btl_vader_get.c       (original)
>>>> +++ trunk/ompi/mca/btl/vader/btl_vader_get.c       2011-11-06 11:19:09 EST
>>> (Sun, 06 Nov 2011)
>>>> @@ -34,15 +34,15 @@
>>>>    void *rem_ptr;
>>>>
>>>>    reg = vader_get_registation (endpoint->peer_smp_rank,
>>>> -                                 (void *) src->seg_key.ptr,
>>>> +                                 (void *) src->seg_key.ptr[0],
>>>>                                 src->seg_len, 0);
>>>>    if (OPAL_UNLIKELY(NULL == reg)) {
>>>>        return OMPI_ERROR;
>>>>    }
>>>>
>>>> -    rem_ptr = vader_reg_to_ptr (reg, (void *) src->seg_key.ptr);
>>>> +    rem_ptr = vader_reg_to_ptr (reg, (void *) src->seg_key.ptr[0]);
>>>>
>>>> -    vader_memmove ((void *) dst->seg_key.ptr, rem_ptr, size);
>>>> +    vader_memmove ((void *) dst->seg_key.ptr[0], rem_ptr, size);
>>>>
>>>>    vader_return_registration (reg, endpoint->peer_smp_rank);
>>>>
>>>>
>>>> Modified: trunk/ompi/mca/btl/vader/btl_vader_put.c
>>>>
>>>
>>
>
==============================================================================
>>>> --- trunk/ompi/mca/btl/vader/btl_vader_put.c       (original)
>>>> +++ trunk/ompi/mca/btl/vader/btl_vader_put.c       2011-11-06 11:19:09 EST
>>> (Sun, 06 Nov 2011)
>>>> @@ -34,15 +34,15 @@
>>>>    void *rem_ptr;
>>>>
>>>>    reg = vader_get_registation (endpoint->peer_smp_rank,
>>>> -                                 (void *) dst->seg_key.ptr,
>>>> +                                 (void *) dst->seg_key.ptr[0],
>>>>                                 dst->seg_len, 0);
>>>>    if (OPAL_UNLIKELY(NULL == reg)) {
>>>>        return OMPI_ERROR;
>>>>    }
>>>>
>>>> -    rem_ptr = vader_reg_to_ptr (reg, (void *) dst->seg_key.ptr);
>>>> +    rem_ptr = vader_reg_to_ptr (reg, (void *) dst->seg_key.ptr[0]);
>>>>
>>>> -    vader_memmove (rem_ptr, (void *) src->seg_key.ptr, size);
>>>> +    vader_memmove (rem_ptr, (void *) src->seg_key.ptr[0], size);
>>>>
>>>>    vader_return_registration (reg, endpoint->peer_smp_rank);
>>>>
>>>> _______________________________________________
>>>> svn-full mailing list
>>>> svn-f...@open-mpi.org
>>>> http://www.open-mpi.org/mailman/listinfo.cgi/svn-full
>>>
>>>
>>> --
>>> Jeff Squyres
>>> jsquy...@cisco.com
>>> For corporate legal information go to:
>>> http://www.cisco.com/web/about/doing_business/legal/cri/
>>>
>>>
>>> _______________________________________________
>>> devel mailing list
>>> de...@open-mpi.org
>>> http://www.open-mpi.org/mailman/listinfo.cgi/devel
>>
>> _______________________________________________
>> devel mailing list
>> de...@open-mpi.org
>> http://www.open-mpi.org/mailman/listinfo.cgi/devel
> 
> 
> --
> Jeff Squyres
> jsquy...@cisco.com
> For corporate legal information go to:
> http://www.cisco.com/web/about/doing_business/legal/cri/
> 
> 
> _______________________________________________
> devel mailing list
> de...@open-mpi.org
> http://www.open-mpi.org/mailman/listinfo.cgi/devel

Reply via email to