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. > >> Or >> 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 :) Brice