Skip to content

Conversation

@hjelmn
Copy link
Member

@hjelmn hjelmn commented Jun 5, 2018

Adds patcher support for aarch64 and fixes debug builds on aarch64 and power.

hjelmn added 3 commits June 5, 2018 09:43
This commit fixes a hang that occurs with debug builds of Open MPI on
aarch64 and power/powerpc systems. When the ll/sc atomics are inline
functions the compiler emits load/store instructions for the function
arguments with -O0. These extra load/store arguments can cause the ll
reservation to be cancelled causing live-lock.

Note that we did attempt to fix this with always_inline but the extra
instructions are stil emitted by the compiler (gcc). There may be
another fix but this has been tested and is working well.

Back-port from master.

References open-mpi#3697. Close when applied to v3.0.x and v3.1.x.

Signed-off-by: Nathan Hjelm <hjelmn@lanl.gov>
(cherry picked from commit f8dbf62)
Signed-off-by: Nathan Hjelm <hjelmn@lanl.gov>
(cherry picked from commit b09f0b1)
Signed-off-by: Nathan Hjelm <hjelmn@lanl.gov>
Signed-off-by: Nathan Hjelm <hjelmn@lanl.gov>
(cherry picked from commit 7ac3797)
Signed-off-by: Nathan Hjelm <hjelmn@lanl.gov>
This commit adds patcher support of aarch64. The current
implementation uses mov, movk, and br to perform the jump. This uses 5
instructions.

Signed-off-by: Nathan Hjelm <hjelmn@lanl.gov>
(cherry picked from commit 8192eb9)
Signed-off-by: Nathan Hjelm <hjelmn@lanl.gov>
@hjelmn hjelmn requested a review from shamisp June 5, 2018 15:46
@hjelmn hjelmn added the bug label Jun 5, 2018
@hjelmn hjelmn added this to the v3.0.3 milestone Jun 5, 2018
@shamisp
Copy link
Contributor

shamisp commented Jun 5, 2018

👍

@bwbarrett bwbarrett merged commit c74be94 into open-mpi:v3.0.x Jun 6, 2018
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants