Ok.  We'll rely on your patches.  :-)

On Feb 28, 2012, at 11:00 AM, Leif Lindholm wrote:

> We'd need a few ifdefs, effectively.
> 
> One on the dmb/mcr and one on the 64-bit, depending on v6k or higher.
> 
> This would provide ARMv6 support only though - ARMv5 or earlier (like debian 
> "armel") will still miss out.
> 
>> -----Original Message-----
>> From: devel-boun...@open-mpi.org [mailto:devel-boun...@open-mpi.org] On
>> Behalf Of Jeffrey Squyres
>> Sent: 28 February 2012 14:10
>> To: Leif Lindholm
>> Cc: Open MPI Developers; Ron Broberg
>> Subject: Re: [OMPI devel] Compiling OpenMPI 1.5.4 on Debian 6 qemu
>> arm6l
>> 
>> Are there any changes we need to make to OMPI?
>> 
>> 
>> On Feb 28, 2012, at 7:50 AM, Leif Lindholm wrote:
>> 
>>> Hi Ron,
>>> 
>>> Excellent work! Indeed - simply dropping the DMBs can lead to memory
>> consistency issues even on ARMv6.
>>> 
>>> The architectural semantics for memory barriers exist in ARMv6 though
>> - they just weren't given dedicated mnemonics.
>>> What you could do is to simply replace the inline "dmb" sequences
>> with inline cp15 operations:
>>> - "MCR p15, 0, r0, c7, c10, 5"
>>> (the 'r0' is an encoding artefact and doesn't affect the register
>>> contents)
>>> 
>>> LDREXD/STREXD weren't part of the ARMv6 base architecture, although
>> they are supported by the 1176 which is used in the Raspberry PI. If
>> your tools support detecting/building for extension subarchitecture
>> ARMv6k (supported by 1176), you can actually keep the 64-bit atomics
>> in.
>>> 
>>> Best Regards,
>>> 
>>> Leif
>>> 
>>> References:
>>> 
>> http://infocenter.arm.com/help/topic/com.arm.doc.ddi0301h/Babfdddg.html
>>> 
>> http://infocenter.arm.com/help/topic/com.arm.doc.ddi0301h/Babhejba.html
>>> 
>>>> -----Original Message-----
>>>> From: Jeffrey Squyres [mailto:jsquy...@cisco.com]
>>>> Sent: 28 February 2012 12:30
>>>> To: Ron Broberg; Open MPI Developers
>>>> Cc: Leif Lindholm
>>>> Subject: Re: [OMPI devel] Compiling OpenMPI 1.5.4 on Debian 6 qemu
>>>> arm6l
>>>> 
>>>> Ron -- Many thanks!
>>>> 
>>>> Leif -- can you comment on this?  (yes, I'm passing the buck to our
>> ARM
>>>> Open MPI representative :-) )
>>>> 
>>>> 
>>>> On Feb 26, 2012, at 1:22 PM, Ron Broberg wrote:
>>>> 
>>>>> I would like to report the following information regarding
>> compiling
>>>> OpenMPI on Debian ARMv6. I won't submit this as a patch because I
>> don't
>>>> believe that "delete all 'dmb' instructions" can be considered a
>> well
>>>> developed patch. But this information may be of use to someone down
>> the
>>>> line.
>>>>> 
>>>>> I was able to compile the upstream openmpi-1.5.4 distribution on a
>>>> Debian6 armv6l qemu emulation.
>>>>> http://www.open-mpi.org/software/ompi/v1.4/downloads/openmpi-
>>>> 1.4.5.tar.bz2
>>>>> 
>>>>> 
>>>>> You have to make 3 changes to the package
>>>>> 1) Delete all references to the RISC instruction 'dmb'
>>>>> 2) Modify the 'configure' file to include an 'armv6' option
>>>>> 3) Compile with CFLAGS=-march=armv6
>>>>> 
>>>>> ## 1) make the following edits to these three files
>>>>> ./opal/asm/generated/atomic-local.s
>>>>>   delete all dmb instructions
>>>>> ./opal/asm/base/ARM.asm
>>>>>   delete all dmb instructions
>>>>> ./opal/include/opal/sys/arm/atomic.h
>>>>>   change the lines:
>>>>> #if OPAL_WANT_SMP_LOCKS
>>>>> #define MB()  __asm__ __volatile__ ("dmb" : : : "memory")
>>>>> #define RMB() __asm__ __volatile__ ("dmb" : : : "memory")
>>>>> #define WMB() __asm__ __volatile__ ("dmb" : : : "memory")
>>>>> #else
>>>>> #define MB()
>>>>> #define RMB()
>>>>> #define WMB()
>>>>> #endif
>>>>> 
>>>>> to read:
>>>>> #define MB()
>>>>> #define RMB()
>>>>> #define WMB()
>>>>> 
>>>>> ## 2) add the following to the 'configure' file at line 26946 of
>>>> 171183
>>>>> goto line 26946, there should be an 'alpha-' section above and an
>>>> 'armv7' below
>>>>> insert the following
>>>>>       armv6*)
>>>>>           ompi_cv_asm_arch="ARM"
>>>>>           OPAL_ASM_SUPPORT_64BIT=0
>>>>>           OMPI_GCC_INLINE_ASSIGN='"mov %0, #0" : "=&r"(ret)'
>>>>>           ;;
>>>>> 
>>>>> ## 3) compile and install with the following CFLAGS
>>>>> CFLAGS=-march=armv6
>>>>> ./configure CFLAGS=-march=armv6
>>>>> make
>>>>> sudo make install
>>>>> 
>>>>> more information about my build at
>>>>> http://rhinohide.wordpress.com/2012/02/26/openmpi-on-raspberry-pi/
>>>>> 
>>>>> 
>>>>> _______________________________________________
>>>>> devel mailing list
>>>>> de...@open-mpi.org
>>>>> http://www.open-mpi.org/mailman/listinfo.cgi/devel
>>>> 
>>>> 
>>>> --
>>>> Jeff Squyres
>>>> jsquy...@cisco.com
>>>> For corporate legal information go to:
>>>> http://www.cisco.com/web/about/doing_business/legal/cri/
>>>> 
>>> 
>>> 
>>> -- IMPORTANT NOTICE: The contents of this email and any attachments
>> are confidential and may also be privileged. If you are not the
>> intended recipient, please notify the sender immediately and do not
>> disclose the contents to any other person, use it for any purpose, or
>> store or copy the information in any medium.  Thank you.
>>> 
>> 
>> 
>> --
>> Jeff Squyres
>> jsquy...@cisco.com
>> For corporate legal information go to:
>> http://www.cisco.com/web/about/doing_business/legal/cri/
>> 
>> 
>> _______________________________________________
>> devel mailing list
>> de...@open-mpi.org
>> http://www.open-mpi.org/mailman/listinfo.cgi/devel
> 
> 
> -- IMPORTANT NOTICE: The contents of this email and any attachments are 
> confidential and may also be privileged. If you are not the intended 
> recipient, please notify the sender immediately and do not disclose the 
> contents to any other person, use it for any purpose, or store or copy the 
> information in any medium.  Thank you.
> 


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