From 54d001ee91b36b80a38898f76b8963e4cfae8fe9 Mon Sep 17 00:00:00 2001 From: Morris Jette <jette@schedmd.com> Date: Mon, 1 May 2017 14:51:35 -0600 Subject: [PATCH] node_features/knl_cray hardening This change will avoid possible problems in the event that "capmc get_mcdram_cfg" fails to return a mcdram_pct value. Never observed, but this will harden the code just in case... bug 3679 --- .../node_features/knl_cray/node_features_knl_cray.c | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/src/plugins/node_features/knl_cray/node_features_knl_cray.c b/src/plugins/node_features/knl_cray/node_features_knl_cray.c index 18f5627711b..24a6a5c2b65 100644 --- a/src/plugins/node_features/knl_cray/node_features_knl_cray.c +++ b/src/plugins/node_features/knl_cray/node_features_knl_cray.c @@ -670,6 +670,11 @@ static void _json_parse_mcdram_cfg_object(json_object *jobj, mcdram_cfg_t *ent) int64_t x; const char *p; + /* Initialize object */ + ent->dram_size = NO_VAL; + ent->mcdram_pct = NO_VAL16; + ent->mcdram_size = NO_VAL; + json_object_object_foreachC(jobj, iter) { type = json_object_get_type(iter.val); switch (type) { @@ -2287,8 +2292,9 @@ static int _update_node_state(char *node_list, bool set_locks) !bit_test(mcdram_cfg2[k].node_bitmap, mcdram_cfg[i].nid)) continue; - if (mcdram_cfg[i].mcdram_pct != - mcdram_cfg2[k].cache_pct) { + if ((mcdram_cfg[i].mcdram_pct != NO_VAL16) && + (mcdram_cfg[i].mcdram_pct != + mcdram_cfg2[k].cache_pct)) { info("%s: HBM mismatch between capmc and cnselect for nid %u (%u != %d)", __func__, mcdram_cfg[i].nid, mcdram_cfg[i].mcdram_pct, -- GitLab