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/