From 31cb72d6e80d05c8eaf50d63a783187e1dff581a Mon Sep 17 00:00:00 2001 From: nbhat4 Date: Tue, 12 Sep 2017 09:14:58 -0500 Subject: [PATCH] Set CPU affinity explicity for failing converse/pingpong test As CmiInitCPUAffinity is called from initCharm, it isn't set for converse programs. Temporary fix was to explicity set it from the converse program. Need to work on a more permanent solution. This bug was caught in the nightly build for SMP mode targets. Change-Id: Iade30506dcb0e4dc72e918d664e12bc2ea8338aa --- examples/converse/pingpong/pingpong.C | 4 ++++ src/ck-core/init.C | 1 - src/conv-core/converse.h | 2 +- 3 files changed, 5 insertions(+), 2 deletions(-) diff --git a/examples/converse/pingpong/pingpong.C b/examples/converse/pingpong/pingpong.C index aa5813a45a..6706819dfd 100644 --- a/examples/converse/pingpong/pingpong.C +++ b/examples/converse/pingpong/pingpong.C @@ -159,6 +159,10 @@ CmiStartFn mymain(int argc, char *argv[]) CpvInitialize(int,factor); CpvInitialize(bool,warmUp); + // Set runtime cpuaffinity + CmiInitCPUAffinity(argv); + // Update the argc after runtime parameters are extracted out + argc = CmiGetArgc(argv); if(argc == 5){ CpvAccess(nCycles)=atoi(argv[1]); CpvAccess(minMsgSize)= atoi(argv[2]); diff --git a/src/ck-core/init.C b/src/ck-core/init.C index 9ea6c7afaa..26bc4d3df4 100644 --- a/src/ck-core/init.C +++ b/src/ck-core/init.C @@ -999,7 +999,6 @@ extern void init_memcheckpt(char **argv); #endif extern "C" void initCharmProjections(); extern "C" void CmiInitCPUTopology(char **argv); -extern "C" void CmiInitCPUAffinity(char **argv); extern "C" void CmiCheckAffinity(); extern "C" void CmiInitMemAffinity(char **argv); extern "C" void CmiInitPxshm(char **argv); diff --git a/src/conv-core/converse.h b/src/conv-core/converse.h index ee984375a1..7e5c788ac0 100644 --- a/src/conv-core/converse.h +++ b/src/conv-core/converse.h @@ -585,7 +585,7 @@ extern int CmiNumPesOnPhysicalNode(int node); extern void CmiGetPesOnPhysicalNode(int node, int **pelist, int *num); extern int CmiGetFirstPeOnPhysicalNode(int node); extern int CmiPhysicalRank(int pe); - +extern void CmiInitCPUAffinity(char **argv); extern int CmiPrintCPUAffinity(); extern int CmiSetCPUAffinity(int core); extern int CmiOnCore(); -- 2.11.4.GIT