Jeff Squyres wrote:
> On Sep 21, 2009, at 5:50 AM, Brice Goglin wrote:
>> I am playing with mx__regcache_clean() in Open-MX so as to have OpenMPI
>> cleanup the Open-MX regcache when needed. It causes some deadlocks since
>> OpenMPI intercepts Open-MX' own free() calls. Is there a "safe" way to
>> have Open-MX free/munmap calls not invoke OpenMPI interception hooks?
> Not ATM, no.
>> is there a way to detect the caller of free/munmap so that my
>> regcache_clean does nothing in this case? Otherwise, I guess I'll have
>> to add a private malloc implementation inside Open-MX and hope OpenMPI
>> won't see it.
> Can you structure your code to not call free/munmap inside the handler?
The first problem is actually about thread-safety. Most Open-MX
functions, including mx_regcache_clean(), take a pthread mutex. So I
would have to move all free/munmap outside of the locked section. That's
probably feasible but requires a lot of work :)