summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRick Ward <rward15@us.ibm.com>2018-04-05 17:06:58 -0500
committerWilliam G. Hoffa <wghoffa@us.ibm.com>2018-04-12 16:26:56 -0400
commitcde4990515a7a190fca7a3eb9f722f74c12acdb2 (patch)
tree8efb738062ff6e6c64a63b3695ddaf67364ef6a4
parentf5cd23d6c3be17356e0851ec5d5bb65cee48f15f (diff)
downloadtalos-hostboot-cde4990515a7a190fca7a3eb9f722f74c12acdb2.tar.gz
talos-hostboot-cde4990515a7a190fca7a3eb9f722f74c12acdb2.zip
Cleanup the fix for "zero length dump on single node systems".
The attribute, IS_MASTER_DRAWER, was being set in the function host_sys_fab_iovalid_processing() (istep 18.9), unfortunately that function is not called on single node systems. Had to reverse the logic on the previous IS_MASTER_DRAWER attribute, and make it an IS_SLAVE_DRAWER attribute. The reason is that there is a limitation (bug?) which requires hb-only, volatile attributes to have a default value of zero. Change-Id: Ib27349f18b2738b405649723cdcb11e2ec919991 CQ:SW423016 Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/56883 CI-Ready: Richard Ward <rward15@us.ibm.com> Tested-by: Jenkins Server <pfd-jenkins+hostboot@us.ibm.com> Reviewed-by: Richard J. Knight <rjknight@us.ibm.com> Tested-by: Jenkins OP Build CI <op-jenkins+hostboot@us.ibm.com> Tested-by: Jenkins OP HW <op-hw-jenkins+hostboot@us.ibm.com> Tested-by: FSP CI Jenkins <fsp-CI-jenkins+hostboot@us.ibm.com> Reviewed-by: Prachi Gupta <pragupta@us.ibm.com> Reviewed-by: William G. Hoffa <wghoffa@us.ibm.com>
-rw-r--r--src/usr/isteps/istep14/call_host_mpipl_service.C2
-rw-r--r--src/usr/isteps/istep18/establish_system_smp.C9
-rwxr-xr-xsrc/usr/targeting/common/xmltohb/attribute_types_hb.xml8
-rw-r--r--src/usr/targeting/common/xmltohb/target_types_hb.xml2
-rw-r--r--src/usr/targeting/targplatutil.C7
5 files changed, 13 insertions, 15 deletions
diff --git a/src/usr/isteps/istep14/call_host_mpipl_service.C b/src/usr/isteps/istep14/call_host_mpipl_service.C
index 6a65bf308..7eb7395fb 100644
--- a/src/usr/isteps/istep14/call_host_mpipl_service.C
+++ b/src/usr/isteps/istep14/call_host_mpipl_service.C
@@ -65,7 +65,7 @@ void* call_host_mpipl_service (void *io_pArgs)
if (!TARGETING::UTIL::isCurrentMasterNode())
{
TRACFCOMP(ISTEPS_TRACE::g_trac_isteps_trace,
- "call_host_mpipl_service cannot run on slave node, skipping");
+ "call_host_mpipl_service cannot run on slave node, skipping");
}
else
{
diff --git a/src/usr/isteps/istep18/establish_system_smp.C b/src/usr/isteps/istep18/establish_system_smp.C
index 733e0bf47..90de81b8d 100644
--- a/src/usr/isteps/istep18/establish_system_smp.C
+++ b/src/usr/isteps/istep18/establish_system_smp.C
@@ -449,15 +449,16 @@ static void set_is_master_drawer(TARGETING::EntityPath *master)
TARGETING::UTIL_FILTER_FUNCTIONAL);
assert(l_nodelist.size() == 1, "ERROR, only looking for one node.");
current = l_nodelist[0];
+
if (pe.instance == mpe.instance)
{
- // Current node is master, set IS_MASTER_DRAWER
- current->setAttr<TARGETING::ATTR_IS_MASTER_DRAWER>(1);
+ // Current node is master, unset IS_SLAVE_DRAWER
+ current->setAttr<TARGETING::ATTR_IS_SLAVE_DRAWER>(0);
}
else
{
- // Current node is not master, unset IS_MASTER_DRAWER
- current->setAttr<TARGETING::ATTR_IS_MASTER_DRAWER>(0);
+ // Current node is not master, set IS_SLAVE_DRAWER
+ current->setAttr<TARGETING::ATTR_IS_SLAVE_DRAWER>(1);
}
}
diff --git a/src/usr/targeting/common/xmltohb/attribute_types_hb.xml b/src/usr/targeting/common/xmltohb/attribute_types_hb.xml
index 85e22672e..972c2f01e 100755
--- a/src/usr/targeting/common/xmltohb/attribute_types_hb.xml
+++ b/src/usr/targeting/common/xmltohb/attribute_types_hb.xml
@@ -119,14 +119,14 @@
</attribute>
<attribute>
- <id>IS_MASTER_DRAWER</id>
- <description>1 = is master node, 0 = is not master node</description>
+ <id>IS_SLAVE_DRAWER</id>
+ <description>0 = is master node, 1 = is slave node</description>
<simpleType>
<uint8_t>
- <default>1</default>
+ <default>0</default>
</uint8_t>
</simpleType>
- <persistency>volatile</persistency>
+ <persistency>volatile-zeroed</persistency>
<readable/>
<writeable/>
</attribute>
diff --git a/src/usr/targeting/common/xmltohb/target_types_hb.xml b/src/usr/targeting/common/xmltohb/target_types_hb.xml
index b62ba346e..5f43f0a7a 100644
--- a/src/usr/targeting/common/xmltohb/target_types_hb.xml
+++ b/src/usr/targeting/common/xmltohb/target_types_hb.xml
@@ -55,7 +55,7 @@
<attribute><id>PART_NUMBER</id></attribute>
<attribute><id>SERIAL_NUMBER</id></attribute>
<attribute><id>VPD_SWITCHES</id></attribute>
- <attribute><id>IS_MASTER_DRAWER</id></attribute>
+ <attribute><id>IS_SLAVE_DRAWER</id></attribute>
</targetTypeExtension>
<targetTypeExtension>
diff --git a/src/usr/targeting/targplatutil.C b/src/usr/targeting/targplatutil.C
index 45fe78ebe..c8054cf60 100644
--- a/src/usr/targeting/targplatutil.C
+++ b/src/usr/targeting/targplatutil.C
@@ -113,17 +113,14 @@ void getMasterNodeTarget(Target*& o_masterNodeTarget)
bool isCurrentMasterNode()
{
-#if 0
// Get node target
TARGETING::TargetHandleList l_nodelist;
getEncResources(l_nodelist, TARGETING::TYPE_NODE,
TARGETING::UTIL_FILTER_FUNCTIONAL);
assert(l_nodelist.size() == 1, "ERROR, only expect one node.");
- auto isMaster = l_nodelist[0]->getAttr<TARGETING::ATTR_IS_MASTER_DRAWER>();
+ auto isSlave = l_nodelist[0]->getAttr<TARGETING::ATTR_IS_SLAVE_DRAWER>();
- return (isMaster == 1);
-#endif
- return true;
+ return (isSlave == 0);
}
#ifndef __HOSTBOOT_RUNTIME
OpenPOWER on IntegriCloud