This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "MPICH primary repository". The branch, master has been updated via 354cd1fda6b63e545e1286a9cfac4e6b88ba0070 (commit) from 1a6eb4d6026a2999403d9731ceb1c8b357fab476 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- http://git.mpich.org/mpich.git/commitdiff/354cd1fda6b63e545e1286a9cfac4e6b88... commit 354cd1fda6b63e545e1286a9cfac4e6b88ba0070 Author: Ken Raffenetti <[email protected]> Date: Wed Nov 18 14:35:28 2015 -0600 pm/hydra/topo: better debug string management The static debug string allocation was not sufficient for machines with many processing elements. Dynamically allocate a string to accomodate all cases. We also remove spaces in the binding output to make things easier on users' terminals. Reported-by: Jeff Hammond <[email protected]> Signed-off-by: Halim Amer <[email protected]> diff --git a/src/pm/hydra/tools/topo/hwloc/topo_hwloc.c b/src/pm/hydra/tools/topo/hwloc/topo_hwloc.c index 987e52a..c441841 100644 --- a/src/pm/hydra/tools/topo/hwloc/topo_hwloc.c +++ b/src/pm/hydra/tools/topo/hwloc/topo_hwloc.c @@ -10,7 +10,6 @@ #include "topo_hwloc.h" #define MAP_LENGTH (5) -#define DBG_STR_LENGTH (128) struct HYDT_topo_hwloc_info HYDT_topo_hwloc_info = { 0 }; @@ -457,17 +456,21 @@ HYD_status HYDT_topo_hwloc_bind(int idx) /* For debugging, print the binding bitmaps but don't actually bind. */ if (HYDT_topo_info.debug) { - int i, cur; - char binding[DBG_STR_LENGTH]; + int i; + char *binding; - cur = HYDU_snprintf(binding, DBG_STR_LENGTH, "process %d binding: ", idx); + HYDU_MALLOC(binding, char *, HYDT_topo_hwloc_info.total_num_pus + 1, status); + memset(binding, '\0', HYDT_topo_hwloc_info.total_num_pus + 1); - for (i = 0; i < HYDT_topo_hwloc_info.total_num_pus; i++) - cur += HYDU_snprintf(&binding[cur], DBG_STR_LENGTH - cur + 1, "%d ", - hwloc_bitmap_isset(HYDT_topo_hwloc_info.bitmap[id], i)); + for (i = 0; i < HYDT_topo_hwloc_info.total_num_pus; i++) { + if (hwloc_bitmap_isset(HYDT_topo_hwloc_info.bitmap[id], i)) + *(binding + i) = '1'; + else + *(binding + i) = '0'; + } - HYDU_snprintf(&binding[cur], DBG_STR_LENGTH - cur + 1, "\n"); - HYDU_dump_noprefix(stdout, "%s", binding); + HYDU_dump_noprefix(stdout, "process %d binding: %s\n", idx, binding); + HYDU_FREE(binding); } else { hwloc_set_cpubind(topology, HYDT_topo_hwloc_info.bitmap[id], 0); @@ -476,8 +479,12 @@ HYD_status HYDT_topo_hwloc_bind(int idx) } } + fn_exit: HYDU_FUNC_EXIT(); return status; + + fn_fail: + goto fn_exit; } HYD_status HYDT_topo_hwloc_finalize(void) ----------------------------------------------------------------------- Summary of changes: src/pm/hydra/tools/topo/hwloc/topo_hwloc.c | 25 ++++++++++++++++--------- 1 files changed, 16 insertions(+), 9 deletions(-) hooks/post-receive -- MPICH primary repository