summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/usr/isteps/pm/runtime/rt_pm.C4
-rw-r--r--src/usr/runtime/populate_hbruntime.C10
-rw-r--r--src/usr/sbeio/runtime/rt_sbeio.C10
-rw-r--r--src/usr/testcore/rtloader/loader.H2
4 files changed, 21 insertions, 5 deletions
diff --git a/src/usr/isteps/pm/runtime/rt_pm.C b/src/usr/isteps/pm/runtime/rt_pm.C
index 567fdca92..32d3e0a25 100644
--- a/src/usr/isteps/pm/runtime/rt_pm.C
+++ b/src/usr/isteps/pm/runtime/rt_pm.C
@@ -435,7 +435,9 @@ namespace RTPM
itr != procChips.end();
++itr)
{
- uint32_t l_instance = (*itr)->getAttr<ATTR_POSITION>();
+ // Note: the instance we use to retrieve the data must
+ // match the value we used to populate HDAT originally
+ uint32_t l_instance = (*itr)->getAttr<ATTR_HBRT_HYP_ID>();
uint64_t l_homerAddr = g_hostInterfaces->
get_reserved_mem(HBRT_RSVD_MEM__HOMER,
l_instance);
diff --git a/src/usr/runtime/populate_hbruntime.C b/src/usr/runtime/populate_hbruntime.C
index 4fb289c54..4c9f30847 100644
--- a/src/usr/runtime/populate_hbruntime.C
+++ b/src/usr/runtime/populate_hbruntime.C
@@ -650,6 +650,8 @@ errlHndl_t populate_HbRsvMem(uint64_t i_nodeId)
l_homerAddr = l_procChip->getAttr
<TARGETING::ATTR_HOMER_PHYS_ADDR>();
+ // Note: the instance we use to retrieve the data must
+ // match the value we used to populate HDAT originally
l_elog = setNextHbRsvMemEntry(HDAT::RHB_TYPE_HOMER_OCC,
l_procChip->getAttr<TARGETING::ATTR_HBRT_HYP_ID>(),
l_homerAddr,
@@ -841,6 +843,10 @@ errlHndl_t populate_HbRsvMem(uint64_t i_nodeId)
// Loop through all functional Procs
for (const auto & l_procChip: l_procChips)
{
+ // Note: the instance we use to retrieve the data must
+ // match the value we used to populate HDAT originally
+ uint32_t l_id = l_procChip->getAttr<TARGETING::ATTR_HBRT_HYP_ID>();
+
// -- SBE Communications buffer entry
if(TARGETING::is_phyp_load())
{
@@ -852,7 +858,7 @@ errlHndl_t populate_HbRsvMem(uint64_t i_nodeId)
}
l_elog = setNextHbRsvMemEntry(HDAT::RHB_TYPE_HBRT,
- i_nodeId,
+ l_id,
l_sbeCommAddr,
l_sbeCommSizeAligned,
HBRT_RSVD_MEM__SBE_COMM);
@@ -879,7 +885,7 @@ errlHndl_t populate_HbRsvMem(uint64_t i_nodeId)
}
l_elog = setNextHbRsvMemEntry(HDAT::RHB_TYPE_HBRT,
- i_nodeId,
+ l_id,
l_sbeffdcAddr,
l_sbeffdcSizeAligned,
HBRT_RSVD_MEM__SBE_FFDC);
diff --git a/src/usr/sbeio/runtime/rt_sbeio.C b/src/usr/sbeio/runtime/rt_sbeio.C
index cece7ea98..1ff66a649 100644
--- a/src/usr/sbeio/runtime/rt_sbeio.C
+++ b/src/usr/sbeio/runtime/rt_sbeio.C
@@ -600,6 +600,8 @@ namespace RT_SBEIO
int rc = 0;
errlHndl_t errl = nullptr;
+ TRACFCOMP(g_trac_sbeio, ENTER_MRK" process_sbe_msg: on proc %d", i_procChipId );
+
// Used to store a local copy of the Pass-through command and preserve
// it during processing (response overlays SBE Communication buffer)
sbeMessage_t l_request;
@@ -718,6 +720,7 @@ namespace RT_SBEIO
errlCommit (errl, SBE_COMP_ID);
}
+ TRACFCOMP(g_trac_sbeio, EXIT_MRK" process_sbe_msg: rc=%d", rc );
return rc;
}
@@ -829,11 +832,16 @@ namespace RT_SBEIO
getAllChips(procChips, TYPE_PROC, true);
for (const auto & l_procChip: procChips)
{
- uint64_t l_instance = l_procChip->getAttr<ATTR_POSITION>();
+ // Note: the instance we use to retrieve the data must
+ // match the value we used to populate HDAT originally
+ uint64_t l_instance = l_procChip->getAttr<ATTR_HBRT_HYP_ID>();
uint64_t l_sbeCommAddr = g_hostInterfaces->get_reserved_mem(
HBRT_RSVD_MEM__SBE_COMM,
l_instance);
l_procChip->setAttr<ATTR_SBE_COMM_ADDR>(l_sbeCommAddr);
+ TRACFCOMP( g_trac_sbeio, INFO_MRK" COMM_ADDR=0x%.llX for %.8X",
+ l_sbeCommAddr,
+ TARGETING::get_huid(l_procChip) );
}
#ifdef CONFIG_HTMGT
diff --git a/src/usr/testcore/rtloader/loader.H b/src/usr/testcore/rtloader/loader.H
index 11bbc6f3d..aa035d1eb 100644
--- a/src/usr/testcore/rtloader/loader.H
+++ b/src/usr/testcore/rtloader/loader.H
@@ -622,7 +622,7 @@ class RuntimeLoaderTest : public CxxTest::TestSuite
for (const auto & l_procChip: procChips)
{
uint64_t l_instance =
- l_procChip->getAttr<TARGETING::ATTR_POSITION>();
+ l_procChip->getAttr<TARGETING::ATTR_HBRT_HYP_ID>();
if(l_instance == i_instance)
{
cv_comm_addr =
OpenPOWER on IntegriCloud