Re: [OMPI devel] detecting regcache_clean deadlocks in Open-MX

2009-09-21 Thread Brice Goglin
Jeff Squyres wrote:
> Do you just want to wait for the ummunotify stuff in OMPI?  I'm half
> done making a merged "linux" memory component (i.e., it merges the
> ptmalloc2 component with the new ummunotify stuff).
>
> It won't help for kernels <2.6.32, of course.  :-)

Yeah that's another solution for bleeding-edge distribs :) But it's not
even merged in 2.6.32 yet, and I hope the perfcounter guys won't
successfully convince Roland of reimplementing ummunotify as a
perfcounter feature. The 2.6.32 merge window is closing soon...

Brice



Re: [OMPI devel] detecting regcache_clean deadlocks in Open-MX

2009-09-21 Thread Jeff Squyres
Do you just want to wait for the ummunotify stuff in OMPI?  I'm half  
done making a merged "linux" memory component (i.e., it merges the  
ptmalloc2 component with the new ummunotify stuff).


It won't help for kernels <2.6.32, of course.  :-)


On Sep 21, 2009, at 9:11 AM, Brice Goglin wrote:


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

___
devel mailing list
de...@open-mpi.org
http://www.open-mpi.org/mailman/listinfo.cgi/devel




--
Jeff Squyres
jsquy...@cisco.com



Re: [OMPI devel] detecting regcache_clean deadlocks in Open-MX

2009-09-21 Thread Brice Goglin
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



Re: [OMPI devel] detecting regcache_clean deadlocks in Open-MX

2009-09-21 Thread Jeff Squyres

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?

--
Jeff Squyres
jsquy...@cisco.com



[OMPI devel] detecting regcache_clean deadlocks in Open-MX

2009-09-21 Thread Brice Goglin
Hello,

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? 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.

thanks,
Brice