(accidental reply-to Nico rather than reply-to-all)
On 14 November 2012 00:30, Nicolas Pitre <nico(a)fluxnic.net> wrote:
On Tue, 13 Nov 2012, Jon Masters wrote:
I can see a few more issues in this patch:
...
In the ARMv6 file, you use ldrexd/strexd instructions which are only
available with the k extension of the ARMv6 architecture. That means
non-SMP ARMv6 variants won't support those instructions. You probably
should consider using the __kuser_cmpxchg64 kernel helper instead in
that case.
They don't actually get invoked though - since the
OPAL_ASM_SUPPORT_64BIT=0
set by configure for ARMv6 means that the 64-bit portions get excluded
through the #START_64BIT and #END_64BIT macros.
Which is also why it would work to use the same source files for v6 and v7
if only the barriers could be replaced.
And of course, the availability of __kuser_cmpxchg64 means that you
could add 64 bit support to the ARMv5 version as well if you feel like
it.
Open-MPI will synthesise 64-bit atomics using a 32-bit lock if no native
ops are available, so it wouldn't be necessary for functionality, although it
might be more efficient.
/
Leif