xpmem: truncates the size of xpmem_attach at the page boundary (workaround for fjmpi)

Fujitsu MPI tries to attach a segment with the size of the source range size plus one.

Change-Id: Iab3801727f938dfb6242b6b90c88e4986b84d08e
Refs: #1507
This commit is contained in:
Yoshihisa Morizumi
2021-01-29 05:17:47 +09:00
committed by Masamichi Takagi
parent 4d1d53b335
commit 63443383e9
2 changed files with 27 additions and 0 deletions

View File

@@ -83,6 +83,23 @@ if(ENABLE_FUGAKU_HACKS)
set(KBUILD_C_FLAGS "${KBUILD_C_FLAGS} -DENABLE_FUGAKU_HACKS")
endif()
# Fujitsu MPI tries to xpmem-attach segment with size of range size + 1?
set(FJMPI_VERSION_COMMAND "a=\$(which mpifcc); b=\${a%/*/*}; c=\${b##*/}; d=\${c#*-}; echo \$d")
execute_process(COMMAND bash -c "${FJMPI_VERSION_COMMAND}"
OUTPUT_VARIABLE FJMPI_VERSION OUTPUT_STRIP_TRAILING_WHITESPACE)
message("FJMPI_VERSION: ${FJMPI_VERSION}")
if(NOT "${FJMPI_VERSION}" STREQUAL "")
option(ENABLE_FJMPI_WORKAROUND "Fujitsu MPI workaround" ON)
else()
option(ENABLE_FJMPI_WORKAROUND "Fujitsu MPI workaround" OFF)
endif()
if(ENABLE_FJMPI_WORKAROUND)
add_definitions(-DENABLE_FJMPI_WORKAROUND)
set(KBUILD_C_FLAGS "${KBUILD_C_FLAGS} -DENABLE_FJMPI_WORKAROUND")
endif()
# krm that mandates reserved memory amount >= available at boot time?
execute_process(COMMAND bash -c "rpm -qi FJSVpxkrm-plugin-mckernel | awk '$1 == \"Version\" && $2 == \":\" { print $3 }'"
OUTPUT_VARIABLE KRM_VERSION OUTPUT_STRIP_TRAILING_WHITESPACE)
@@ -315,6 +332,7 @@ message("ENABLE_TOFU: ${ENABLE_TOFU}")
message("ENABLE_FUGAKU_HACKS: ${ENABLE_FUGAKU_HACKS}")
message("ENABLE_FUGAKU_DEBUG: ${ENABLE_FUGAKU_DEBUG}")
message("ENABLE_KRM_WORKAROUND: ${ENABLE_KRM_WORKAROUND}")
message("ENABLE_FJMPI_WORKAROUND: ${ENABLE_FJMPI_WORKAROUND}")
message("PROFILE_ENABLE: ${PROFILE_ENABLE}")
message("ENABLE_RUSAGE: ${ENABLE_RUSAGE}")
message("ENABLE_QLMPI: ${ENABLE_QLMPI}")