On Apr 30, 2014, at 6:35 PM, George Bosilca <bosi...@icl.utk.edu> wrote:

> Puzzling. We survived so far without such a requirement.

Ralph tells me that this is a requirement.  So I figured we should check for it.

> In the BTLs where we needed a 64 bits entity corresponding to the 
> ompi_process_name_t we took advantage of the ompi_rte_hash_name function. 
> This function is supposed to convert from an ompi_process_name_t to a 
> uint64_t (in fact an opal_identifier_t) which can be then used to handle hash 
> tables.

...I don't really care, either way.  I'll do whatever you guys tell me to do 
here.  :-)

I put that assert there because Ralph told me it was a requirement, and I now 
have code in the usnic BTL that is doing a memcpy from a union uint64_t member 
to an ompi_process_name_t, and it assumes that the sizes are guaranteed to be 
the same.

If we want to do it some other way, that's fine with me, too.


>  George.
> 
> 
> On Apr 30, 2014, at 18:12 , svn-commit-mai...@open-mpi.org wrote:
> 
>> Author: jsquyres (Jeff Squyres)
>> Date: 2014-04-30 18:12:54 EDT (Wed, 30 Apr 2014)
>> New Revision: 31577
>> URL: https://svn.open-mpi.org/trac/ompi/changeset/31577
>> 
>> Log:
>> rte_base_frame.c: add sanity check to ensure proper sizes
>> 
>> There's a requirement in several places (e.g., opal dstore) that
>> sizeof(ompi_process_name_t) -- which comes from the compile-time
>> selected ompi/mca/rte component -- is equal to sizeof(uint64_t).  If
>> it's not, Bad Things will happen.
>> 
>> So put an assert here to catch that case.
>> 
>> Text files modified: 
>>  trunk/ompi/mca/rte/base/rte_base_frame.c |    10 +++++++++-                 
>>              
>>  1 files changed, 9 insertions(+), 1 deletions(-)
>> 
>> Modified: trunk/ompi/mca/rte/base/rte_base_frame.c
>> ==============================================================================
>> --- trunk/ompi/mca/rte/base/rte_base_frame.c Wed Apr 30 18:10:30 2014        
>> (r31576)
>> +++ trunk/ompi/mca/rte/base/rte_base_frame.c 2014-04-30 18:12:54 EDT (Wed, 
>> 30 Apr 2014)      (r31577)
>> @@ -1,6 +1,7 @@
>> /*
>> * Copyright (c) 2012-2013 Los Alamos National Security, LLC.
>> *                         All rights reserved.
>> + * Copyright (c) 2014 Cisco Systems, Inc.  All rights reserved.
>> * $COPYRIGHT$
>> * 
>> * Additional copyrights may follow
>> @@ -12,6 +13,7 @@
>> #include "ompi_config.h"
>> #include "ompi/constants.h"
>> 
>> +#include "opal_stdint.h"
>> #include "opal/util/output.h"
>> #include "opal/mca/mca.h"
>> #include "opal/mca/base/base.h"
>> @@ -36,7 +38,13 @@
>> static int ompi_rte_base_open(mca_base_open_flag_t flags)
>> {
>>    /* Open up all available components */
>> -    return mca_base_framework_components_open(&ompi_rte_base_framework, 
>> flags);
>> +    int ret = mca_base_framework_components_open(&ompi_rte_base_framework, 
>> flags);
>> +
>> +    /* Sanity check.  Many things will break if this is not true
>> +       (e.g., opal dstore needs this to be true). */
>> +    assert(sizeof(ompi_process_name_t) == sizeof(uint64_t));
>> +
>> +    return ret;
>> }
>> 
>> MCA_BASE_FRAMEWORK_DECLARE(ompi, rte, "OMPI Run-Time Environment Interface", 
>> NULL,
>> _______________________________________________
>> svn mailing list
>> s...@open-mpi.org
>> http://www.open-mpi.org/mailman/listinfo.cgi/svn
> 
> _______________________________________________
> devel mailing list
> de...@open-mpi.org
> Subscription: http://www.open-mpi.org/mailman/listinfo.cgi/devel
> Link to this post: 
> http://www.open-mpi.org/community/lists/devel/2014/04/14663.php


-- 
Jeff Squyres
jsquy...@cisco.com
For corporate legal information go to: 
http://www.cisco.com/web/about/doing_business/legal/cri/

Reply via email to