Open MPI logo

Hardware Locality Development Mailing List Archives

  |   Home   |   Support   |   FAQ   |   all Hardware Locality Development mailing list

Subject: Re: [hwloc-devel] -lhwloc in components.
From: Brice Goglin (Brice.Goglin_at_[hidden])
Date: 2012-09-05 12:43:07


Le 05/09/2012 17:40, Jeff Squyres a écrit :
> I agree -- all of the things you mention are do-able.
>
> But it's a whole lot more bookkeeping and care/feeding to ensure that nothing goes wrong vs. just calling a hwloc core function and assuming it's there. Such things will require maintenance over time.
>
> In the end -- it's a tradeoff:
>
> - do we want the maintenance associated with a struct full of core function pointers?
>
> or
>
> - do we want to use the solution I mentioned in http://www.open-mpi.org/community/lists/hwloc-devel/2012/09/3253.php?

It may even be easier in hwloc since plugins are disabled by default. We
may just need to forbid --enable-static and --enabled-plugins
simultaneously.

Did anybody ever complained about shared+static not being allowed
simultaneously in OMPI?

Brice

>
> Both have strengths / weaknesses.
>
>
>
> On Sep 5, 2012, at 11:25 AM, Samuel Thibault wrote:
>
>> Jeff Squyres, le Wed 05 Sep 2012 17:13:56 +0200, a écrit :
>>>> The source code shouldn't need to be modified:
>>>>
>>>> #define hwloc_foo_bar(arg1, arg2) hwloc_funcs->foo_bar(arg1, arg2)
>>> You need to make sure that #define is only effected in certain places in the code.
>> Well, all the places that will constitute a plugin, no?
>>
>>> And you need to ensure that hwloc_funcs->[foo] isn't attempted to be used before it has been filled in.
>> As I said in my earlier mail, hwloc_funcs would be provided by the
>> loader of the plugin, so it can make sure it's filled in (I forgot to
>> mention that what I call hwloc_funcs above is an internal variable of
>> the plugin, not a symbol provided by libhwloc.so).
>>
>>> And unless there is a very fixed set of functions that can be called by plugins,
>> Well, I believe we'll have to have that anyway. That was part of the
>> whole discussion about plugins a long time ago.
>>
>>> you'll probably need to grow hwloc_funcs over time, which may lead to ABI issues...?
>> Sure. We can for instance make the plugin check for the size of
>> hwloc_funcs provided by the plugin loader vs the size that it was
>> compiled against, and thus refuse to get loaded by an older hwloc.
>>
>> Samuel
>> _______________________________________________
>> hwloc-devel mailing list
>> hwloc-devel_at_[hidden]
>> http://www.open-mpi.org/mailman/listinfo.cgi/hwloc-devel
>