summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorNick Bofferding <bofferdn@us.ibm.com>2016-03-15 14:10:01 -0500
committerWilliam G. Hoffa <wghoffa@us.ibm.com>2016-03-29 17:13:00 -0400
commitd69021c4f1acb33cef4692ce85cead2540412862 (patch)
treed640d2b9ff69055b3c649f5d8b977f133d99d36d
parent0ceb12be50b8542714a981cbaee2d41244d49507 (diff)
downloadtalos-hostboot-d69021c4f1acb33cef4692ce85cead2540412862.tar.gz
talos-hostboot-d69021c4f1acb33cef4692ce85cead2540412862.zip
Support runtime target translation for Phyp
- Added ordinal IDs to system XML files - Added new HBRT_HYP_ID attribute to proc, membuf, core targets - Removed duplicate target type extensions - Customize HBRT_HYP_ID attributes in istep 21 based on payload type - Updated runtime translation interfaces for simple, efficient lookup - Added templated memoizer to speed up simple input/output functions - Generate ordinal IDs in common attribute parser - Added various test cases RTC: 146153 CMVC-Coreq: 989094 Change-Id: Ic60996f3b7c3197191f8939f362c578b54475df4 Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/22254 Tested-by: Jenkins Server Tested-by: FSP CI Jenkins Reviewed-by: Christian R. Geddes <crgeddes@us.ibm.com> Reviewed-by: Corey V. Swenson <cswenson@us.ibm.com> Reviewed-by: Daniel M. Crowell <dcrowell@us.ibm.com> Reviewed-by: William G. Hoffa <wghoffa@us.ibm.com>
-rw-r--r--src/include/usr/runtime/customize_attrs_for_payload.H62
-rw-r--r--src/include/usr/runtime/runtime_reasoncodes.H11
-rw-r--r--src/include/util/memoize.H108
-rw-r--r--src/makefile4
-rw-r--r--src/usr/isteps/istep21/call_host_runtime_setup.C12
-rw-r--r--src/usr/runtime/customize_attrs_for_payload.C419
-rw-r--r--src/usr/runtime/makefile3
-rw-r--r--src/usr/runtime/test/makefile16
-rw-r--r--src/usr/runtime/test/test_customize_attrs_for_payload.H458
-rwxr-xr-xsrc/usr/targeting/common/genHwsvMrwXml.pl104
-rw-r--r--src/usr/targeting/common/xmltohb/attribute_types_hb.xml20
-rw-r--r--src/usr/targeting/common/xmltohb/simics_NIMBUS.system.xml623
-rwxr-xr-xsrc/usr/targeting/common/xmltohb/target_types_hb.xml68
-rw-r--r--src/usr/targeting/common/xmltohb/vbu_NIMBUS.system.xml518
-rw-r--r--src/usr/targeting/runtime/rt_targeting.C399
-rw-r--r--src/usr/testcore/makefile5
-rw-r--r--src/usr/testcore/memoize/makefile31
-rw-r--r--src/usr/testcore/memoize/test_memoize.H210
18 files changed, 2689 insertions, 382 deletions
diff --git a/src/include/usr/runtime/customize_attrs_for_payload.H b/src/include/usr/runtime/customize_attrs_for_payload.H
new file mode 100644
index 000000000..a5158f996
--- /dev/null
+++ b/src/include/usr/runtime/customize_attrs_for_payload.H
@@ -0,0 +1,62 @@
+/* IBM_PROLOG_BEGIN_TAG */
+/* This is an automatically generated prolog. */
+/* */
+/* $Source: src/include/usr/runtime/customize_attrs_for_payload.H $ */
+/* */
+/* OpenPOWER HostBoot Project */
+/* */
+/* Contributors Listed Below - COPYRIGHT 2016 */
+/* [+] International Business Machines Corp. */
+/* */
+/* */
+/* Licensed under the Apache License, Version 2.0 (the "License"); */
+/* you may not use this file except in compliance with the License. */
+/* You may obtain a copy of the License at */
+/* */
+/* http://www.apache.org/licenses/LICENSE-2.0 */
+/* */
+/* Unless required by applicable law or agreed to in writing, software */
+/* distributed under the License is distributed on an "AS IS" BASIS, */
+/* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or */
+/* implied. See the License for the specific language governing */
+/* permissions and limitations under the License. */
+/* */
+/* IBM_PROLOG_END_TAG */
+
+#ifndef __RUNTIME_CUST_ATTRS_FOR_PAYLOAD_H
+#define __RUNTIME_CUST_ATTRS_FOR_PAYLOAD_H
+
+/**
+ * @file customize_attrs_for_payload.H
+ * @brief Provides the definition for the payload specific attribute
+ * customization functions
+ */
+
+#include <errl/errlentry.H>
+#include <runtime/rt_targeting.H>
+#include <targeting/common/attributes.H>
+
+namespace RUNTIME
+{
+
+static const TARGETING::ATTR_HBRT_HYP_ID_type HBRT_HYP_ID_UNKNOWN
+ = 0xFFFFFFFFFFFFFFFFULL;
+
+static const RT_TARG::rtChipId_t RT_TYPE_UNKNOWN
+ = 0xFFFFFFFFFFFFFFFFULL;
+
+/**
+ * @brief Populate ATTR_HBRT_HYP_ID attributes for the current payload type,
+ * allowing runtime/host interfaces to reference equivalent targets
+ * @param[in] i_configForPhyp Whether to configure the IDs for PHyp (true), or
+ * all other payload kinds (false)
+ * @return Error log handle
+ * @retval NULL Populated all ATTR_HBRT_HYP_ID attributes successfully
+ * @retval !NULL Failed to populate one or more ATTR_HBRT_HYP_ID attributes
+ */
+errlHndl_t configureHbrtHypIds(bool i_configForPhyp);
+
+
+}; // End namespace RUNTIME
+
+#endif
diff --git a/src/include/usr/runtime/runtime_reasoncodes.H b/src/include/usr/runtime/runtime_reasoncodes.H
index 544a9c88a..ad6427668 100644
--- a/src/include/usr/runtime/runtime_reasoncodes.H
+++ b/src/include/usr/runtime/runtime_reasoncodes.H
@@ -5,7 +5,9 @@
/* */
/* OpenPOWER HostBoot Project */
/* */
-/* COPYRIGHT International Business Machines Corp. 2012,2014 */
+/* Contributors Listed Below - COPYRIGHT 2012,2016 */
+/* [+] International Business Machines Corp. */
+/* */
/* */
/* Licensed under the Apache License, Version 2.0 (the "License"); */
/* you may not use this file except in compliance with the License. */
@@ -47,6 +49,10 @@ namespace RUNTIME
MOD_HDATSERVICE_FINDSPIRA = 0x0F, /** hdatservice.C */
MOD_HDATSERVICE_UPDATE_SECTION_ACTUAL = 0x10, /**< hdatservice.C */
MOD_HDATSERVICE_MAPREGION = 0x11, /**< hdatservice.C */
+
+ // customize_attrs_for_payload.C
+ MOD_CUST_COMP_NON_PHYP_RT_TARGET = 0x12,
+ MOD_CUST_CONF_HBRT_HYP_IDS = 0x13,
};
enum RuntimeReasonCode
@@ -76,6 +82,9 @@ namespace RUNTIME
RC_NO_SPIRA = RUNTIME_COMP_ID | 0x16,
RC_CANNOT_MAP_HDAT = RUNTIME_COMP_ID | 0x17,
RC_NOT_ENOUGH_SPACE = RUNTIME_COMP_ID | 0x18,
+ RT_UNIT_TARGET_NOT_FOUND = RUNTIME_COMP_ID | 0x19,
+ RT_TARGET_TYPE_NOT_SUPPORTED = RUNTIME_COMP_ID | 0x1A,
+ RT_NO_PROC_TARGET = RUNTIME_COMP_ID | 0x1B
};
enum UserDetailsTypes
diff --git a/src/include/util/memoize.H b/src/include/util/memoize.H
new file mode 100644
index 000000000..e1f31c48c
--- /dev/null
+++ b/src/include/util/memoize.H
@@ -0,0 +1,108 @@
+/* IBM_PROLOG_BEGIN_TAG */
+/* This is an automatically generated prolog. */
+/* */
+/* $Source: src/include/util/memoize.H $ */
+/* */
+/* OpenPOWER HostBoot Project */
+/* */
+/* Contributors Listed Below - COPYRIGHT 2016 */
+/* [+] International Business Machines Corp. */
+/* */
+/* */
+/* Licensed under the Apache License, Version 2.0 (the "License"); */
+/* you may not use this file except in compliance with the License. */
+/* You may obtain a copy of the License at */
+/* */
+/* http://www.apache.org/licenses/LICENSE-2.0 */
+/* */
+/* Unless required by applicable law or agreed to in writing, software */
+/* distributed under the License is distributed on an "AS IS" BASIS, */
+/* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or */
+/* implied. See the License for the specific language governing */
+/* permissions and limitations under the License. */
+/* */
+/* IBM_PROLOG_END_TAG */
+
+#ifndef __UTIL_MEMOIZE_H
+#define __UTIL_MEMOIZE_H
+
+#include <errl/errlentry.H>
+#include <map>
+
+namespace Util
+{
+
+namespace Memoize
+{
+
+/**
+ * @brief Wraps a function (which accepts an input/output parameter pair and
+ * returns an error log handle) with a memoizer
+ *
+ * @par Detailed Description:
+ * This template wraps a candidate function with a memoizer, a facility
+ * which caches the result for every unique input. If an input arrives
+ * that already has a cached result, the result is returned without the
+ * overhead of calling the function, thereby increasing performance.
+ * See warning section for caveats.
+ *
+ * @warning: Must only be used if:
+ * - Called only in single-threaded context (cache is not mutex protected)
+ * - All possible inputs are guaranteed to be unique
+ * - For a given input, the result is always the same
+ *
+ * @tparam InputType The memoized function's input type
+ * @tparam OutputType The memoized function's output type
+ * @param[in] i_fn Function pointer referencing the function to memoize
+ * @param[in] i_in Input to the memoized function
+ * @param[out] o_out Output of the memoized function. The memoizer does not
+ * alter the output on failure; Caller should default the value as
+ * appropriate to anticipate that case.
+ * @return Error log indicating success or failure
+ * @retval NULL Result was already computed for the given input and was
+ * returned in the output parameter -otherwise- real function returned
+ * a value that was cached and returned in the output parameter
+ * @retval !NULL Call to memoized function failed. Result was not cached and
+ * the output value remains unchanged
+ * @note: Could be improved to return a lambda function and use
+ * std::function in place of function pointers if std::function was
+ * implemented
+ */
+template < class InputType , class OutputType >
+errlHndl_t memoize(
+ errlHndl_t (*i_fn)(InputType,OutputType&),
+ InputType i_in,
+ OutputType& o_out)
+{
+ errlHndl_t pError = NULL;
+
+ do {
+
+ // If the result of the input is already cached, return it
+ static std::map< InputType, OutputType> cache;
+ if(cache.count(i_in))
+ {
+ o_out = cache[i_in];
+ break;
+ }
+
+ // Otherwise call the real function and assuming no error, cache the result
+ // and return it
+ OutputType out;
+ pError = i_fn(i_in,out);
+ if(!pError)
+ {
+ cache[i_in] = out;
+ o_out = out;
+ }
+
+ } while(0);
+
+ return pError;
+}
+
+}; // End namespace Memoize
+
+}; // End namespace Util
+
+#endif
diff --git a/src/makefile b/src/makefile
index 63e233780..d83f4f9e2 100644
--- a/src/makefile
+++ b/src/makefile
@@ -194,6 +194,7 @@ TESTCASE_MODULES += testibscom
TESTCASE_MODULES += testxscom
TESTCASE_MODULES += testkernel
TESTCASE_MODULES += testtargeting
+TESTCASE_MODULES += testmemoize
#******************************************************************
#KNOWN ISSUES (I might let these run but there is something wrong)
@@ -209,8 +210,7 @@ TESTCASE_MODULES += testscom
#Requires main store memory @TODO RTC: 132577
#TESTCASE_MODULES += $(if $(CONFIG_VPO_COMPILE),,testdump)
-#Need to remove HostServices related code @TODO RTC:132750
-#TESTCASE_MODULES += $(if $(CONFIG_VPO_COMPILE),,testruntime)
+TESTCASE_MODULES += $(if $(CONFIG_VPO_COMPILE),,testruntime)
#@TODO RTC: 137561 Enable this test case when interupt story is complete
#TESTCASE_MODULES += testintr
diff --git a/src/usr/isteps/istep21/call_host_runtime_setup.C b/src/usr/isteps/istep21/call_host_runtime_setup.C
index 1901525bc..55ec5c659 100644
--- a/src/usr/isteps/istep21/call_host_runtime_setup.C
+++ b/src/usr/isteps/istep21/call_host_runtime_setup.C
@@ -33,9 +33,7 @@
#include <vfs/vfs.H>
#include <runtime/runtime.H>
#include <devtree/devtreeif.H>
-
-
-
+#include <runtime/customize_attrs_for_payload.H>
#include <hbotcompid.H>
using namespace ERRORLOG;
@@ -73,6 +71,14 @@ void* call_host_runtime_setup (void *io_pArgs)
}
}
+ // Configure the ATTR_HBRT_HYP_ID attributes so that runtime code and
+ // whichever hypervisor is loaded can reference equivalent targets
+ l_err = RUNTIME::configureHbrtHypIds(TARGETING::is_phyp_load());
+ if(l_err)
+ {
+ break;
+ }
+
// Map the Host Data into the VMM if applicable
l_err = RUNTIME::load_host_data();
if( l_err )
diff --git a/src/usr/runtime/customize_attrs_for_payload.C b/src/usr/runtime/customize_attrs_for_payload.C
new file mode 100644
index 000000000..e1c0ddba2
--- /dev/null
+++ b/src/usr/runtime/customize_attrs_for_payload.C
@@ -0,0 +1,419 @@
+/* IBM_PROLOG_BEGIN_TAG */
+/* This is an automatically generated prolog. */
+/* */
+/* $Source: src/usr/runtime/customize_attrs_for_payload.C $ */
+/* */
+/* OpenPOWER HostBoot Project */
+/* */
+/* Contributors Listed Below - COPYRIGHT 2012,2016 */
+/* [+] International Business Machines Corp. */
+/* */
+/* */
+/* Licensed under the Apache License, Version 2.0 (the "License"); */
+/* you may not use this file except in compliance with the License. */
+/* You may obtain a copy of the License at */
+/* */
+/* http://www.apache.org/licenses/LICENSE-2.0 */
+/* */
+/* Unless required by applicable law or agreed to in writing, software */
+/* distributed under the License is distributed on an "AS IS" BASIS, */
+/* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or */
+/* implied. See the License for the specific language governing */
+/* permissions and limitations under the License. */
+/* */
+/* IBM_PROLOG_END_TAG */
+
+/**
+ * @file customize_attrs_for_payload.C
+ *
+ * @brief Customize attributes in the targeting model that vary based on
+ * payload which are only needed for runtime operation
+ */
+
+//#include <sys/misc.h>
+#include <trace/interface.H>
+#include <errl/errlentry.H>
+#include <targeting/common/target.H>
+#include <targeting/common/targetservice.H>
+#include <targeting/common/utilFilter.H>
+#include <runtime/runtime_reasoncodes.H>
+#include <runtime/runtime.H>
+#include <errl/errlmanager.H>
+#include <runtime/rt_targeting.H>
+#include <arch/pirformat.H>
+#include <targeting/common/util.H>
+#include <errl/errludtarget.H>
+#include <runtime/customize_attrs_for_payload.H>
+
+extern trace_desc_t *g_trac_runtime;
+
+namespace RUNTIME
+{
+
+/**
+ * @brief Create procesor targeting target not found error
+ * @param[in] i_pTarget Targeting target which did not have a processor
+ * targeting target. Must not be NULL (asserts otherwise)
+ * @return Error log handle
+ * @retval !NULL New error log indicating the error
+ */
+errlHndl_t createProcNotFoundError(
+ const TARGETING::Target* const i_pTarget)
+{
+ assert(i_pTarget != NULL);
+
+ errlHndl_t pError = NULL;
+ auto huid = TARGETING::get_huid(i_pTarget);
+ TRACFCOMP(g_trac_runtime, ERR_MRK
+ " No processor targeting target found for targeting target with "
+ "HUID of 0x%08X",
+ huid);
+
+ // Note: the module ID below references the function that exclusively
+ // creates this error
+ /*@
+ * @errortype
+ * @moduleid RUNTIME::MOD_CUST_COMP_NON_PHYP_RT_TARGET
+ * @reasoncode RUNTIME::RT_NO_PROC_TARGET
+ * @userdata1 Input targeting target's HUID
+ * @devdesc No processor targeting target was found for the given
+ * targeting target
+ */
+ pError = new ERRORLOG::ErrlEntry(
+ ERRORLOG::ERRL_SEV_INFORMATIONAL,
+ RUNTIME::MOD_CUST_COMP_NON_PHYP_RT_TARGET,
+ RUNTIME::RT_NO_PROC_TARGET,
+ huid,
+ 0,
+ true);
+
+ ERRORLOG::ErrlUserDetailsTarget(i_pTarget,"Targeting target").
+ addToLog(pError);
+
+ return pError;
+}
+
+/**
+ * @brief Returns the runtime target ID for a given targeting target for all
+ * hypervisors other than PHyp
+ * @param[in] i_pTarget Targeting target, must not be NULL (asserts
+ * otherwise)
+ * @param[out] o_rtTargetId Runtime target ID which maps to the given targeting
+ * target
+ * @return Error log handle
+ * @retval NULL Computed a valid runtime target ID for the given input
+ * targeting target and returned it in the output parameter.
+ * @retval !NULL Failed to compute a runtime target ID for the given input
+ * targeting target. Ignore output parameter.
+ */
+errlHndl_t computeNonPhypRtTarget(
+ const TARGETING::Target* i_pTarget,
+ RT_TARG::rtChipId_t& o_rtTargetId)
+{
+ assert(i_pTarget != NULL);
+
+ errlHndl_t pError = NULL;
+
+ do
+ {
+ if(i_pTarget == TARGETING::MASTER_PROCESSOR_CHIP_TARGET_SENTINEL)
+ {
+ TARGETING::Target* masterProcChip = NULL;
+ TARGETING::targetService().
+ masterProcChipTargetHandle(masterProcChip);
+ i_pTarget = masterProcChip;
+ }
+
+ auto targetingTargetType = i_pTarget->getAttr<TARGETING::ATTR_TYPE>();
+
+ if(targetingTargetType == TARGETING::TYPE_PROC)
+ {
+ uint32_t fabId =
+ i_pTarget->getAttr<TARGETING::ATTR_FABRIC_GROUP_ID>();
+
+ uint32_t procPos =
+ i_pTarget->getAttr<TARGETING::ATTR_FABRIC_CHIP_ID>();
+
+ o_rtTargetId = PIR_t::createChipId( fabId, procPos );
+ }
+ else if( targetingTargetType == TARGETING::TYPE_MEMBUF)
+ {
+ //MEMBUF
+ // 0b1000.0000.0000.0000.0000.0GGG.GCCC.MMMM
+ // where GGGG is group, CCC is chip, MMMM is memory channel
+ //
+ TARGETING::TargetHandleList targetList;
+
+ getParentAffinityTargets(targetList,
+ i_pTarget,
+ TARGETING::CLASS_UNIT,
+ TARGETING::TYPE_MCS);
+
+ if( targetList.empty() )
+ {
+ auto huid = get_huid(i_pTarget);
+ TRACFCOMP(g_trac_runtime, ERR_MRK
+ "No associated MCS targeting target(s) found for MEMBUF "
+ "targeting target with HUID of 0x%08X",
+ huid);
+ /*@
+ * @error
+ * @moduleid RUNTIME::MOD_CUST_COMP_NON_PHYP_RT_TARGET
+ * @reasoncode RUNTIME::RT_UNIT_TARGET_NOT_FOUND
+ * @userdata1 MEMBUF targeting target's HUID
+ * @devdesc No associated MCS targeting target(s) found for
+ * given MEMBUF targeting target
+ */
+ pError = new ERRORLOG::ErrlEntry(
+ ERRORLOG::ERRL_SEV_INFORMATIONAL,
+ RUNTIME::MOD_CUST_COMP_NON_PHYP_RT_TARGET,
+ RUNTIME::RT_UNIT_TARGET_NOT_FOUND,
+ huid,
+ 0,
+ true);
+
+ ERRORLOG::ErrlUserDetailsTarget(i_pTarget,"Targeting Target").
+ addToLog(pError);
+
+ break;
+ }
+
+ auto target = targetList[0];
+ auto pos = target->getAttr<TARGETING::ATTR_CHIP_UNIT>();
+
+ targetList.clear();
+ getParentAffinityTargets(targetList,
+ target,
+ TARGETING::CLASS_CHIP,
+ TARGETING::TYPE_PROC);
+
+ if(targetList.empty())
+ {
+ pError = createProcNotFoundError(target);
+ break;
+ }
+
+ auto procTarget = targetList[0];
+ pError = computeNonPhypRtTarget(procTarget, o_rtTargetId);
+ if(pError)
+ {
+ break;
+ }
+
+ o_rtTargetId = (o_rtTargetId << RT_TARG::MEMBUF_ID_SHIFT);
+ o_rtTargetId += pos;
+ o_rtTargetId |= RT_TARG::MEMBUF_TYPE;
+ }
+ else if(targetingTargetType == TARGETING::TYPE_CORE)
+ {
+ // CORE
+ // 0b0100.0000.0000.0000.0000.GGGG.CCCP.PPPP
+ // GGGG is group, CCC is chip, PPPPP is core
+ auto pos = i_pTarget->getAttr<TARGETING::ATTR_CHIP_UNIT>();
+ const TARGETING::Target* procTarget = getParentChip(i_pTarget);
+ if(procTarget == NULL)
+ {
+ pError = createProcNotFoundError(i_pTarget);
+ break;
+ }
+
+ pError = computeNonPhypRtTarget(procTarget, o_rtTargetId);
+ if(pError)
+ {
+ break;
+ }
+
+ o_rtTargetId = PIR_t::createCoreId(o_rtTargetId,pos);
+ o_rtTargetId |= RT_TARG::CORE_TYPE;
+ }
+ else
+ {
+ auto huid = get_huid(i_pTarget);
+ TRACFCOMP(g_trac_runtime,ERR_MRK
+ "Targeting target type 0x%08X not supported. Cannot "
+ "convert targeting target with HUID of 0x%08X into a "
+ "runtime target ID",
+ targetingTargetType,
+ huid);
+ /*@
+ * @errortype
+ * @moduleid RUNTIME::MOD_CUST_COMP_NON_PHYP_RT_TARGET
+ * @reasoncode RUNTIME::RT_TARGET_TYPE_NOT_SUPPORTED
+ * @userdata1 Targeting target's HUID
+ * @userdata2 Targeting target's type
+ * @devdesc The targeting type of the input targeting target is
+ * not supported by runtime code
+ */
+ pError = new ERRORLOG::ErrlEntry(
+ ERRORLOG::ERRL_SEV_INFORMATIONAL,
+ RUNTIME::MOD_CUST_COMP_NON_PHYP_RT_TARGET,
+ RUNTIME::RT_TARGET_TYPE_NOT_SUPPORTED,
+ huid,
+ targetingTargetType,
+ true);
+
+ ERRORLOG::ErrlUserDetailsTarget(i_pTarget,"Targeting Target").
+ addToLog(pError);
+ }
+
+ } while(0);
+
+ return pError;
+}
+
+/**
+ * @brief Returns the runtime target type for a given targeting target
+ * @param[in] i_pTarget Targeting target, must not be NULL
+ * (asserts otherwise)
+ * @param[out] o_rtType Runtime target type for given targeting target
+ * @return Error log handle
+ * @retval NULL Returned supported runtime target type for the given input
+ * targeting target in the output parameter.
+ * @retval !NULL Failed to determine runtime target type for the
+ * given input targeting target, ignore output parameter.
+ */
+errlHndl_t getRtTypeForTarget(
+ const TARGETING::Target* i_pTarget,
+ RT_TARG::rtChipId_t& o_rtType)
+{
+ assert(i_pTarget != NULL);
+
+ errlHndl_t pError = NULL;
+
+ if(i_pTarget == TARGETING::MASTER_PROCESSOR_CHIP_TARGET_SENTINEL)
+ {
+ TARGETING::Target* masterProcChip = NULL;
+ TARGETING::targetService().
+ masterProcChipTargetHandle(masterProcChip);
+ i_pTarget = masterProcChip;
+ }
+
+ auto found = true;
+ auto rtType = RT_TYPE_UNKNOWN;
+ auto targetingTargetType = i_pTarget->getAttr<TARGETING::ATTR_TYPE>();
+ switch(targetingTargetType)
+ {
+ case TARGETING::TYPE_PROC:
+ rtType = RT_TARG::PROC_TYPE;
+ break;
+ case TARGETING::TYPE_MEMBUF:
+ rtType = RT_TARG::MEMBUF_TYPE;
+ break;
+ case TARGETING::TYPE_CORE:
+ rtType = RT_TARG::CORE_TYPE;
+ break;
+ default:
+ found = false;
+ break;
+ }
+
+ if(!found)
+ {
+ auto huid = get_huid(i_pTarget);
+ TRACFCOMP(g_trac_runtime, ERR_MRK
+ "Input targeting target's type of 0x%08X is not supported. "
+ "HUID: 0x%08X",
+ targetingTargetType,
+ huid);
+ /*@
+ * @errortype
+ * @moduleid RUNTIME::MOD_CUST_CONF_HBRT_HYP_IDS
+ * @reasoncode RUNTIME::RT_TARGET_TYPE_NOT_SUPPORTED
+ * @userdata1 Target's HUID
+ * @userdata2 Target's targeting type
+ * @devdesc Targeting target's type not supported by runtime code
+ */
+ pError = new ERRORLOG::ErrlEntry(
+ ERRORLOG::ERRL_SEV_INFORMATIONAL,
+ RUNTIME::MOD_CUST_CONF_HBRT_HYP_IDS,
+ RUNTIME::RT_TARGET_TYPE_NOT_SUPPORTED,
+ huid,
+ targetingTargetType,
+ true);
+
+ ERRORLOG::ErrlUserDetailsTarget(i_pTarget,"Targeting Target").
+ addToLog(pError);
+ }
+
+ o_rtType = rtType;
+
+ return pError;
+}
+
+errlHndl_t configureHbrtHypIds(const bool i_configForPhyp)
+{
+ TRACDCOMP( g_trac_runtime, ENTER_MRK "configureHbrtHypIds" );
+
+ errlHndl_t pError = NULL;
+
+ TARGETING::PredicateCTM isaProc(
+ TARGETING::CLASS_CHIP, TARGETING::TYPE_PROC);
+ TARGETING::PredicateCTM isaMembuf(
+ TARGETING::CLASS_CHIP, TARGETING::TYPE_MEMBUF);
+ TARGETING::PredicateCTM isaCore(
+ TARGETING::CLASS_UNIT, TARGETING::TYPE_CORE);
+ TARGETING::PredicatePostfixExpr isaProcMembufOrCore;
+ isaProcMembufOrCore.push(&isaProc).push(&isaMembuf).Or()
+ .push(&isaCore).Or();
+ TARGETING::TargetRangeFilter pIt(
+ TARGETING::targetService().begin(),
+ TARGETING::targetService().end(),
+ &isaProcMembufOrCore);
+ for (; pIt; ++pIt)
+ {
+ auto hbrtHypId = HBRT_HYP_ID_UNKNOWN;
+
+ // Phyp is the only special case
+ if(i_configForPhyp)
+ {
+ auto rtType = RT_TYPE_UNKNOWN;
+ pError = getRtTypeForTarget(*pIt,rtType);
+ if(pError)
+ {
+ break;
+ }
+
+ // PHyp only operates on fused cores, so all core IDs
+ // must match that of the parent EX
+ if( (*pIt)->getAttr<TARGETING::ATTR_TYPE>()
+ == TARGETING::TYPE_CORE)
+ {
+ auto type = TARGETING::TYPE_EX;
+ const TARGETING::Target* pEx =
+ TARGETING::getParent(*pIt,type);
+
+ // If this fails, everything is already hosed
+ assert(pEx != NULL);
+
+ hbrtHypId =
+ pEx->getAttr<TARGETING::ATTR_ORDINAL_ID>();
+ }
+ else
+ {
+ hbrtHypId = (*pIt)->getAttr<TARGETING::ATTR_ORDINAL_ID>();
+ }
+
+ hbrtHypId |= rtType;
+ }
+ else
+ {
+ pError = computeNonPhypRtTarget(*pIt,hbrtHypId);
+ if(pError)
+ {
+ break;
+ }
+ }
+
+ (*pIt)->setAttr<TARGETING::ATTR_HBRT_HYP_ID>(hbrtHypId);
+ TRACDCOMP( g_trac_runtime, "configureHbrtHypIds> "
+ "Set ATTR_HBRT_HYP_ID attribute to 0x%016llX on targeting target "
+ "with HUID of 0x%08X",
+ hbrtHypId,TARGETING::get_huid(*pIt));
+ }
+
+ TRACDCOMP( g_trac_runtime, EXIT_MRK "configureHbrtHypIds" );
+
+ return pError;
+}
+
+}; // End namespace RUNTIME
diff --git a/src/usr/runtime/makefile b/src/usr/runtime/makefile
index e8ecca91c..86e2e8e80 100644
--- a/src/usr/runtime/makefile
+++ b/src/usr/runtime/makefile
@@ -5,7 +5,7 @@
#
# OpenPOWER HostBoot Project
#
-# Contributors Listed Below - COPYRIGHT 2012,2015
+# Contributors Listed Below - COPYRIGHT 2012,2016
# [+] International Business Machines Corp.
#
#
@@ -38,6 +38,7 @@ OBJS += hdatservice.o
OBJS += fakepayload.o
OBJS += tce.o
OBJS += errlud_hdat.o
+OBJS += customize_attrs_for_payload.o
SUBDIRS += test.d
diff --git a/src/usr/runtime/test/makefile b/src/usr/runtime/test/makefile
index a0a1c5c5c..bebc21cd2 100644
--- a/src/usr/runtime/test/makefile
+++ b/src/usr/runtime/test/makefile
@@ -5,7 +5,7 @@
#
# OpenPOWER HostBoot Project
#
-# Contributors Listed Below - COPYRIGHT 2012,2015
+# Contributors Listed Below - COPYRIGHT 2012,2016
# [+] International Business Machines Corp.
#
#
@@ -25,8 +25,18 @@
ROOTPATH = ../../../..
MODULE = testruntime
-TESTS += hdatservicetest.H
-TESTS += tcetest.H
+#@TODO RTC 132750
+#TESTS += hdatservicetest.H
+#TESTS += tcetest.H
+TESTS += test_customize_attrs_for_payload.H
+
+# The testcase depends on the following file, but it is typically only compiled
+# into the runtime code. Pull it into just the test module so we can exercise
+# it
+OBJS += rt_targeting.o
+
+# Use a vpath to give access to the rt_targeting.C code
+vpath %.C ../../targeting/runtime
#@TODO RTC:132750
#TESTS += runtimeattrtest.H
diff --git a/src/usr/runtime/test/test_customize_attrs_for_payload.H b/src/usr/runtime/test/test_customize_attrs_for_payload.H
new file mode 100644
index 000000000..130d3d2d9
--- /dev/null
+++ b/src/usr/runtime/test/test_customize_attrs_for_payload.H
@@ -0,0 +1,458 @@
+/* IBM_PROLOG_BEGIN_TAG */
+/* This is an automatically generated prolog. */
+/* */
+/* $Source: src/usr/runtime/test/test_customize_attrs_for_payload.H $ */
+/* */
+/* OpenPOWER HostBoot Project */
+/* */
+/* Contributors Listed Below - COPYRIGHT 2016 */
+/* [+] International Business Machines Corp. */
+/* */
+/* */
+/* Licensed under the Apache License, Version 2.0 (the "License"); */
+/* you may not use this file except in compliance with the License. */
+/* You may obtain a copy of the License at */
+/* */
+/* http://www.apache.org/licenses/LICENSE-2.0 */
+/* */
+/* Unless required by applicable law or agreed to in writing, software */
+/* distributed under the License is distributed on an "AS IS" BASIS, */
+/* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or */
+/* implied. See the License for the specific language governing */
+/* permissions and limitations under the License. */
+/* */
+/* IBM_PROLOG_END_TAG */
+
+#ifndef __TEST_CUST_ATTRS_FOR_PAYLOAD_H
+#define __TEST_CUST_ATTRS_FOR_PAYLOAD_H
+
+/**
+ * @file test_customize_attrs_for_payload.H
+ *
+ */
+
+#include <cxxtest/TestSuite.H>
+
+#include <targeting/common/target.H>
+#include <targeting/common/targetservice.H>
+#include <targeting/common/utilFilter.H>
+#include <attributeenums.H>
+#include <errl/errlmanager.H>
+#include <runtime/customize_attrs_for_payload.H>
+#include <runtime/rt_targeting.H>
+#include <targeting/common/attributes.H>
+#include <runtime/runtime_reasoncodes.H>
+#include <map>
+
+namespace RT_TARG
+{
+ // Need to use the non-memoized version for some parts of the test
+ // to avoid cacheing results. We don't want this prototype generally
+ // exported so declaring it here
+ errlHndl_t _getHbTarget(
+ const rtChipId_t i_rtTargetId,
+ TARGETING::Target*& o_target);
+};
+
+class CustomizeAttrsForPayloadTest: public CxxTest::TestSuite
+{
+ public:
+
+ CustomizeAttrsForPayloadTest() :
+ iv_configForPhyp(false),
+ iv_pSys(NULL)
+ {
+ }
+
+ void testGetHbTargetCommon(void)
+ {
+ TS_TRACE( ENTER_MRK
+ "testGetHbTargetCommon> start" );
+
+ errlHndl_t pError = NULL;
+
+ do {
+
+ TARGETING::Target* pTarget = NULL;
+ auto rtTargetId = RUNTIME::HBRT_HYP_ID_UNKNOWN;
+
+ pError = RT_TARG::getHbTarget(
+ rtTargetId,
+ pTarget);
+ if(pError==NULL)
+ {
+ TS_FAIL("testGetHbTargetCommon> call to getHbTarget did not "
+ "return error as expected");
+ break;
+ }
+
+ delete pError;
+ pError=NULL;
+
+ if(pTarget != NULL)
+ {
+ TS_FAIL("testGetHbTargetCommon> call to getHbTarget returned "
+ "error but output is not NULL");
+ break;
+ }
+
+ } while(0);
+
+ if(pError)
+ {
+ errlCommit(pError,RUNTIME_COMP_ID);
+ }
+
+ TS_TRACE( EXIT_MRK
+ "testGetHbTargetCommon> finish" );
+ }
+
+ void testGetRtTargetCommon(void)
+ {
+ TS_TRACE( ENTER_MRK
+ "testGetRtTargetCommon> start" );
+
+ errlHndl_t pError = NULL;
+
+ do {
+
+ TARGETING::Target* pProc = NULL;
+ pError = TARGETING::targetService().queryMasterProcChipTargetHandle(
+ pProc);
+ if(pError)
+ {
+ TS_FAIL("testGetRtTargetCommon> failed to get master proc chip ");
+ break;
+ }
+
+ TARGETING::PredicateCTM isaPhb(
+ TARGETING::CLASS_UNIT, TARGETING::TYPE_PHB);
+
+ TARGETING::TargetHandleList phbs;
+ TARGETING::targetService().getAssociated(
+ phbs,
+ pProc,
+ TARGETING::TargetService::CHILD,
+ TARGETING::TargetService::ALL,
+ &isaPhb);
+ if(phbs.empty())
+ {
+ TS_FAIL("testGetRtTargetCommon> failed to get any phb unit ");
+ break;
+ }
+
+ TARGETING::Target* pTarget = phbs[0];
+ auto rtTargetId = RUNTIME::HBRT_HYP_ID_UNKNOWN;
+
+ pError = RT_TARG::getRtTarget(
+ pTarget,
+ rtTargetId);
+ if(pError==NULL)
+ {
+ TS_FAIL("testGetRtTargetCommon> call to getRtTarget did not "
+ "return error as expected");
+ break;
+ }
+
+ delete pError;
+ pError=NULL;
+
+ if(rtTargetId != RUNTIME::HBRT_HYP_ID_UNKNOWN)
+ {
+ TS_FAIL("testGetRtTargetCommon> call to getRtTarget returned "
+ "error but did not return the unknown value");
+ break;
+ }
+
+ } while(0);
+
+ if(pError)
+ {
+ errlCommit(pError,RUNTIME_COMP_ID);
+ }
+
+ TS_TRACE( EXIT_MRK
+ "testGetRtTargetCommon> finish" );
+ }
+
+ void testGetRtAndHbTargetPhyp(void)
+ {
+ TS_TRACE( ENTER_MRK
+ "testGetRtAndHbTargetPhyp> start" );
+ validateGetRtAndHbTarget(true);
+ TS_TRACE( EXIT_MRK
+ "testGetRtAndHbTargetPhyp> finish" );
+ }
+
+ void testGetRtAndHbTargetNonPhyp(void)
+ {
+ TS_TRACE( ENTER_MRK
+ "testGetRtAndHbTargetNonPhyp> start" );
+ validateGetRtAndHbTarget(false);
+ TS_TRACE( EXIT_MRK
+ "testGetRtAndHbTargetNonPhyp> finish" );
+ }
+
+ private:
+
+ void validateGetRtAndHbTarget(const bool i_configForPhyp)
+ {
+ TS_TRACE( ENTER_MRK
+ "validateGetRtAndHbTarget> start (i_configForPhyp = %d)",
+ i_configForPhyp );
+
+ errlHndl_t pError = NULL;
+
+ do {
+
+ pError = overrideState(i_configForPhyp);
+ if(pError)
+ {
+ TS_FAIL("validateGetRtAndHbTarget> failed to set "
+ "ATTR_HBRT_HYP_IDs");
+ break;
+ }
+
+ do {
+
+ std::map< RT_TARG::rtChipId_t,size_t > uniqueRtTargetIds;
+
+ const size_t FOUND_ONE_ID = 1;
+
+ const TARGETING::TYPE targetingTargetTypes[] =
+ {TARGETING::TYPE_CORE, TARGETING::TYPE_PROC,
+ TARGETING::TYPE_MEMBUF};
+
+ auto failed = false;
+ for(TARGETING::TYPE targetingTargetType : targetingTargetTypes)
+ {
+ failed = true;
+ TARGETING::TargetHandleList targets;
+ TARGETING::getChildAffinityTargetsByState(
+ targets,
+ iv_pSys,
+ TARGETING::CLASS_NA,
+ targetingTargetType,
+ TARGETING::UTIL_FILTER_ALL);
+ if(targets.empty())
+ {
+ TS_TRACE("validateGetRtAndHbTarget> No targeting targets of "
+ "type 0x%08X found in the blueprint, skipping.",
+ targetingTargetType);
+ failed = false;
+ continue;
+ }
+
+ for(TARGETING::TargetHandleList::const_iterator pIt =
+ targets.begin();
+ pIt != targets.end();
+ ++pIt)
+ {
+ failed = true;
+ TARGETING::Target* pTarget = (*pIt);
+
+ auto rtTargetId = RUNTIME::HBRT_HYP_ID_UNKNOWN;
+ pError = RT_TARG::getRtTarget(
+ pTarget,
+ rtTargetId);
+ if(pError!=NULL)
+ {
+ TS_FAIL("validateGetRtAndHbTarget> Failed call to "
+ "getRtTarget for targeting target with HUID of 0x%08X",
+ TARGETING::get_huid(pTarget));
+ break;
+ }
+
+ if(rtTargetId == RUNTIME::HBRT_HYP_ID_UNKNOWN)
+ {
+ TS_FAIL("validateGetRtAndHbTarget> call to getRtTarget "
+ "returned unchanged runtime target ID");
+ break;
+ }
+
+ // Every runtime target ID better be unique. Exception: for
+ // PHyp payloads which operate on fused cores, there can be
+ // at most 2 cores having same ID
+ auto alreadyPresent = uniqueRtTargetIds.count(rtTargetId);
+ if(alreadyPresent)
+ {
+ if( (i_configForPhyp)
+ && (targetingTargetType==TARGETING::TYPE_CORE)
+ && (uniqueRtTargetIds[rtTargetId] <= FOUND_ONE_ID))
+ {
+ uniqueRtTargetIds[rtTargetId]++;
+ }
+ else
+ {
+ TS_FAIL("Already saw runtime target ID of 0x%016llX",
+ rtTargetId);
+ break;
+ }
+ }
+ else
+ {
+ uniqueRtTargetIds[rtTargetId]=FOUND_ONE_ID;
+ }
+
+ auto actualRtTargetId =
+ pTarget->getAttr<TARGETING::ATTR_HBRT_HYP_ID>();
+ if(actualRtTargetId != rtTargetId)
+ {
+ TS_FAIL("validateGetRtAndHbTarget> call to getRtTarget "
+ "returned runtime target ID of 0x%016llX which does "
+ "not match the targeting target's (HUID 0x%08x) "
+ "ATTR_HBRT_HYP_ID attribute value of 0x%016llX",
+ actualRtTargetId,TARGETING::get_huid(pTarget),
+ rtTargetId);
+ break;
+ }
+
+ // Call to other interface should return original target.
+ TARGETING::Target* pActualTarget = NULL;
+ // Need to bypass memoize to ensure results are not cached
+ pError = RT_TARG::_getHbTarget(
+ actualRtTargetId,
+ pActualTarget);
+ if(pError!=NULL)
+ {
+ TS_FAIL("validateGetRtAndHbTarget> Failed call to "
+ "_getHbTarget for runtime target ID of 0x%016llX",
+ actualRtTargetId);
+ break;
+ }
+
+ if(pActualTarget == NULL)
+ {
+ TS_FAIL("validateGetRtAndHbTarget> Call to "
+ "_getHbTarget returned NULL target for runtime target "
+ "ID of 0x%016llX",
+ actualRtTargetId);
+ break;
+ }
+
+ if(pActualTarget != pTarget)
+ {
+ // Since Phyp deals with fused cores, and all cores per
+ // EX have the same ID, it's possible to get a different
+ // target back than the original target. If that is the
+ // case, verify each core resolves to the same EX parent
+ auto realError = true;
+ if( (i_configForPhyp)
+ && (targetingTargetType==TARGETING::TYPE_CORE))
+ {
+ auto exType = TARGETING::TYPE_EX;
+
+ const TARGETING::Target* pOrigEx =
+ TARGETING::getParent(pTarget,exType);
+ assert(pOrigEx != NULL);
+ const TARGETING::Target* pActualEx =
+ TARGETING::getParent(pActualTarget,exType);
+ assert(pActualEx != NULL);
+
+ if(pOrigEx == pActualEx)
+ {
+ TS_TRACE("Returned target (HUID 0x%08X) different "
+ "from original target (HUID 0x%08X), but this "
+ "is expected for PHyp payloads when all cores "
+ "under an ex have same ID",
+ TARGETING::get_huid(pActualTarget),
+ TARGETING::get_huid(pTarget));
+ realError = false;
+ }
+ }
+
+ if(realError)
+ {
+ TS_FAIL("validateGetRtAndHbTarget> _getHbTarget "
+ "returned successfully for runtime target ID of "
+ "0x%016llX but returned targeting target (HUID of "
+ "0x%08X) was not the original (HUID of 0x%08X)",
+ actualRtTargetId,get_huid(pActualTarget),
+ get_huid(pTarget));
+ break;
+ }
+ }
+
+ failed = false;
+ }
+
+ if(pError || failed)
+ {
+ break;
+ }
+
+ failed = false;
+ }
+
+ if(pError || failed)
+ {
+ break;
+ }
+
+ } while(0);
+
+ restoreState(pError);
+
+ } while(0);
+
+ if(pError)
+ {
+ errlCommit(pError,RUNTIME_COMP_ID);
+ }
+
+ TS_TRACE( EXIT_MRK
+ "validateGetRtAndHbTarget> finish" );
+ }
+
+ bool iv_configForPhyp;
+ TARGETING::Target* iv_pSys;
+
+ errlHndl_t overrideState(const bool i_configForPhyp)
+ {
+ errlHndl_t pError = NULL;
+
+ do {
+
+ TARGETING::Target* pSys = NULL;
+ TARGETING::targetService().getTopLevelTarget(pSys);
+ assert(pSys)
+ iv_pSys = pSys;
+ iv_configForPhyp = TARGETING::is_phyp_load();
+
+ pError = RUNTIME::configureHbrtHypIds(i_configForPhyp);
+ if(pError)
+ {
+ TS_FAIL("overrideState> failed to configure ATTR_HBRT_HYP_IDs. "
+ "i_configForPhyp = %d",i_configForPhyp);
+ break;
+ }
+
+ } while(0);
+
+ return pError;
+ }
+
+ void restoreState(errlHndl_t& io_pError)
+ {
+ iv_pSys = NULL;
+ errlHndl_t pError = RUNTIME::configureHbrtHypIds(iv_configForPhyp);
+ if(pError)
+ {
+ TS_FAIL("restoreState> failed to reconfigure ATTR_HBRT_HYP_IDs. "
+ "iv_configForPhyp = %d",iv_configForPhyp);
+ if(!io_pError)
+ {
+ io_pError=pError;
+ pError = NULL;
+ }
+ else
+ {
+ errlCommit(pError,RUNTIME_COMP_ID);
+ }
+ }
+ }
+
+};
+
+#endif
+
diff --git a/src/usr/targeting/common/genHwsvMrwXml.pl b/src/usr/targeting/common/genHwsvMrwXml.pl
index fe9970541..4c56ebcb9 100755
--- a/src/usr/targeting/common/genHwsvMrwXml.pl
+++ b/src/usr/targeting/common/genHwsvMrwXml.pl
@@ -2408,6 +2408,10 @@ sub generate_sys
<id>AFFINITY_PATH</id>
<default>affinity:sys-$sys</default>
</attribute>
+ <attribute>
+ <id>ORDINAL_ID</id>
+ <default>0</default>
+ </attribute>
<compileAttribute>
<id>INSTANCE_PATH</id>
<default>instance:sys-$sys</default>
@@ -2845,6 +2849,10 @@ sub generate_system_node
<id>AFFINITY_PATH</id>
<default>affinity:sys-$sys/node-$node</default>
</attribute>
+ <attribute>
+ <id>ORDINAL_ID</id>
+ <default>$node</default>
+ </attribute>
<compileAttribute>
<id>INSTANCE_PATH</id>
<default>instance:$computeNodeList{$node}->{'instancePath'}</default>
@@ -2979,6 +2987,10 @@ sub generate_proc
<id>AFFINITY_PATH</id>
<default>affinity:sys-$sys/node-$node/proc-$proc</default>
</attribute>
+ <attribute>
+ <id>ORDINAL_ID</id>
+ <default>$ordinalId</default>
+ </attribute>
<compileAttribute>
<id>INSTANCE_PATH</id>
<default>instance:$ipath</default>
@@ -3479,6 +3491,10 @@ sub generate_ex
<id>AFFINITY_PATH</id>
<default>affinity:sys-$sys/node-$node/proc-$proc/eq-$eq/ex-$ex</default>
</attribute>
+ <attribute>
+ <id>ORDINAL_ID</id>
+ <default>$ordinalId</default>
+ </attribute>
<compileAttribute>
<id>INSTANCE_PATH</id>
<default>instance:$ipath</default>
@@ -3610,6 +3626,10 @@ sub generate_core
<id>AFFINITY_PATH</id>
<default>affinity:sys-$sys/node-$node/proc-$proc/eq-$eq/ex-$ex/core-$core</default>
</attribute>
+ <attribute>
+ <id>ORDINAL_ID</id>
+ <default>$ordinalId</default>
+ </attribute>
<compileAttribute>
<id>INSTANCE_PATH</id>
<default>instance:$ipath</default>
@@ -3693,6 +3713,10 @@ sub generate_eq
<id>AFFINITY_PATH</id>
<default>affinity:sys-$sys/node-$node/proc-$proc/eq-$eq</default>
</attribute>
+ <attribute>
+ <id>ORDINAL_ID</id>
+ <default>$ordinalId</default>
+ </attribute>
<compileAttribute>
<id>INSTANCE_PATH</id>
<default>instance:$ipath</default>
@@ -3772,6 +3796,10 @@ sub generate_mcs
<id>AFFINITY_PATH</id>
<default>affinity:sys-$sys/node-$node/proc-$proc/mcs-$mcs</default>
</attribute>
+ <attribute>
+ <id>ORDINAL_ID</id>
+ <default>$ordinalId</default>
+ </attribute>
<compileAttribute>
<id>INSTANCE_PATH</id>
<default>instance:$ipath</default>
@@ -3838,6 +3866,10 @@ sub generate_mca
<id>AFFINITY_PATH</id>
<default>affinity:sys-$sys/node-$node/proc-$proc/mcs-$mcs/mca-$mca</default>
</attribute>
+ <attribute>
+ <id>ORDINAL_ID</id>
+ <default>$ordinalId</default>
+ </attribute>
<compileAttribute>
<id>INSTANCE_PATH</id>
<default>instance:$ipath</default>
@@ -3892,6 +3924,10 @@ sub generate_mcbist
<id>AFFINITY_PATH</id>
<default>affinity:sys-$sys/node-$node/proc-$proc/mcbist-$mcbist</default>
</attribute>
+ <attribute>
+ <id>ORDINAL_ID</id>
+ <default>$ordinalId</default>
+ </attribute>
<compileAttribute>
<id>INSTANCE_PATH</id>
<default>instance:$ipath</default>
@@ -3946,6 +3982,10 @@ sub generate_pec
<id>AFFINITY_PATH</id>
<default>affinity:sys-$sys/node-$node/proc-$proc/pec-$pec</default>
</attribute>
+ <attribute>
+ <id>ORDINAL_ID</id>
+ <default>$ordinalId</default>
+ </attribute>
<compileAttribute>
<id>INSTANCE_PATH</id>
<default>instance:$ipath</default>
@@ -4013,6 +4053,10 @@ sub generate_phb_chiplet
<id>AFFINITY_PATH</id>
<default>affinity:sys-$sys/node-$node/proc-$proc/pec-$pec/phb-$phb</default>
</attribute>
+ <attribute>
+ <id>ORDINAL_ID</id>
+ <default>$ordinalId</default>
+ </attribute>
<compileAttribute>
<id>INSTANCE_PATH</id>
<default>instance:$ipath</default>
@@ -4067,6 +4111,10 @@ sub generate_ppe
<id>AFFINITY_PATH</id>
<default>affinity:sys-$sys/node-$node/proc-$proc/ppe-$ppe</default>
</attribute>
+ <attribute>
+ <id>ORDINAL_ID</id>
+ <default>$ordinalId</default>
+ </attribute>
<compileAttribute>
<id>INSTANCE_PATH</id>
<default>instance:$ipath</default>
@@ -4120,6 +4168,10 @@ sub generate_obus
<id>AFFINITY_PATH</id>
<default>affinity:sys-$sys/node-$node/proc-$proc/obus-$obus</default>
</attribute>
+ <attribute>
+ <id>ORDINAL_ID</id>
+ <default>$ordinalId</default>
+ </attribute>
<compileAttribute>
<id>INSTANCE_PATH</id>
<default>instance:$ipath</default>
@@ -4174,6 +4226,10 @@ sub generate_xbus
<id>AFFINITY_PATH</id>
<default>affinity:sys-$sys/node-$node/proc-$proc/xbus-$xbus</default>
</attribute>
+ <attribute>
+ <id>ORDINAL_ID</id>
+ <default>$ordinalId</default>
+ </attribute>
<compileAttribute>
<id>INSTANCE_PATH</id>
<default>instance:$ipath</default>
@@ -4228,6 +4284,10 @@ sub generate_perv
<id>AFFINITY_PATH</id>
<default>affinity:sys-$sys/node-$node/proc-$proc/perv-$perv</default>
</attribute>
+ <attribute>
+ <id>ORDINAL_ID</id>
+ <default>$ordinalId</default>
+ </attribute>
<compileAttribute>
<id>INSTANCE_PATH</id>
<default>instance:$ipath</default>
@@ -4280,6 +4340,10 @@ sub generate_capp
<id>AFFINITY_PATH</id>
<default>affinity:sys-$sys/node-$node/proc-$proc/capp-$capp</default>
</attribute>
+ <attribute>
+ <id>ORDINAL_ID</id>
+ <default>$ordinalId</default>
+ </attribute>
<compileAttribute>
<id>INSTANCE_PATH</id>
<default>instance:$ipath</default>
@@ -4333,6 +4397,10 @@ sub generate_sbe
<id>AFFINITY_PATH</id>
<default>affinity:sys-$sys/node-$node/proc-$proc/sbe-$sbe</default>
</attribute>
+ <attribute>
+ <id>ORDINAL_ID</id>
+ <default>$ordinalId</default>
+ </attribute>
<compileAttribute>
<id>INSTANCE_PATH</id>
<default>instance:$ipath</default>
@@ -4436,6 +4504,10 @@ sub generate_a_pcie
<id>AFFINITY_PATH</id>
<default>affinity:sys-$sys/node-$node/proc-$proc/pci-$phb</default>
</attribute>
+ <attribute>
+ <id>ORDINAL_ID</id>
+ <default>$ordinalId</default>
+ </attribute>
<compileAttribute>
<id>INSTANCE_PATH</id>
<default>instance:$phbList{$node}{$proc}{$phb}->{'phbIpath'}</default>
@@ -4522,6 +4594,10 @@ sub generate_nx
<id>AFFINITY_PATH</id>
<default>affinity:sys-$sys/node-$node/proc-$proc/nx-0</default>
</attribute>
+ <attribute>
+ <id>ORDINAL_ID</id>
+ <default>$ordinalId</default>
+ </attribute>
<compileAttribute>
<id>INSTANCE_PATH</id>
<default>instance:$ipath</default>
@@ -4572,6 +4648,10 @@ sub generate_pore
<id>AFFINITY_PATH</id>
<default>affinity:sys-$sys/node-$node/proc-$proc/pore-0</default>
</attribute>
+ <attribute>
+ <id>ORDINAL_ID</id>
+ <default>$ordinalId</default>
+ </attribute>
<compileAttribute>
<id>INSTANCE_PATH</id>
<default>instance:$ipath</default>
@@ -4697,6 +4777,10 @@ sub generate_centaur
<default>affinity:sys-$sys/node-$node/proc-$proc/mcs-$mcs/"
. "membuf-$ctaur</default>
</attribute>
+ <attribute>
+ <id>ORDINAL_ID</id>
+ <default>$ordinalId</default>
+ </attribute>
<compileAttribute>
<id>INSTANCE_PATH</id>
<default>instance:$ipath</default>
@@ -4926,6 +5010,10 @@ sub generate_mba
<default>affinity:sys-$sys/node-$node/proc-$proc/mcs-$mcs/"
. "membuf-$ctaur/mba-$mba</default>
</attribute>
+ <attribute>
+ <id>ORDINAL_ID</id>
+ <default>$ordinalId</default>
+ </attribute>
<compileAttribute>
<id>INSTANCE_PATH</id>
<default>instance:$ipath</default>
@@ -4969,6 +5057,10 @@ sub generate_l4
. "membuf-$ctaur/l4-$l4</default>
</attribute>
<attribute>
+ <id>ORDINAL_ID</id>
+ <default>$ordinalId</default>
+ </attribute>
+ <attribute>
<id>MRU_ID</id>
<default>$mruData</default>
</attribute>
@@ -5054,6 +5146,10 @@ sub generate_is_dimm
<default>affinity:sys-$sys/node-$node/proc-$proc/mcs-$mcs/"
. "mca-$mca/dimm-$dimm</default>
</attribute>
+ <attribute>
+ <id>ORDINAL_ID</id>
+ <default>$dimm</default>
+ </attribute>
<compileAttribute>
<id>INSTANCE_PATH</id>
<default>$ipath</default>
@@ -5224,6 +5320,10 @@ sub generate_dimm
<default>affinity:sys-$sys/node-$node/proc-$proc/mcs-$mcs/"
. "membuf-$pos/mba-$x/dimm-$zz</default>
</attribute>
+ <attribute>
+ <id>ORDINAL_ID</id>
+ <default>$ordinalId</default>
+ </attribute>
<compileAttribute>
<id>INSTANCE_PATH</id>
<default>$logicalDimmInstancePath</default>
@@ -5454,6 +5554,10 @@ sub generate_occ
<id>AFFINITY_PATH</id>
<default>affinity:sys-$sys/node-$node/proc-$proc/occ-0</default>
</attribute>
+ <attribute>
+ <id>ORDINAL_ID</id>
+ <default>$ordinalId</default>
+ </attribute>
<compileAttribute>
<id>INSTANCE_PATH</id>
<default>instance:$occList{$node}{$proc}->{'instancePath'}</default>
diff --git a/src/usr/targeting/common/xmltohb/attribute_types_hb.xml b/src/usr/targeting/common/xmltohb/attribute_types_hb.xml
index 21067818a..df81d962c 100644
--- a/src/usr/targeting/common/xmltohb/attribute_types_hb.xml
+++ b/src/usr/targeting/common/xmltohb/attribute_types_hb.xml
@@ -1574,6 +1574,26 @@ ID for the sensor number returned with the elog. -->
<hbOnly/>
</attribute>
+<!-- TODO RTC 122856 When support for HB only volatile attributes with non-zero
+ default is implemented, update default value to match the description,
+ Until that happens, code must set the appropriate default if needed. -->
+<attribute>
+ <id>HBRT_HYP_ID</id>
+ <description>
+ Effective ID used by the hypervisor to specify a given target. A value
+ of 0xFFFFFFFFFFFFFFFF means invalid/unknown.
+ </description>
+ <simpleType>
+ <uint64_t>
+ <default>0</default>
+ </uint64_t>
+ </simpleType>
+ <persistency>volatile-zeroed</persistency>
+ <readable/>
+ <writeable/>
+ <hbOnly/>
+</attribute>
+
<attribute>
<id>WOF_REGULATOR_EFFICIENCIES</id>
<description>
diff --git a/src/usr/targeting/common/xmltohb/simics_NIMBUS.system.xml b/src/usr/targeting/common/xmltohb/simics_NIMBUS.system.xml
index 3c3dd541f..cee3b87bd 100644
--- a/src/usr/targeting/common/xmltohb/simics_NIMBUS.system.xml
+++ b/src/usr/targeting/common/xmltohb/simics_NIMBUS.system.xml
@@ -69,6 +69,10 @@
<default>affinity:sys-0</default>
</attribute>
<attribute>
+ <id>ORDINAL_ID</id>
+ <default>0</default>
+ </attribute>
+ <attribute>
<id>EXECUTION_PLATFORM</id>
<default>1</default>
</attribute>
@@ -124,6 +128,10 @@
<id>AFFINITY_PATH</id>
<default>affinity:sys-0/node-0</default>
</attribute>
+ <attribute>
+ <id>ORDINAL_ID</id>
+ <default>0</default>
+ </attribute>
</targetInstance>
<!-- Nimbus n0p0 processor chip -->
@@ -149,6 +157,10 @@
<default>affinity:sys-0/node-0/proc-0</default>
</attribute>
<attribute>
+ <id>ORDINAL_ID</id>
+ <default>0</default>
+ </attribute>
+ <attribute>
<id>FRU_ID</id>
<default>1</default>
</attribute>
@@ -228,6 +240,10 @@
<default>affinity:sys-0/node-0/proc-0/eq-0</default>
</attribute>
<attribute>
+ <id>ORDINAL_ID</id>
+ <default>0</default>
+ </attribute>
+ <attribute>
<id>CHIP_UNIT</id>
<default>0</default>
</attribute>
@@ -250,6 +266,10 @@
<default>affinity:sys-0/node-0/proc-0/eq-1</default>
</attribute>
<attribute>
+ <id>ORDINAL_ID</id>
+ <default>1</default>
+ </attribute>
+ <attribute>
<id>CHIP_UNIT</id>
<default>1</default>
</attribute>
@@ -272,6 +292,10 @@
<default>affinity:sys-0/node-0/proc-0/eq-2</default>
</attribute>
<attribute>
+ <id>ORDINAL_ID</id>
+ <default>2</default>
+ </attribute>
+ <attribute>
<id>CHIP_UNIT</id>
<default>2</default>
</attribute>
@@ -294,6 +318,10 @@
<default>affinity:sys-0/node-0/proc-0/eq-3</default>
</attribute>
<attribute>
+ <id>ORDINAL_ID</id>
+ <default>3</default>
+ </attribute>
+ <attribute>
<id>CHIP_UNIT</id>
<default>3</default>
</attribute>
@@ -316,6 +344,10 @@
<default>affinity:sys-0/node-0/proc-0/eq-4</default>
</attribute>
<attribute>
+ <id>ORDINAL_ID</id>
+ <default>4</default>
+ </attribute>
+ <attribute>
<id>CHIP_UNIT</id>
<default>4</default>
</attribute>
@@ -338,6 +370,10 @@
<default>affinity:sys-0/node-0/proc-0/eq-5</default>
</attribute>
<attribute>
+ <id>ORDINAL_ID</id>
+ <default>5</default>
+ </attribute>
+ <attribute>
<id>CHIP_UNIT</id>
<default>5</default>
</attribute>
@@ -361,6 +397,10 @@
<default>affinity:sys-0/node-0/proc-0/eq-0/ex-0</default>
</attribute>
<attribute>
+ <id>ORDINAL_ID</id>
+ <default>0</default>
+ </attribute>
+ <attribute>
<id>CHIP_UNIT</id>
<default>0</default>
</attribute>
@@ -379,6 +419,10 @@
<default>affinity:sys-0/node-0/proc-0/eq-0/ex-1</default>
</attribute>
<attribute>
+ <id>ORDINAL_ID</id>
+ <default>1</default>
+ </attribute>
+ <attribute>
<id>CHIP_UNIT</id>
<default>1</default>
</attribute>
@@ -398,6 +442,10 @@
<default>affinity:sys-0/node-0/proc-0/eq-1/ex-0</default>
</attribute>
<attribute>
+ <id>ORDINAL_ID</id>
+ <default>2</default>
+ </attribute>
+ <attribute>
<id>CHIP_UNIT</id>
<default>2</default>
</attribute>
@@ -416,6 +464,10 @@
<default>affinity:sys-0/node-0/proc-0/eq-1/ex-1</default>
</attribute>
<attribute>
+ <id>ORDINAL_ID</id>
+ <default>3</default>
+ </attribute>
+ <attribute>
<id>CHIP_UNIT</id>
<default>3</default>
</attribute>
@@ -435,6 +487,10 @@
<default>affinity:sys-0/node-0/proc-0/eq-2/ex-0</default>
</attribute>
<attribute>
+ <id>ORDINAL_ID</id>
+ <default>4</default>
+ </attribute>
+ <attribute>
<id>CHIP_UNIT</id>
<default>4</default>
</attribute>
@@ -453,6 +509,10 @@
<default>affinity:sys-0/node-0/proc-0/eq-2/ex-1</default>
</attribute>
<attribute>
+ <id>ORDINAL_ID</id>
+ <default>5</default>
+ </attribute>
+ <attribute>
<id>CHIP_UNIT</id>
<default>5</default>
</attribute>
@@ -472,6 +532,10 @@
<default>affinity:sys-0/node-0/proc-0/eq-3/ex-0</default>
</attribute>
<attribute>
+ <id>ORDINAL_ID</id>
+ <default>6</default>
+ </attribute>
+ <attribute>
<id>CHIP_UNIT</id>
<default>6</default>
</attribute>
@@ -490,6 +554,10 @@
<default>affinity:sys-0/node-0/proc-0/eq-3/ex-1</default>
</attribute>
<attribute>
+ <id>ORDINAL_ID</id>
+ <default>7</default>
+ </attribute>
+ <attribute>
<id>CHIP_UNIT</id>
<default>7</default>
</attribute>
@@ -509,6 +577,10 @@
<default>affinity:sys-0/node-0/proc-0/eq-4/ex-0</default>
</attribute>
<attribute>
+ <id>ORDINAL_ID</id>
+ <default>8</default>
+ </attribute>
+ <attribute>
<id>CHIP_UNIT</id>
<default>8</default>
</attribute>
@@ -527,6 +599,10 @@
<default>affinity:sys-0/node-0/proc-0/eq-4/ex-1</default>
</attribute>
<attribute>
+ <id>ORDINAL_ID</id>
+ <default>9</default>
+ </attribute>
+ <attribute>
<id>CHIP_UNIT</id>
<default>9</default>
</attribute>
@@ -546,6 +622,10 @@
<default>affinity:sys-0/node-0/proc-0/eq-5/ex-0</default>
</attribute>
<attribute>
+ <id>ORDINAL_ID</id>
+ <default>10</default>
+ </attribute>
+ <attribute>
<id>CHIP_UNIT</id>
<default>10</default>
</attribute>
@@ -564,6 +644,10 @@
<default>affinity:sys-0/node-0/proc-0/eq-5/ex-1</default>
</attribute>
<attribute>
+ <id>ORDINAL_ID</id>
+ <default>11</default>
+ </attribute>
+ <attribute>
<id>CHIP_UNIT</id>
<default>11</default>
</attribute>
@@ -583,6 +667,10 @@
<default>affinity:sys-0/node-0/proc-0/eq-0/ex-0/core-0</default>
</attribute>
<attribute>
+ <id>ORDINAL_ID</id>
+ <default>0</default>
+ </attribute>
+ <attribute>
<id>CHIP_UNIT</id>
<default>0</default>
</attribute>
@@ -605,6 +693,10 @@
<default>affinity:sys-0/node-0/proc-0/eq-0/ex-0/core-1</default>
</attribute>
<attribute>
+ <id>ORDINAL_ID</id>
+ <default>1</default>
+ </attribute>
+ <attribute>
<id>CHIP_UNIT</id>
<default>1</default>
</attribute>
@@ -628,6 +720,10 @@
<default>affinity:sys-0/node-0/proc-0/eq-0/ex-1/core-0</default>
</attribute>
<attribute>
+ <id>ORDINAL_ID</id>
+ <default>2</default>
+ </attribute>
+ <attribute>
<id>CHIP_UNIT</id>
<default>2</default>
</attribute>
@@ -650,6 +746,10 @@
<default>affinity:sys-0/node-0/proc-0/eq-0/ex-1/core-1</default>
</attribute>
<attribute>
+ <id>ORDINAL_ID</id>
+ <default>3</default>
+ </attribute>
+ <attribute>
<id>CHIP_UNIT</id>
<default>3</default>
</attribute>
@@ -673,6 +773,10 @@
<default>affinity:sys-0/node-0/proc-0/eq-1/ex-0/core-0</default>
</attribute>
<attribute>
+ <id>ORDINAL_ID</id>
+ <default>4</default>
+ </attribute>
+ <attribute>
<id>CHIP_UNIT</id>
<default>4</default>
</attribute>
@@ -695,6 +799,10 @@
<default>affinity:sys-0/node-0/proc-0/eq-1/ex-0/core-1</default>
</attribute>
<attribute>
+ <id>ORDINAL_ID</id>
+ <default>5</default>
+ </attribute>
+ <attribute>
<id>CHIP_UNIT</id>
<default>5</default>
</attribute>
@@ -718,6 +826,10 @@
<default>affinity:sys-0/node-0/proc-0/eq-1/ex-1/core-0</default>
</attribute>
<attribute>
+ <id>ORDINAL_ID</id>
+ <default>6</default>
+ </attribute>
+ <attribute>
<id>CHIP_UNIT</id>
<default>6</default>
</attribute>
@@ -740,6 +852,10 @@
<default>affinity:sys-0/node-0/proc-0/eq-1/ex-1/core-1</default>
</attribute>
<attribute>
+ <id>ORDINAL_ID</id>
+ <default>7</default>
+ </attribute>
+ <attribute>
<id>CHIP_UNIT</id>
<default>7</default>
</attribute>
@@ -763,6 +879,10 @@
<default>affinity:sys-0/node-0/proc-0/eq-2/ex-0/core-0</default>
</attribute>
<attribute>
+ <id>ORDINAL_ID</id>
+ <default>8</default>
+ </attribute>
+ <attribute>
<id>CHIP_UNIT</id>
<default>8</default>
</attribute>
@@ -785,6 +905,10 @@
<default>affinity:sys-0/node-0/proc-0/eq-2/ex-0/core-1</default>
</attribute>
<attribute>
+ <id>ORDINAL_ID</id>
+ <default>9</default>
+ </attribute>
+ <attribute>
<id>CHIP_UNIT</id>
<default>9</default>
</attribute>
@@ -808,6 +932,10 @@
<default>affinity:sys-0/node-0/proc-0/eq-2/ex-1/core-0</default>
</attribute>
<attribute>
+ <id>ORDINAL_ID</id>
+ <default>10</default>
+ </attribute>
+ <attribute>
<id>CHIP_UNIT</id>
<default>10</default>
</attribute>
@@ -830,6 +958,10 @@
<default>affinity:sys-0/node-0/proc-0/eq-2/ex-1/core-1</default>
</attribute>
<attribute>
+ <id>ORDINAL_ID</id>
+ <default>11</default>
+ </attribute>
+ <attribute>
<id>CHIP_UNIT</id>
<default>11</default>
</attribute>
@@ -853,6 +985,10 @@
<default>affinity:sys-0/node-0/proc-0/eq-3/ex-0/core-0</default>
</attribute>
<attribute>
+ <id>ORDINAL_ID</id>
+ <default>12</default>
+ </attribute>
+ <attribute>
<id>CHIP_UNIT</id>
<default>12</default>
</attribute>
@@ -875,6 +1011,10 @@
<default>affinity:sys-0/node-0/proc-0/eq-3/ex-0/core-1</default>
</attribute>
<attribute>
+ <id>ORDINAL_ID</id>
+ <default>13</default>
+ </attribute>
+ <attribute>
<id>CHIP_UNIT</id>
<default>13</default>
</attribute>
@@ -898,6 +1038,10 @@
<default>affinity:sys-0/node-0/proc-0/eq-3/ex-1/core-0</default>
</attribute>
<attribute>
+ <id>ORDINAL_ID</id>
+ <default>14</default>
+ </attribute>
+ <attribute>
<id>CHIP_UNIT</id>
<default>14</default>
</attribute>
@@ -920,6 +1064,10 @@
<default>affinity:sys-0/node-0/proc-0/eq-3/ex-1/core-1</default>
</attribute>
<attribute>
+ <id>ORDINAL_ID</id>
+ <default>15</default>
+ </attribute>
+ <attribute>
<id>CHIP_UNIT</id>
<default>15</default>
</attribute>
@@ -943,6 +1091,10 @@
<default>affinity:sys-0/node-0/proc-0/eq-4/ex-0/core-0</default>
</attribute>
<attribute>
+ <id>ORDINAL_ID</id>
+ <default>16</default>
+ </attribute>
+ <attribute>
<id>CHIP_UNIT</id>
<default>16</default>
</attribute>
@@ -965,6 +1117,10 @@
<default>affinity:sys-0/node-0/proc-0/eq-4/ex-0/core-1</default>
</attribute>
<attribute>
+ <id>ORDINAL_ID</id>
+ <default>17</default>
+ </attribute>
+ <attribute>
<id>CHIP_UNIT</id>
<default>17</default>
</attribute>
@@ -988,6 +1144,10 @@
<default>affinity:sys-0/node-0/proc-0/eq-4/ex-1/core-0</default>
</attribute>
<attribute>
+ <id>ORDINAL_ID</id>
+ <default>18</default>
+ </attribute>
+ <attribute>
<id>CHIP_UNIT</id>
<default>18</default>
</attribute>
@@ -1010,6 +1170,10 @@
<default>affinity:sys-0/node-0/proc-0/eq-4/ex-1/core-1</default>
</attribute>
<attribute>
+ <id>ORDINAL_ID</id>
+ <default>19</default>
+ </attribute>
+ <attribute>
<id>CHIP_UNIT</id>
<default>19</default>
</attribute>
@@ -1033,6 +1197,10 @@
<default>affinity:sys-0/node-0/proc-0/eq-5/ex-0/core-0</default>
</attribute>
<attribute>
+ <id>ORDINAL_ID</id>
+ <default>20</default>
+ </attribute>
+ <attribute>
<id>CHIP_UNIT</id>
<default>20</default>
</attribute>
@@ -1055,6 +1223,10 @@
<default>affinity:sys-0/node-0/proc-0/eq-5/ex-0/core-1</default>
</attribute>
<attribute>
+ <id>ORDINAL_ID</id>
+ <default>21</default>
+ </attribute>
+ <attribute>
<id>CHIP_UNIT</id>
<default>21</default>
</attribute>
@@ -1078,6 +1250,10 @@
<default>affinity:sys-0/node-0/proc-0/eq-5/ex-1/core-0</default>
</attribute>
<attribute>
+ <id>ORDINAL_ID</id>
+ <default>22</default>
+ </attribute>
+ <attribute>
<id>CHIP_UNIT</id>
<default>22</default>
</attribute>
@@ -1100,6 +1276,10 @@
<default>affinity:sys-0/node-0/proc-0/eq-5/ex-1/core-1</default>
</attribute>
<attribute>
+ <id>ORDINAL_ID</id>
+ <default>23</default>
+ </attribute>
+ <attribute>
<id>CHIP_UNIT</id>
<default>23</default>
</attribute>
@@ -1123,6 +1303,10 @@
<default>affinity:sys-0/node-0/proc-0/mcs-0</default>
</attribute>
<attribute>
+ <id>ORDINAL_ID</id>
+ <default>0</default>
+ </attribute>
+ <attribute>
<id>CHIP_UNIT</id>
<default>0</default>
</attribute>
@@ -1152,6 +1336,10 @@
<default>affinity:sys-0/node-0/proc-0/mcs-1</default>
</attribute>
<attribute>
+ <id>ORDINAL_ID</id>
+ <default>1</default>
+ </attribute>
+ <attribute>
<id>CHIP_UNIT</id>
<default>1</default>
</attribute>
@@ -1181,6 +1369,10 @@
<default>affinity:sys-0/node-0/proc-0/mcs-2</default>
</attribute>
<attribute>
+ <id>ORDINAL_ID</id>
+ <default>2</default>
+ </attribute>
+ <attribute>
<id>CHIP_UNIT</id>
<default>2</default>
</attribute>
@@ -1210,6 +1402,10 @@
<default>affinity:sys-0/node-0/proc-0/mcs-3</default>
</attribute>
<attribute>
+ <id>ORDINAL_ID</id>
+ <default>3</default>
+ </attribute>
+ <attribute>
<id>CHIP_UNIT</id>
<default>3</default>
</attribute>
@@ -1240,6 +1436,10 @@
<default>affinity:sys-0/node-0/proc-0/mcs-0/mca-0</default>
</attribute>
<attribute>
+ <id>ORDINAL_ID</id>
+ <default>0</default>
+ </attribute>
+ <attribute>
<id>CHIP_UNIT</id>
<default>0</default>
</attribute>
@@ -1262,6 +1462,10 @@
<default>affinity:sys-0/node-0/proc-0/mcs-0/mca-1</default>
</attribute>
<attribute>
+ <id>ORDINAL_ID</id>
+ <default>1</default>
+ </attribute>
+ <attribute>
<id>CHIP_UNIT</id>
<default>1</default>
</attribute>
@@ -1285,6 +1489,10 @@
<default>affinity:sys-0/node-0/proc-0/mcs-1/mca-0</default>
</attribute>
<attribute>
+ <id>ORDINAL_ID</id>
+ <default>2</default>
+ </attribute>
+ <attribute>
<id>CHIP_UNIT</id>
<default>2</default>
</attribute>
@@ -1307,6 +1515,10 @@
<default>affinity:sys-0/node-0/proc-0/mcs-1/mca-1</default>
</attribute>
<attribute>
+ <id>ORDINAL_ID</id>
+ <default>3</default>
+ </attribute>
+ <attribute>
<id>CHIP_UNIT</id>
<default>3</default>
</attribute>
@@ -1330,6 +1542,10 @@
<default>affinity:sys-0/node-0/proc-0/mcs-2/mca-0</default>
</attribute>
<attribute>
+ <id>ORDINAL_ID</id>
+ <default>4</default>
+ </attribute>
+ <attribute>
<id>CHIP_UNIT</id>
<default>4</default>
</attribute>
@@ -1352,6 +1568,10 @@
<default>affinity:sys-0/node-0/proc-0/mcs-2/mca-1</default>
</attribute>
<attribute>
+ <id>ORDINAL_ID</id>
+ <default>5</default>
+ </attribute>
+ <attribute>
<id>CHIP_UNIT</id>
<default>5</default>
</attribute>
@@ -1375,6 +1595,10 @@
<default>affinity:sys-0/node-0/proc-0/mcs-3/mca-0</default>
</attribute>
<attribute>
+ <id>ORDINAL_ID</id>
+ <default>6</default>
+ </attribute>
+ <attribute>
<id>CHIP_UNIT</id>
<default>6</default>
</attribute>
@@ -1397,6 +1621,10 @@
<default>affinity:sys-0/node-0/proc-0/mcs-3/mca-1</default>
</attribute>
<attribute>
+ <id>ORDINAL_ID</id>
+ <default>7</default>
+ </attribute>
+ <attribute>
<id>CHIP_UNIT</id>
<default>7</default>
</attribute>
@@ -1420,6 +1648,10 @@
<default>affinity:sys-0/node-0/proc-0/mcbist-0</default>
</attribute>
<attribute>
+ <id>ORDINAL_ID</id>
+ <default>0</default>
+ </attribute>
+ <attribute>
<id>CHIP_UNIT</id>
<default>0</default>
</attribute>
@@ -1442,6 +1674,10 @@
<default>affinity:sys-0/node-0/proc-0/mcbist-1</default>
</attribute>
<attribute>
+ <id>ORDINAL_ID</id>
+ <default>1</default>
+ </attribute>
+ <attribute>
<id>CHIP_UNIT</id>
<default>1</default>
</attribute>
@@ -1465,6 +1701,10 @@
<default>affinity:sys-0/node-0/proc-0/pec-0</default>
</attribute>
<attribute>
+ <id>ORDINAL_ID</id>
+ <default>0</default>
+ </attribute>
+ <attribute>
<id>CHIP_UNIT</id>
<default>0</default>
</attribute>
@@ -1487,6 +1727,10 @@
<default>affinity:sys-0/node-0/proc-0/pec-1</default>
</attribute>
<attribute>
+ <id>ORDINAL_ID</id>
+ <default>1</default>
+ </attribute>
+ <attribute>
<id>CHIP_UNIT</id>
<default>1</default>
</attribute>
@@ -1509,6 +1753,10 @@
<default>affinity:sys-0/node-0/proc-0/pec-2</default>
</attribute>
<attribute>
+ <id>ORDINAL_ID</id>
+ <default>2</default>
+ </attribute>
+ <attribute>
<id>CHIP_UNIT</id>
<default>2</default>
</attribute>
@@ -1532,6 +1780,10 @@
<default>affinity:sys-0/node-0/proc-0/pec-0/phb-0</default>
</attribute>
<attribute>
+ <id>ORDINAL_ID</id>
+ <default>0</default>
+ </attribute>
+ <attribute>
<id>CHIP_UNIT</id>
<default>0</default>
</attribute>
@@ -1555,6 +1807,10 @@
<default>affinity:sys-0/node-0/proc-0/pec-1/phb-0</default>
</attribute>
<attribute>
+ <id>ORDINAL_ID</id>
+ <default>1</default>
+ </attribute>
+ <attribute>
<id>CHIP_UNIT</id>
<default>1</default>
</attribute>
@@ -1577,6 +1833,10 @@
<default>affinity:sys-0/node-0/proc-0/pec-1/phb-1</default>
</attribute>
<attribute>
+ <id>ORDINAL_ID</id>
+ <default>2</default>
+ </attribute>
+ <attribute>
<id>CHIP_UNIT</id>
<default>2</default>
</attribute>
@@ -1600,6 +1860,10 @@
<default>affinity:sys-0/node-0/proc-0/pec-2/phb-0</default>
</attribute>
<attribute>
+ <id>ORDINAL_ID</id>
+ <default>3</default>
+ </attribute>
+ <attribute>
<id>CHIP_UNIT</id>
<default>3</default>
</attribute>
@@ -1622,6 +1886,10 @@
<default>affinity:sys-0/node-0/proc-0/pec-2/phb-1</default>
</attribute>
<attribute>
+ <id>ORDINAL_ID</id>
+ <default>4</default>
+ </attribute>
+ <attribute>
<id>CHIP_UNIT</id>
<default>4</default>
</attribute>
@@ -1644,6 +1912,10 @@
<default>affinity:sys-0/node-0/proc-0/pec-2/phb-2</default>
</attribute>
<attribute>
+ <id>ORDINAL_ID</id>
+ <default>5</default>
+ </attribute>
+ <attribute>
<id>CHIP_UNIT</id>
<default>5</default>
</attribute>
@@ -1667,6 +1939,10 @@
<default>affinity:sys-0/node-0/proc-0/obus-0</default>
</attribute>
<attribute>
+ <id>ORDINAL_ID</id>
+ <default>0</default>
+ </attribute>
+ <attribute>
<id>CHIP_UNIT</id>
<default>0</default>
</attribute>
@@ -1689,6 +1965,10 @@
<default>affinity:sys-0/node-0/proc-0/obus-3</default>
</attribute>
<attribute>
+ <id>ORDINAL_ID</id>
+ <default>1</default>
+ </attribute>
+ <attribute>
<id>CHIP_UNIT</id>
<default>3</default>
</attribute>
@@ -1712,6 +1992,10 @@
<default>affinity:sys-0/node-0/proc-0/nv-0</default>
</attribute>
<attribute>
+ <id>ORDINAL_ID</id>
+ <default>0</default>
+ </attribute>
+ <attribute>
<id>CHIP_UNIT</id>
<default>0</default>
</attribute>
@@ -1734,6 +2018,10 @@
<default>affinity:sys-0/node-0/proc-0/nv-1</default>
</attribute>
<attribute>
+ <id>ORDINAL_ID</id>
+ <default>1</default>
+ </attribute>
+ <attribute>
<id>CHIP_UNIT</id>
<default>1</default>
</attribute>
@@ -1758,6 +2046,10 @@
<default>affinity:sys-0/node-0/proc-0/ppe-0</default>
</attribute>
<attribute>
+ <id>ORDINAL_ID</id>
+ <default>0</default>
+ </attribute>
+ <attribute>
<id>CHIP_UNIT</id>
<default>0</default>
</attribute>
@@ -1776,6 +2068,10 @@
<default>affinity:sys-0/node-0/proc-0/ppe-1</default>
</attribute>
<attribute>
+ <id>ORDINAL_ID</id>
+ <default>1</default>
+ </attribute>
+ <attribute>
<id>CHIP_UNIT</id>
<default>1</default>
</attribute>
@@ -1800,6 +2096,10 @@
<default>affinity:sys-0/node-0/proc-0/perv-1</default>
</attribute>
<attribute>
+ <id>ORDINAL_ID</id>
+ <default>0</default>
+ </attribute>
+ <attribute>
<id>CHIP_UNIT</id>
<default>1</default>
</attribute>
@@ -1822,6 +2122,10 @@
<default>affinity:sys-0/node-0/proc-0/perv-2</default>
</attribute>
<attribute>
+ <id>ORDINAL_ID</id>
+ <default>1</default>
+ </attribute>
+ <attribute>
<id>CHIP_UNIT</id>
<default>2</default>
</attribute>
@@ -1844,6 +2148,10 @@
<default>affinity:sys-0/node-0/proc-0/perv-3</default>
</attribute>
<attribute>
+ <id>ORDINAL_ID</id>
+ <default>2</default>
+ </attribute>
+ <attribute>
<id>CHIP_UNIT</id>
<default>3</default>
</attribute>
@@ -1866,6 +2174,10 @@
<default>affinity:sys-0/node-0/proc-0/perv-4</default>
</attribute>
<attribute>
+ <id>ORDINAL_ID</id>
+ <default>3</default>
+ </attribute>
+ <attribute>
<id>CHIP_UNIT</id>
<default>4</default>
</attribute>
@@ -1888,6 +2200,10 @@
<default>affinity:sys-0/node-0/proc-0/perv-5</default>
</attribute>
<attribute>
+ <id>ORDINAL_ID</id>
+ <default>4</default>
+ </attribute>
+ <attribute>
<id>CHIP_UNIT</id>
<default>5</default>
</attribute>
@@ -1910,6 +2226,10 @@
<default>affinity:sys-0/node-0/proc-0/perv-6</default>
</attribute>
<attribute>
+ <id>ORDINAL_ID</id>
+ <default>5</default>
+ </attribute>
+ <attribute>
<id>CHIP_UNIT</id>
<default>6</default>
</attribute>
@@ -1932,6 +2252,10 @@
<default>affinity:sys-0/node-0/proc-0/perv-7</default>
</attribute>
<attribute>
+ <id>ORDINAL_ID</id>
+ <default>6</default>
+ </attribute>
+ <attribute>
<id>CHIP_UNIT</id>
<default>7</default>
</attribute>
@@ -1954,6 +2278,10 @@
<default>affinity:sys-0/node-0/proc-0/perv-8</default>
</attribute>
<attribute>
+ <id>ORDINAL_ID</id>
+ <default>7</default>
+ </attribute>
+ <attribute>
<id>CHIP_UNIT</id>
<default>8</default>
</attribute>
@@ -1976,6 +2304,10 @@
<default>affinity:sys-0/node-0/proc-0/perv-9</default>
</attribute>
<attribute>
+ <id>ORDINAL_ID</id>
+ <default>8</default>
+ </attribute>
+ <attribute>
<id>CHIP_UNIT</id>
<default>9</default>
</attribute>
@@ -1998,6 +2330,10 @@
<default>affinity:sys-0/node-0/proc-0/perv-12</default>
</attribute>
<attribute>
+ <id>ORDINAL_ID</id>
+ <default>9</default>
+ </attribute>
+ <attribute>
<id>CHIP_UNIT</id>
<default>12</default>
</attribute>
@@ -2020,6 +2356,10 @@
<default>affinity:sys-0/node-0/proc-0/perv-13</default>
</attribute>
<attribute>
+ <id>ORDINAL_ID</id>
+ <default>10</default>
+ </attribute>
+ <attribute>
<id>CHIP_UNIT</id>
<default>13</default>
</attribute>
@@ -2042,6 +2382,10 @@
<default>affinity:sys-0/node-0/proc-0/perv-14</default>
</attribute>
<attribute>
+ <id>ORDINAL_ID</id>
+ <default>11</default>
+ </attribute>
+ <attribute>
<id>CHIP_UNIT</id>
<default>14</default>
</attribute>
@@ -2064,6 +2408,10 @@
<default>affinity:sys-0/node-0/proc-0/perv-15</default>
</attribute>
<attribute>
+ <id>ORDINAL_ID</id>
+ <default>12</default>
+ </attribute>
+ <attribute>
<id>CHIP_UNIT</id>
<default>15</default>
</attribute>
@@ -2086,6 +2434,10 @@
<default>affinity:sys-0/node-0/proc-0/perv-16</default>
</attribute>
<attribute>
+ <id>ORDINAL_ID</id>
+ <default>13</default>
+ </attribute>
+ <attribute>
<id>CHIP_UNIT</id>
<default>16</default>
</attribute>
@@ -2108,6 +2460,10 @@
<default>affinity:sys-0/node-0/proc-0/perv-17</default>
</attribute>
<attribute>
+ <id>ORDINAL_ID</id>
+ <default>14</default>
+ </attribute>
+ <attribute>
<id>CHIP_UNIT</id>
<default>17</default>
</attribute>
@@ -2130,6 +2486,10 @@
<default>affinity:sys-0/node-0/proc-0/perv-18</default>
</attribute>
<attribute>
+ <id>ORDINAL_ID</id>
+ <default>15</default>
+ </attribute>
+ <attribute>
<id>CHIP_UNIT</id>
<default>18</default>
</attribute>
@@ -2152,6 +2512,10 @@
<default>affinity:sys-0/node-0/proc-0/perv-19</default>
</attribute>
<attribute>
+ <id>ORDINAL_ID</id>
+ <default>16</default>
+ </attribute>
+ <attribute>
<id>CHIP_UNIT</id>
<default>19</default>
</attribute>
@@ -2174,6 +2538,10 @@
<default>affinity:sys-0/node-0/proc-0/perv-20</default>
</attribute>
<attribute>
+ <id>ORDINAL_ID</id>
+ <default>17</default>
+ </attribute>
+ <attribute>
<id>CHIP_UNIT</id>
<default>20</default>
</attribute>
@@ -2196,6 +2564,10 @@
<default>affinity:sys-0/node-0/proc-0/perv-21</default>
</attribute>
<attribute>
+ <id>ORDINAL_ID</id>
+ <default>18</default>
+ </attribute>
+ <attribute>
<id>CHIP_UNIT</id>
<default>21</default>
</attribute>
@@ -2218,6 +2590,10 @@
<default>affinity:sys-0/node-0/proc-0/perv-32</default>
</attribute>
<attribute>
+ <id>ORDINAL_ID</id>
+ <default>19</default>
+ </attribute>
+ <attribute>
<id>CHIP_UNIT</id>
<default>32</default>
</attribute>
@@ -2240,6 +2616,10 @@
<default>affinity:sys-0/node-0/proc-0/perv-33</default>
</attribute>
<attribute>
+ <id>ORDINAL_ID</id>
+ <default>20</default>
+ </attribute>
+ <attribute>
<id>CHIP_UNIT</id>
<default>33</default>
</attribute>
@@ -2262,6 +2642,10 @@
<default>affinity:sys-0/node-0/proc-0/perv-34</default>
</attribute>
<attribute>
+ <id>ORDINAL_ID</id>
+ <default>21</default>
+ </attribute>
+ <attribute>
<id>CHIP_UNIT</id>
<default>34</default>
</attribute>
@@ -2284,6 +2668,10 @@
<default>affinity:sys-0/node-0/proc-0/perv-35</default>
</attribute>
<attribute>
+ <id>ORDINAL_ID</id>
+ <default>22</default>
+ </attribute>
+ <attribute>
<id>CHIP_UNIT</id>
<default>35</default>
</attribute>
@@ -2306,6 +2694,10 @@
<default>affinity:sys-0/node-0/proc-0/perv-36</default>
</attribute>
<attribute>
+ <id>ORDINAL_ID</id>
+ <default>23</default>
+ </attribute>
+ <attribute>
<id>CHIP_UNIT</id>
<default>36</default>
</attribute>
@@ -2328,6 +2720,10 @@
<default>affinity:sys-0/node-0/proc-0/perv-37</default>
</attribute>
<attribute>
+ <id>ORDINAL_ID</id>
+ <default>24</default>
+ </attribute>
+ <attribute>
<id>CHIP_UNIT</id>
<default>37</default>
</attribute>
@@ -2350,6 +2746,10 @@
<default>affinity:sys-0/node-0/proc-0/perv-38</default>
</attribute>
<attribute>
+ <id>ORDINAL_ID</id>
+ <default>25</default>
+ </attribute>
+ <attribute>
<id>CHIP_UNIT</id>
<default>38</default>
</attribute>
@@ -2372,6 +2772,10 @@
<default>affinity:sys-0/node-0/proc-0/perv-39</default>
</attribute>
<attribute>
+ <id>ORDINAL_ID</id>
+ <default>26</default>
+ </attribute>
+ <attribute>
<id>CHIP_UNIT</id>
<default>39</default>
</attribute>
@@ -2394,6 +2798,10 @@
<default>affinity:sys-0/node-0/proc-0/perv-40</default>
</attribute>
<attribute>
+ <id>ORDINAL_ID</id>
+ <default>27</default>
+ </attribute>
+ <attribute>
<id>CHIP_UNIT</id>
<default>40</default>
</attribute>
@@ -2416,6 +2824,10 @@
<default>affinity:sys-0/node-0/proc-0/perv-41</default>
</attribute>
<attribute>
+ <id>ORDINAL_ID</id>
+ <default>28</default>
+ </attribute>
+ <attribute>
<id>CHIP_UNIT</id>
<default>41</default>
</attribute>
@@ -2438,6 +2850,10 @@
<default>affinity:sys-0/node-0/proc-0/perv-42</default>
</attribute>
<attribute>
+ <id>ORDINAL_ID</id>
+ <default>29</default>
+ </attribute>
+ <attribute>
<id>CHIP_UNIT</id>
<default>42</default>
</attribute>
@@ -2460,6 +2876,10 @@
<default>affinity:sys-0/node-0/proc-0/perv-43</default>
</attribute>
<attribute>
+ <id>ORDINAL_ID</id>
+ <default>30</default>
+ </attribute>
+ <attribute>
<id>CHIP_UNIT</id>
<default>43</default>
</attribute>
@@ -2482,6 +2902,10 @@
<default>affinity:sys-0/node-0/proc-0/perv-44</default>
</attribute>
<attribute>
+ <id>ORDINAL_ID</id>
+ <default>31</default>
+ </attribute>
+ <attribute>
<id>CHIP_UNIT</id>
<default>44</default>
</attribute>
@@ -2504,6 +2928,10 @@
<default>affinity:sys-0/node-0/proc-0/perv-45</default>
</attribute>
<attribute>
+ <id>ORDINAL_ID</id>
+ <default>32</default>
+ </attribute>
+ <attribute>
<id>CHIP_UNIT</id>
<default>45</default>
</attribute>
@@ -2526,6 +2954,10 @@
<default>affinity:sys-0/node-0/proc-0/perv-46</default>
</attribute>
<attribute>
+ <id>ORDINAL_ID</id>
+ <default>33</default>
+ </attribute>
+ <attribute>
<id>CHIP_UNIT</id>
<default>46</default>
</attribute>
@@ -2548,6 +2980,10 @@
<default>affinity:sys-0/node-0/proc-0/perv-47</default>
</attribute>
<attribute>
+ <id>ORDINAL_ID</id>
+ <default>34</default>
+ </attribute>
+ <attribute>
<id>CHIP_UNIT</id>
<default>47</default>
</attribute>
@@ -2570,6 +3006,10 @@
<default>affinity:sys-0/node-0/proc-0/perv-48</default>
</attribute>
<attribute>
+ <id>ORDINAL_ID</id>
+ <default>35</default>
+ </attribute>
+ <attribute>
<id>CHIP_UNIT</id>
<default>48</default>
</attribute>
@@ -2592,6 +3032,10 @@
<default>affinity:sys-0/node-0/proc-0/perv-49</default>
</attribute>
<attribute>
+ <id>ORDINAL_ID</id>
+ <default>36</default>
+ </attribute>
+ <attribute>
<id>CHIP_UNIT</id>
<default>49</default>
</attribute>
@@ -2614,6 +3058,10 @@
<default>affinity:sys-0/node-0/proc-0/perv-50</default>
</attribute>
<attribute>
+ <id>ORDINAL_ID</id>
+ <default>37</default>
+ </attribute>
+ <attribute>
<id>CHIP_UNIT</id>
<default>50</default>
</attribute>
@@ -2636,6 +3084,10 @@
<default>affinity:sys-0/node-0/proc-0/perv-51</default>
</attribute>
<attribute>
+ <id>ORDINAL_ID</id>
+ <default>38</default>
+ </attribute>
+ <attribute>
<id>CHIP_UNIT</id>
<default>51</default>
</attribute>
@@ -2658,6 +3110,10 @@
<default>affinity:sys-0/node-0/proc-0/perv-52</default>
</attribute>
<attribute>
+ <id>ORDINAL_ID</id>
+ <default>39</default>
+ </attribute>
+ <attribute>
<id>CHIP_UNIT</id>
<default>52</default>
</attribute>
@@ -2680,6 +3136,10 @@
<default>affinity:sys-0/node-0/proc-0/perv-53</default>
</attribute>
<attribute>
+ <id>ORDINAL_ID</id>
+ <default>40</default>
+ </attribute>
+ <attribute>
<id>CHIP_UNIT</id>
<default>53</default>
</attribute>
@@ -2702,6 +3162,10 @@
<default>affinity:sys-0/node-0/proc-0/perv-54</default>
</attribute>
<attribute>
+ <id>ORDINAL_ID</id>
+ <default>41</default>
+ </attribute>
+ <attribute>
<id>CHIP_UNIT</id>
<default>54</default>
</attribute>
@@ -2724,6 +3188,10 @@
<default>affinity:sys-0/node-0/proc-0/perv-55</default>
</attribute>
<attribute>
+ <id>ORDINAL_ID</id>
+ <default>42</default>
+ </attribute>
+ <attribute>
<id>CHIP_UNIT</id>
<default>55</default>
</attribute>
@@ -2744,6 +3212,10 @@
<default>affinity:sys-0/node-0/proc-0/xbus-1</default>
</attribute>
<attribute>
+ <id>ORDINAL_ID</id>
+ <default>0</default>
+ </attribute>
+ <attribute>
<id>CHIP_UNIT</id>
<default>1</default>
</attribute>
@@ -2770,6 +3242,10 @@
<default>affinity:sys-0/node-0/proc-0/xbus-2</default>
</attribute>
<attribute>
+ <id>ORDINAL_ID</id>
+ <default>1</default>
+ </attribute>
+ <attribute>
<id>CHIP_UNIT</id>
<default>2</default>
</attribute>
@@ -2797,6 +3273,10 @@
<default>affinity:sys-0/node-0/proc-0/capp-0</default>
</attribute>
<attribute>
+ <id>ORDINAL_ID</id>
+ <default>0</default>
+ </attribute>
+ <attribute>
<id>CHIP_UNIT</id>
<default>0</default>
</attribute>
@@ -2819,6 +3299,10 @@
<default>affinity:sys-0/node-0/proc-0/capp-1</default>
</attribute>
<attribute>
+ <id>ORDINAL_ID</id>
+ <default>1</default>
+ </attribute>
+ <attribute>
<id>CHIP_UNIT</id>
<default>1</default>
</attribute>
@@ -2842,6 +3326,10 @@
<default>affinity:sys-0/node-0/proc-0/sbe-0</default>
</attribute>
<attribute>
+ <id>ORDINAL_ID</id>
+ <default>0</default>
+ </attribute>
+ <attribute>
<id>CHIP_UNIT</id>
<default>0</default>
</attribute>
@@ -2862,6 +3350,10 @@
<default>affinity:sys-0/node-0/proc-0/occ-0</default>
</attribute>
<attribute>
+ <id>ORDINAL_ID</id>
+ <default>0</default>
+ </attribute>
+ <attribute>
<id>OCC_MASTER_CAPABLE</id>
<default>0</default>
</attribute>
@@ -2880,6 +3372,10 @@
<default>physical:sys-0/node-0/proc-0/nx-0</default>
</attribute>
<attribute>
+ <id>ORDINAL_ID</id>
+ <default>0</default>
+ </attribute>
+ <attribute>
<id>CHIP_UNIT</id>
<default>0</default>
</attribute>
@@ -2901,6 +3397,10 @@
<default>physical:sys-0/node-0/dimm-0</default>
</attribute>
<attribute>
+ <id>ORDINAL_ID</id>
+ <default>0</default>
+ </attribute>
+ <attribute>
<id>AFFINITY_PATH</id>
<default>affinity:sys-0/node-0/proc-0/mcs-0/mca-0/dimm-0</default>
</attribute>
@@ -2916,6 +3416,10 @@
<default>physical:sys-0/node-0/dimm-1</default>
</attribute>
<attribute>
+ <id>ORDINAL_ID</id>
+ <default>1</default>
+ </attribute>
+ <attribute>
<id>AFFINITY_PATH</id>
<default>affinity:sys-0/node-0/proc-0/mcs-0/mca-0/dimm-1</default>
</attribute>
@@ -2931,6 +3435,10 @@
<default>physical:sys-0/node-0/dimm-2</default>
</attribute>
<attribute>
+ <id>ORDINAL_ID</id>
+ <default>2</default>
+ </attribute>
+ <attribute>
<id>AFFINITY_PATH</id>
<default>affinity:sys-0/node-0/proc-0/mcs-0/mca-0/dimm-2</default>
</attribute>
@@ -2946,6 +3454,10 @@
<default>physical:sys-0/node-0/dimm-3</default>
</attribute>
<attribute>
+ <id>ORDINAL_ID</id>
+ <default>3</default>
+ </attribute>
+ <attribute>
<id>AFFINITY_PATH</id>
<default>affinity:sys-0/node-0/proc-0/mcs-0/mca-0/dimm-3</default>
</attribute>
@@ -2961,6 +3473,10 @@
<default>physical:sys-0/node-0/dimm-4</default>
</attribute>
<attribute>
+ <id>ORDINAL_ID</id>
+ <default>4</default>
+ </attribute>
+ <attribute>
<id>AFFINITY_PATH</id>
<default>affinity:sys-0/node-0/proc-0/mcs-0/mca-1/dimm-0</default>
</attribute>
@@ -2976,6 +3492,10 @@
<default>physical:sys-0/node-0/dimm-5</default>
</attribute>
<attribute>
+ <id>ORDINAL_ID</id>
+ <default>5</default>
+ </attribute>
+ <attribute>
<id>AFFINITY_PATH</id>
<default>affinity:sys-0/node-0/proc-0/mcs-0/mca-1/dimm-1</default>
</attribute>
@@ -2991,6 +3511,10 @@
<default>physical:sys-0/node-0/dimm-6</default>
</attribute>
<attribute>
+ <id>ORDINAL_ID</id>
+ <default>6</default>
+ </attribute>
+ <attribute>
<id>AFFINITY_PATH</id>
<default>affinity:sys-0/node-0/proc-0/mcs-0/mca-1/dimm-2</default>
</attribute>
@@ -3006,6 +3530,10 @@
<default>physical:sys-0/node-0/dimm-7</default>
</attribute>
<attribute>
+ <id>ORDINAL_ID</id>
+ <default>7</default>
+ </attribute>
+ <attribute>
<id>AFFINITY_PATH</id>
<default>affinity:sys-0/node-0/proc-0/mcs-0/mca-1/dimm-3</default>
</attribute>
@@ -3021,6 +3549,10 @@
<default>physical:sys-0/node-0/dimm-8</default>
</attribute>
<attribute>
+ <id>ORDINAL_ID</id>
+ <default>8</default>
+ </attribute>
+ <attribute>
<id>AFFINITY_PATH</id>
<default>affinity:sys-0/node-0/proc-0/mcs-1/mca-0/dimm-0</default>
</attribute>
@@ -3036,6 +3568,10 @@
<default>physical:sys-0/node-0/dimm-9</default>
</attribute>
<attribute>
+ <id>ORDINAL_ID</id>
+ <default>9</default>
+ </attribute>
+ <attribute>
<id>AFFINITY_PATH</id>
<default>affinity:sys-0/node-0/proc-0/mcs-1/mca-0/dimm-1</default>
</attribute>
@@ -3051,6 +3587,10 @@
<default>physical:sys-0/node-0/dimm-10</default>
</attribute>
<attribute>
+ <id>ORDINAL_ID</id>
+ <default>10</default>
+ </attribute>
+ <attribute>
<id>AFFINITY_PATH</id>
<default>affinity:sys-0/node-0/proc-0/mcs-1/mca-0/dimm-2</default>
</attribute>
@@ -3066,6 +3606,10 @@
<default>physical:sys-0/node-0/dimm-11</default>
</attribute>
<attribute>
+ <id>ORDINAL_ID</id>
+ <default>11</default>
+ </attribute>
+ <attribute>
<id>AFFINITY_PATH</id>
<default>affinity:sys-0/node-0/proc-0/mcs-1/mca-0/dimm-3</default>
</attribute>
@@ -3081,6 +3625,10 @@
<default>physical:sys-0/node-0/dimm-12</default>
</attribute>
<attribute>
+ <id>ORDINAL_ID</id>
+ <default>12</default>
+ </attribute>
+ <attribute>
<id>AFFINITY_PATH</id>
<default>affinity:sys-0/node-0/proc-0/mcs-1/mca-1/dimm-0</default>
</attribute>
@@ -3096,6 +3644,10 @@
<default>physical:sys-0/node-0/dimm-13</default>
</attribute>
<attribute>
+ <id>ORDINAL_ID</id>
+ <default>13</default>
+ </attribute>
+ <attribute>
<id>AFFINITY_PATH</id>
<default>affinity:sys-0/node-0/proc-0/mcs-1/mca-1/dimm-1</default>
</attribute>
@@ -3111,6 +3663,10 @@
<default>physical:sys-0/node-0/dimm-14</default>
</attribute>
<attribute>
+ <id>ORDINAL_ID</id>
+ <default>14</default>
+ </attribute>
+ <attribute>
<id>AFFINITY_PATH</id>
<default>affinity:sys-0/node-0/proc-0/mcs-1/mca-1/dimm-2</default>
</attribute>
@@ -3126,6 +3682,9 @@
<default>physical:sys-0/node-0/dimm-15</default>
</attribute>
<attribute>
+ <id>ORDINAL_ID</id>
+ <default>15</default>
+ </attribute> <attribute>
<id>AFFINITY_PATH</id>
<default>affinity:sys-0/node-0/proc-0/mcs-1/mca-1/dimm-3</default>
</attribute>
@@ -3141,6 +3700,10 @@
<default>physical:sys-0/node-0/dimm-16</default>
</attribute>
<attribute>
+ <id>ORDINAL_ID</id>
+ <default>16</default>
+ </attribute>
+ <attribute>
<id>AFFINITY_PATH</id>
<default>affinity:sys-0/node-0/proc-0/mcs-2/mca-0/dimm-0</default>
</attribute>
@@ -3156,6 +3719,10 @@
<default>physical:sys-0/node-0/dimm-17</default>
</attribute>
<attribute>
+ <id>ORDINAL_ID</id>
+ <default>17</default>
+ </attribute>
+ <attribute>
<id>AFFINITY_PATH</id>
<default>affinity:sys-0/node-0/proc-0/mcs-2/mca-0/dimm-1</default>
</attribute>
@@ -3171,6 +3738,10 @@
<default>physical:sys-0/node-0/dimm-18</default>
</attribute>
<attribute>
+ <id>ORDINAL_ID</id>
+ <default>18</default>
+ </attribute>
+ <attribute>
<id>AFFINITY_PATH</id>
<default>affinity:sys-0/node-0/proc-0/mcs-2/mca-0/dimm-2</default>
</attribute>
@@ -3186,6 +3757,10 @@
<default>physical:sys-0/node-0/dimm-19</default>
</attribute>
<attribute>
+ <id>ORDINAL_ID</id>
+ <default>19</default>
+ </attribute>
+ <attribute>
<id>AFFINITY_PATH</id>
<default>affinity:sys-0/node-0/proc-0/mcs-2/mca-0/dimm-3</default>
</attribute>
@@ -3201,6 +3776,10 @@
<default>physical:sys-0/node-0/dimm-20</default>
</attribute>
<attribute>
+ <id>ORDINAL_ID</id>
+ <default>20</default>
+ </attribute>
+ <attribute>
<id>AFFINITY_PATH</id>
<default>affinity:sys-0/node-0/proc-0/mcs-2/mca-1/dimm-0</default>
</attribute>
@@ -3216,6 +3795,10 @@
<default>physical:sys-0/node-0/dimm-21</default>
</attribute>
<attribute>
+ <id>ORDINAL_ID</id>
+ <default>21</default>
+ </attribute>
+ <attribute>
<id>AFFINITY_PATH</id>
<default>affinity:sys-0/node-0/proc-0/mcs-2/mca-1/dimm-1</default>
</attribute>
@@ -3231,6 +3814,10 @@
<default>physical:sys-0/node-0/dimm-22</default>
</attribute>
<attribute>
+ <id>ORDINAL_ID</id>
+ <default>22</default>
+ </attribute>
+ <attribute>
<id>AFFINITY_PATH</id>
<default>affinity:sys-0/node-0/proc-0/mcs-2/mca-1/dimm-2</default>
</attribute>
@@ -3246,6 +3833,10 @@
<default>physical:sys-0/node-0/dimm-23</default>
</attribute>
<attribute>
+ <id>ORDINAL_ID</id>
+ <default>23</default>
+ </attribute>
+ <attribute>
<id>AFFINITY_PATH</id>
<default>affinity:sys-0/node-0/proc-0/mcs-2/mca-1/dimm-3</default>
</attribute>
@@ -3261,6 +3852,10 @@
<default>physical:sys-0/node-0/dimm-24</default>
</attribute>
<attribute>
+ <id>ORDINAL_ID</id>
+ <default>24</default>
+ </attribute>
+ <attribute>
<id>AFFINITY_PATH</id>
<default>affinity:sys-0/node-0/proc-0/mcs-3/mca-0/dimm-0</default>
</attribute>
@@ -3276,6 +3871,10 @@
<default>physical:sys-0/node-0/dimm-25</default>
</attribute>
<attribute>
+ <id>ORDINAL_ID</id>
+ <default>25</default>
+ </attribute>
+ <attribute>
<id>AFFINITY_PATH</id>
<default>affinity:sys-0/node-0/proc-0/mcs-3/mca-0/dimm-1</default>
</attribute>
@@ -3291,6 +3890,10 @@
<default>physical:sys-0/node-0/dimm-26</default>
</attribute>
<attribute>
+ <id>ORDINAL_ID</id>
+ <default>26</default>
+ </attribute>
+ <attribute>
<id>AFFINITY_PATH</id>
<default>affinity:sys-0/node-0/proc-0/mcs-3/mca-0/dimm-2</default>
</attribute>
@@ -3306,6 +3909,10 @@
<default>physical:sys-0/node-0/dimm-27</default>
</attribute>
<attribute>
+ <id>ORDINAL_ID</id>
+ <default>27</default>
+ </attribute>
+ <attribute>
<id>AFFINITY_PATH</id>
<default>affinity:sys-0/node-0/proc-0/mcs-3/mca-0/dimm-3</default>
</attribute>
@@ -3321,6 +3928,10 @@
<default>physical:sys-0/node-0/dimm-28</default>
</attribute>
<attribute>
+ <id>ORDINAL_ID</id>
+ <default>28</default>
+ </attribute>
+ <attribute>
<id>AFFINITY_PATH</id>
<default>affinity:sys-0/node-0/proc-0/mcs-3/mca-1/dimm-0</default>
</attribute>
@@ -3336,6 +3947,10 @@
<default>physical:sys-0/node-0/dimm-29</default>
</attribute>
<attribute>
+ <id>ORDINAL_ID</id>
+ <default>29</default>
+ </attribute>
+ <attribute>
<id>AFFINITY_PATH</id>
<default>affinity:sys-0/node-0/proc-0/mcs-3/mca-1/dimm-1</default>
</attribute>
@@ -3351,6 +3966,10 @@
<default>physical:sys-0/node-0/dimm-30</default>
</attribute>
<attribute>
+ <id>ORDINAL_ID</id>
+ <default>30</default>
+ </attribute>
+ <attribute>
<id>AFFINITY_PATH</id>
<default>affinity:sys-0/node-0/proc-0/mcs-3/mca-1/dimm-2</default>
</attribute>
@@ -3366,6 +3985,10 @@
<default>physical:sys-0/node-0/dimm-31</default>
</attribute>
<attribute>
+ <id>ORDINAL_ID</id>
+ <default>31</default>
+ </attribute>
+ <attribute>
<id>AFFINITY_PATH</id>
<default>affinity:sys-0/node-0/proc-0/mcs-3/mca-1/dimm-3</default>
</attribute>
diff --git a/src/usr/targeting/common/xmltohb/target_types_hb.xml b/src/usr/targeting/common/xmltohb/target_types_hb.xml
index 1207865f1..05a5cdedf 100755
--- a/src/usr/targeting/common/xmltohb/target_types_hb.xml
+++ b/src/usr/targeting/common/xmltohb/target_types_hb.xml
@@ -83,6 +83,7 @@
<attribute><id>IPMI_SENSORS</id></attribute>
<attribute><id>PART_NUMBER</id></attribute>
<attribute><id>SERIAL_NUMBER</id></attribute>
+ <attribute><id>VPD_SWITCHES</id></attribute>
</targetTypeExtension>
<targetTypeExtension>
@@ -118,6 +119,9 @@
<attribute>
<id>PART_NUMBER</id>
</attribute>
+ <attribute>
+ <id>HBRT_HYP_ID</id>
+ </attribute>
</targetTypeExtension>
<targetTypeExtension>
@@ -176,12 +180,18 @@
<attribute><id>IPMI_SENSORS</id></attribute>
<attribute><id>PART_NUMBER</id></attribute>
<attribute><id>SERIAL_NUMBER</id></attribute>
+ <attribute>
+ <id>HBRT_HYP_ID</id>
+ </attribute>
</targetTypeExtension>
<targetTypeExtension>
<id>unit-core-power9</id>
<attribute><id>IPMI_SENSORS</id></attribute>
<attribute><id>HB_TARGET_SCOMABLE</id></attribute>
+ <attribute>
+ <id>HBRT_HYP_ID</id>
+ </attribute>
</targetTypeExtension>
<targetTypeExtension>
@@ -193,11 +203,6 @@
</targetTypeExtension>
<targetTypeExtension>
- <id>enc-node-power9</id>
- <attribute><id>VPD_SWITCHES</id></attribute>
-</targetTypeExtension>
-
-<targetTypeExtension>
<id>lcard-dimm</id>
<attribute><id>VPD_SWITCHES</id></attribute>
<attribute><id>IPMI_SENSORS</id></attribute>
@@ -206,14 +211,6 @@
</targetTypeExtension>
<targetTypeExtension>
- <id>occ</id>
- <attribute>
- <id>PSTATE_TABLE</id>
- </attribute>
- <attribute><id>IPMI_SENSORS</id></attribute>
-</targetTypeExtension>
-
-<targetTypeExtension>
<id>unit-mcs-nimbus</id>
<attribute><id>HB_TARGET_SCOMABLE</id></attribute>
</targetTypeExtension>
@@ -224,14 +221,6 @@
</targetType>
<targetTypeExtension>
- <id>lcard-dimm</id>
- <attribute><id>VPD_SWITCHES</id></attribute>
- <attribute><id>IPMI_SENSORS</id></attribute>
- <attribute><id>PART_NUMBER</id></attribute>
- <attribute><id>SERIAL_NUMBER</id></attribute>
-</targetTypeExtension>
-
-<targetTypeExtension>
<id>occ</id>
<attribute>
<id>PSTATE_TABLE</id>
@@ -242,41 +231,4 @@
<attribute><id>IPMI_SENSORS</id></attribute>
</targetTypeExtension>
-<!-- Centaur chip/DMI -->
-
-<targetTypeExtension>
- <id>chip-membuf-centaur</id>
- <attribute>
- <id>FSI_SCOM_MUTEX</id>
- </attribute>
- <attribute>
- <id>SCOM_IND_MUTEX</id>
- </attribute>
- <attribute><id>SCAN_MUTEX</id></attribute>
- <attribute>
- <id>IBSCOM_VIRTUAL_ADDR</id>
- </attribute>
- <attribute>
- <id>IBSCOM_MUTEX</id>
- </attribute>
- <attribute>
- <id>I2C_ENGINE_MUTEX_0</id>
- <default>0</default>
- </attribute>
- <attribute>
- <id>I2C_ENGINE_MUTEX_1</id>
- <default>0</default>
- </attribute>
- <attribute>
- <id>GPIO_INFO</id>
- </attribute>
- <attribute><id>VPD_SWITCHES</id></attribute>
- <attribute>
- <id>ISDIMM_MBVPD_INDEX</id>
- </attribute>
- <attribute><id>IPMI_SENSORS</id></attribute>
- <attribute><id>PART_NUMBER</id></attribute>
- <attribute><id>SERIAL_NUMBER</id></attribute>
-</targetTypeExtension>
-
</attributes>
diff --git a/src/usr/targeting/common/xmltohb/vbu_NIMBUS.system.xml b/src/usr/targeting/common/xmltohb/vbu_NIMBUS.system.xml
index 3dc16b996..6fdea1cd7 100644
--- a/src/usr/targeting/common/xmltohb/vbu_NIMBUS.system.xml
+++ b/src/usr/targeting/common/xmltohb/vbu_NIMBUS.system.xml
@@ -69,6 +69,10 @@
<default>affinity:sys-0</default>
</attribute>
<attribute>
+ <id>ORDINAL_ID</id>
+ <default>0</default>
+ </attribute>
+ <attribute>
<id>EXECUTION_PLATFORM</id>
<default>1</default>
</attribute>
@@ -124,6 +128,10 @@
<id>AFFINITY_PATH</id>
<default>affinity:sys-0/node-0</default>
</attribute>
+ <attribute>
+ <id>ORDINAL_ID</id>
+ <default>0</default>
+ </attribute>
</targetInstance>
<!-- Nimbus n0p0 processor chip -->
@@ -149,6 +157,10 @@
<default>affinity:sys-0/node-0/proc-0</default>
</attribute>
<attribute>
+ <id>ORDINAL_ID</id>
+ <default>0</default>
+ </attribute>
+ <attribute>
<id>FRU_ID</id>
<default>1</default>
</attribute>
@@ -228,6 +240,10 @@
<default>affinity:sys-0/node-0/proc-0/eq-0</default>
</attribute>
<attribute>
+ <id>ORDINAL_ID</id>
+ <default>0</default>
+ </attribute>
+ <attribute>
<id>CHIP_UNIT</id>
<default>0</default>
</attribute>
@@ -250,6 +266,10 @@
<default>affinity:sys-0/node-0/proc-0/eq-1</default>
</attribute>
<attribute>
+ <id>ORDINAL_ID</id>
+ <default>1</default>
+ </attribute>
+ <attribute>
<id>CHIP_UNIT</id>
<default>1</default>
</attribute>
@@ -272,6 +292,10 @@
<default>affinity:sys-0/node-0/proc-0/eq-2</default>
</attribute>
<attribute>
+ <id>ORDINAL_ID</id>
+ <default>2</default>
+ </attribute>
+ <attribute>
<id>CHIP_UNIT</id>
<default>2</default>
</attribute>
@@ -294,6 +318,10 @@
<default>affinity:sys-0/node-0/proc-0/eq-3</default>
</attribute>
<attribute>
+ <id>ORDINAL_ID</id>
+ <default>3</default>
+ </attribute>
+ <attribute>
<id>CHIP_UNIT</id>
<default>3</default>
</attribute>
@@ -316,6 +344,10 @@
<default>affinity:sys-0/node-0/proc-0/eq-4</default>
</attribute>
<attribute>
+ <id>ORDINAL_ID</id>
+ <default>4</default>
+ </attribute>
+ <attribute>
<id>CHIP_UNIT</id>
<default>4</default>
</attribute>
@@ -338,6 +370,10 @@
<default>affinity:sys-0/node-0/proc-0/eq-5</default>
</attribute>
<attribute>
+ <id>ORDINAL_ID</id>
+ <default>5</default>
+ </attribute>
+ <attribute>
<id>CHIP_UNIT</id>
<default>5</default>
</attribute>
@@ -361,6 +397,10 @@
<default>affinity:sys-0/node-0/proc-0/eq-0/ex-0</default>
</attribute>
<attribute>
+ <id>ORDINAL_ID</id>
+ <default>0</default>
+ </attribute>
+ <attribute>
<id>CHIP_UNIT</id>
<default>0</default>
</attribute>
@@ -379,6 +419,10 @@
<default>affinity:sys-0/node-0/proc-0/eq-0/ex-1</default>
</attribute>
<attribute>
+ <id>ORDINAL_ID</id>
+ <default>1</default>
+ </attribute>
+ <attribute>
<id>CHIP_UNIT</id>
<default>1</default>
</attribute>
@@ -398,6 +442,10 @@
<default>affinity:sys-0/node-0/proc-0/eq-1/ex-0</default>
</attribute>
<attribute>
+ <id>ORDINAL_ID</id>
+ <default>2</default>
+ </attribute>
+ <attribute>
<id>CHIP_UNIT</id>
<default>2</default>
</attribute>
@@ -416,6 +464,10 @@
<default>affinity:sys-0/node-0/proc-0/eq-1/ex-1</default>
</attribute>
<attribute>
+ <id>ORDINAL_ID</id>
+ <default>3</default>
+ </attribute>
+ <attribute>
<id>CHIP_UNIT</id>
<default>3</default>
</attribute>
@@ -435,6 +487,10 @@
<default>affinity:sys-0/node-0/proc-0/eq-2/ex-0</default>
</attribute>
<attribute>
+ <id>ORDINAL_ID</id>
+ <default>4</default>
+ </attribute>
+ <attribute>
<id>CHIP_UNIT</id>
<default>4</default>
</attribute>
@@ -453,6 +509,10 @@
<default>affinity:sys-0/node-0/proc-0/eq-2/ex-1</default>
</attribute>
<attribute>
+ <id>ORDINAL_ID</id>
+ <default>5</default>
+ </attribute>
+ <attribute>
<id>CHIP_UNIT</id>
<default>5</default>
</attribute>
@@ -472,6 +532,10 @@
<default>affinity:sys-0/node-0/proc-0/eq-3/ex-0</default>
</attribute>
<attribute>
+ <id>ORDINAL_ID</id>
+ <default>6</default>
+ </attribute>
+ <attribute>
<id>CHIP_UNIT</id>
<default>6</default>
</attribute>
@@ -490,6 +554,10 @@
<default>affinity:sys-0/node-0/proc-0/eq-3/ex-1</default>
</attribute>
<attribute>
+ <id>ORDINAL_ID</id>
+ <default>7</default>
+ </attribute>
+ <attribute>
<id>CHIP_UNIT</id>
<default>7</default>
</attribute>
@@ -509,6 +577,10 @@
<default>affinity:sys-0/node-0/proc-0/eq-4/ex-0</default>
</attribute>
<attribute>
+ <id>ORDINAL_ID</id>
+ <default>8</default>
+ </attribute>
+ <attribute>
<id>CHIP_UNIT</id>
<default>8</default>
</attribute>
@@ -527,6 +599,10 @@
<default>affinity:sys-0/node-0/proc-0/eq-4/ex-1</default>
</attribute>
<attribute>
+ <id>ORDINAL_ID</id>
+ <default>9</default>
+ </attribute>
+ <attribute>
<id>CHIP_UNIT</id>
<default>9</default>
</attribute>
@@ -546,6 +622,10 @@
<default>affinity:sys-0/node-0/proc-0/eq-5/ex-0</default>
</attribute>
<attribute>
+ <id>ORDINAL_ID</id>
+ <default>10</default>
+ </attribute>
+ <attribute>
<id>CHIP_UNIT</id>
<default>10</default>
</attribute>
@@ -564,6 +644,10 @@
<default>affinity:sys-0/node-0/proc-0/eq-5/ex-1</default>
</attribute>
<attribute>
+ <id>ORDINAL_ID</id>
+ <default>11</default>
+ </attribute>
+ <attribute>
<id>CHIP_UNIT</id>
<default>11</default>
</attribute>
@@ -583,6 +667,10 @@
<default>affinity:sys-0/node-0/proc-0/eq-0/ex-0/core-0</default>
</attribute>
<attribute>
+ <id>ORDINAL_ID</id>
+ <default>0</default>
+ </attribute>
+ <attribute>
<id>CHIP_UNIT</id>
<default>0</default>
</attribute>
@@ -605,6 +693,10 @@
<default>affinity:sys-0/node-0/proc-0/eq-0/ex-0/core-1</default>
</attribute>
<attribute>
+ <id>ORDINAL_ID</id>
+ <default>1</default>
+ </attribute>
+ <attribute>
<id>CHIP_UNIT</id>
<default>1</default>
</attribute>
@@ -628,6 +720,10 @@
<default>affinity:sys-0/node-0/proc-0/eq-0/ex-1/core-0</default>
</attribute>
<attribute>
+ <id>ORDINAL_ID</id>
+ <default>2</default>
+ </attribute>
+ <attribute>
<id>CHIP_UNIT</id>
<default>2</default>
</attribute>
@@ -650,6 +746,10 @@
<default>affinity:sys-0/node-0/proc-0/eq-0/ex-1/core-1</default>
</attribute>
<attribute>
+ <id>ORDINAL_ID</id>
+ <default>3</default>
+ </attribute>
+ <attribute>
<id>CHIP_UNIT</id>
<default>3</default>
</attribute>
@@ -673,6 +773,10 @@
<default>affinity:sys-0/node-0/proc-0/eq-1/ex-0/core-0</default>
</attribute>
<attribute>
+ <id>ORDINAL_ID</id>
+ <default>4</default>
+ </attribute>
+ <attribute>
<id>CHIP_UNIT</id>
<default>4</default>
</attribute>
@@ -695,6 +799,10 @@
<default>affinity:sys-0/node-0/proc-0/eq-1/ex-0/core-1</default>
</attribute>
<attribute>
+ <id>ORDINAL_ID</id>
+ <default>5</default>
+ </attribute>
+ <attribute>
<id>CHIP_UNIT</id>
<default>5</default>
</attribute>
@@ -718,6 +826,10 @@
<default>affinity:sys-0/node-0/proc-0/eq-1/ex-1/core-0</default>
</attribute>
<attribute>
+ <id>ORDINAL_ID</id>
+ <default>6</default>
+ </attribute>
+ <attribute>
<id>CHIP_UNIT</id>
<default>6</default>
</attribute>
@@ -740,6 +852,10 @@
<default>affinity:sys-0/node-0/proc-0/eq-1/ex-1/core-1</default>
</attribute>
<attribute>
+ <id>ORDINAL_ID</id>
+ <default>7</default>
+ </attribute>
+ <attribute>
<id>CHIP_UNIT</id>
<default>7</default>
</attribute>
@@ -763,6 +879,10 @@
<default>affinity:sys-0/node-0/proc-0/eq-2/ex-0/core-0</default>
</attribute>
<attribute>
+ <id>ORDINAL_ID</id>
+ <default>8</default>
+ </attribute>
+ <attribute>
<id>CHIP_UNIT</id>
<default>8</default>
</attribute>
@@ -785,6 +905,10 @@
<default>affinity:sys-0/node-0/proc-0/eq-2/ex-0/core-1</default>
</attribute>
<attribute>
+ <id>ORDINAL_ID</id>
+ <default>9</default>
+ </attribute>
+ <attribute>
<id>CHIP_UNIT</id>
<default>9</default>
</attribute>
@@ -808,6 +932,10 @@
<default>affinity:sys-0/node-0/proc-0/eq-2/ex-1/core-0</default>
</attribute>
<attribute>
+ <id>ORDINAL_ID</id>
+ <default>10</default>
+ </attribute>
+ <attribute>
<id>CHIP_UNIT</id>
<default>10</default>
</attribute>
@@ -830,6 +958,10 @@
<default>affinity:sys-0/node-0/proc-0/eq-2/ex-1/core-1</default>
</attribute>
<attribute>
+ <id>ORDINAL_ID</id>
+ <default>11</default>
+ </attribute>
+ <attribute>
<id>CHIP_UNIT</id>
<default>11</default>
</attribute>
@@ -853,6 +985,10 @@
<default>affinity:sys-0/node-0/proc-0/eq-3/ex-0/core-0</default>
</attribute>
<attribute>
+ <id>ORDINAL_ID</id>
+ <default>12</default>
+ </attribute>
+ <attribute>
<id>CHIP_UNIT</id>
<default>12</default>
</attribute>
@@ -875,6 +1011,10 @@
<default>affinity:sys-0/node-0/proc-0/eq-3/ex-0/core-1</default>
</attribute>
<attribute>
+ <id>ORDINAL_ID</id>
+ <default>13</default>
+ </attribute>
+ <attribute>
<id>CHIP_UNIT</id>
<default>13</default>
</attribute>
@@ -898,6 +1038,10 @@
<default>affinity:sys-0/node-0/proc-0/eq-3/ex-1/core-0</default>
</attribute>
<attribute>
+ <id>ORDINAL_ID</id>
+ <default>14</default>
+ </attribute>
+ <attribute>
<id>CHIP_UNIT</id>
<default>14</default>
</attribute>
@@ -920,6 +1064,10 @@
<default>affinity:sys-0/node-0/proc-0/eq-3/ex-1/core-1</default>
</attribute>
<attribute>
+ <id>ORDINAL_ID</id>
+ <default>15</default>
+ </attribute>
+ <attribute>
<id>CHIP_UNIT</id>
<default>15</default>
</attribute>
@@ -943,6 +1091,10 @@
<default>affinity:sys-0/node-0/proc-0/eq-4/ex-0/core-0</default>
</attribute>
<attribute>
+ <id>ORDINAL_ID</id>
+ <default>16</default>
+ </attribute>
+ <attribute>
<id>CHIP_UNIT</id>
<default>16</default>
</attribute>
@@ -965,6 +1117,10 @@
<default>affinity:sys-0/node-0/proc-0/eq-4/ex-0/core-1</default>
</attribute>
<attribute>
+ <id>ORDINAL_ID</id>
+ <default>17</default>
+ </attribute>
+ <attribute>
<id>CHIP_UNIT</id>
<default>17</default>
</attribute>
@@ -988,6 +1144,10 @@
<default>affinity:sys-0/node-0/proc-0/eq-4/ex-1/core-0</default>
</attribute>
<attribute>
+ <id>ORDINAL_ID</id>
+ <default>18</default>
+ </attribute>
+ <attribute>
<id>CHIP_UNIT</id>
<default>18</default>
</attribute>
@@ -1010,6 +1170,10 @@
<default>affinity:sys-0/node-0/proc-0/eq-4/ex-1/core-1</default>
</attribute>
<attribute>
+ <id>ORDINAL_ID</id>
+ <default>19</default>
+ </attribute>
+ <attribute>
<id>CHIP_UNIT</id>
<default>19</default>
</attribute>
@@ -1033,6 +1197,10 @@
<default>affinity:sys-0/node-0/proc-0/eq-5/ex-0/core-0</default>
</attribute>
<attribute>
+ <id>ORDINAL_ID</id>
+ <default>20</default>
+ </attribute>
+ <attribute>
<id>CHIP_UNIT</id>
<default>20</default>
</attribute>
@@ -1055,6 +1223,10 @@
<default>affinity:sys-0/node-0/proc-0/eq-5/ex-0/core-1</default>
</attribute>
<attribute>
+ <id>ORDINAL_ID</id>
+ <default>21</default>
+ </attribute>
+ <attribute>
<id>CHIP_UNIT</id>
<default>21</default>
</attribute>
@@ -1078,6 +1250,10 @@
<default>affinity:sys-0/node-0/proc-0/eq-5/ex-1/core-0</default>
</attribute>
<attribute>
+ <id>ORDINAL_ID</id>
+ <default>22</default>
+ </attribute>
+ <attribute>
<id>CHIP_UNIT</id>
<default>22</default>
</attribute>
@@ -1100,6 +1276,10 @@
<default>affinity:sys-0/node-0/proc-0/eq-5/ex-1/core-1</default>
</attribute>
<attribute>
+ <id>ORDINAL_ID</id>
+ <default>23</default>
+ </attribute>
+ <attribute>
<id>CHIP_UNIT</id>
<default>23</default>
</attribute>
@@ -1123,6 +1303,10 @@
<default>affinity:sys-0/node-0/proc-0/mcs-0</default>
</attribute>
<attribute>
+ <id>ORDINAL_ID</id>
+ <default>0</default>
+ </attribute>
+ <attribute>
<id>CHIP_UNIT</id>
<default>0</default>
</attribute>
@@ -1151,6 +1335,10 @@
<default>affinity:sys-0/node-0/proc-0/mcs-1</default>
</attribute>
<attribute>
+ <id>ORDINAL_ID</id>
+ <default>1</default>
+ </attribute>
+ <attribute>
<id>CHIP_UNIT</id>
<default>1</default>
</attribute>
@@ -1179,6 +1367,10 @@
<default>affinity:sys-0/node-0/proc-0/mcs-2</default>
</attribute>
<attribute>
+ <id>ORDINAL_ID</id>
+ <default>2</default>
+ </attribute>
+ <attribute>
<id>CHIP_UNIT</id>
<default>2</default>
</attribute>
@@ -1207,6 +1399,10 @@
<default>affinity:sys-0/node-0/proc-0/mcs-3</default>
</attribute>
<attribute>
+ <id>ORDINAL_ID</id>
+ <default>3</default>
+ </attribute>
+ <attribute>
<id>CHIP_UNIT</id>
<default>3</default>
</attribute>
@@ -1236,6 +1432,10 @@
<default>affinity:sys-0/node-0/proc-0/mcs-0/mca-0</default>
</attribute>
<attribute>
+ <id>ORDINAL_ID</id>
+ <default>0</default>
+ </attribute>
+ <attribute>
<id>CHIP_UNIT</id>
<default>0</default>
</attribute>
@@ -1258,6 +1458,10 @@
<default>affinity:sys-0/node-0/proc-0/mcs-0/mca-1</default>
</attribute>
<attribute>
+ <id>ORDINAL_ID</id>
+ <default>1</default>
+ </attribute>
+ <attribute>
<id>CHIP_UNIT</id>
<default>1</default>
</attribute>
@@ -1281,6 +1485,10 @@
<default>affinity:sys-0/node-0/proc-0/mcs-1/mca-0</default>
</attribute>
<attribute>
+ <id>ORDINAL_ID</id>
+ <default>2</default>
+ </attribute>
+ <attribute>
<id>CHIP_UNIT</id>
<default>2</default>
</attribute>
@@ -1303,6 +1511,10 @@
<default>affinity:sys-0/node-0/proc-0/mcs-1/mca-1</default>
</attribute>
<attribute>
+ <id>ORDINAL_ID</id>
+ <default>3</default>
+ </attribute>
+ <attribute>
<id>CHIP_UNIT</id>
<default>3</default>
</attribute>
@@ -1326,6 +1538,10 @@
<default>affinity:sys-0/node-0/proc-0/mcs-2/mca-0</default>
</attribute>
<attribute>
+ <id>ORDINAL_ID</id>
+ <default>4</default>
+ </attribute>
+ <attribute>
<id>CHIP_UNIT</id>
<default>4</default>
</attribute>
@@ -1348,6 +1564,10 @@
<default>affinity:sys-0/node-0/proc-0/mcs-2/mca-1</default>
</attribute>
<attribute>
+ <id>ORDINAL_ID</id>
+ <default>5</default>
+ </attribute>
+ <attribute>
<id>CHIP_UNIT</id>
<default>5</default>
</attribute>
@@ -1371,6 +1591,10 @@
<default>affinity:sys-0/node-0/proc-0/mcs-3/mca-0</default>
</attribute>
<attribute>
+ <id>ORDINAL_ID</id>
+ <default>6</default>
+ </attribute>
+ <attribute>
<id>CHIP_UNIT</id>
<default>6</default>
</attribute>
@@ -1393,6 +1617,10 @@
<default>affinity:sys-0/node-0/proc-0/mcs-3/mca-1</default>
</attribute>
<attribute>
+ <id>ORDINAL_ID</id>
+ <default>7</default>
+ </attribute>
+ <attribute>
<id>CHIP_UNIT</id>
<default>7</default>
</attribute>
@@ -1416,6 +1644,10 @@
<default>affinity:sys-0/node-0/proc-0/mcbist-0</default>
</attribute>
<attribute>
+ <id>ORDINAL_ID</id>
+ <default>0</default>
+ </attribute>
+ <attribute>
<id>CHIP_UNIT</id>
<default>0</default>
</attribute>
@@ -1438,6 +1670,10 @@
<default>affinity:sys-0/node-0/proc-0/mcbist-1</default>
</attribute>
<attribute>
+ <id>ORDINAL_ID</id>
+ <default>1</default>
+ </attribute>
+ <attribute>
<id>CHIP_UNIT</id>
<default>1</default>
</attribute>
@@ -1461,6 +1697,10 @@
<default>affinity:sys-0/node-0/proc-0/pec-0</default>
</attribute>
<attribute>
+ <id>ORDINAL_ID</id>
+ <default>0</default>
+ </attribute>
+ <attribute>
<id>CHIP_UNIT</id>
<default>0</default>
</attribute>
@@ -1483,6 +1723,10 @@
<default>affinity:sys-0/node-0/proc-0/pec-1</default>
</attribute>
<attribute>
+ <id>ORDINAL_ID</id>
+ <default>1</default>
+ </attribute>
+ <attribute>
<id>CHIP_UNIT</id>
<default>1</default>
</attribute>
@@ -1505,6 +1749,10 @@
<default>affinity:sys-0/node-0/proc-0/pec-2</default>
</attribute>
<attribute>
+ <id>ORDINAL_ID</id>
+ <default>2</default>
+ </attribute>
+ <attribute>
<id>CHIP_UNIT</id>
<default>2</default>
</attribute>
@@ -1528,6 +1776,10 @@
<default>affinity:sys-0/node-0/proc-0/pec-0/phb-0</default>
</attribute>
<attribute>
+ <id>ORDINAL_ID</id>
+ <default>0</default>
+ </attribute>
+ <attribute>
<id>CHIP_UNIT</id>
<default>0</default>
</attribute>
@@ -1551,6 +1803,10 @@
<default>affinity:sys-0/node-0/proc-0/pec-1/phb-0</default>
</attribute>
<attribute>
+ <id>ORDINAL_ID</id>
+ <default>1</default>
+ </attribute>
+ <attribute>
<id>CHIP_UNIT</id>
<default>1</default>
</attribute>
@@ -1573,6 +1829,10 @@
<default>affinity:sys-0/node-0/proc-0/pec-1/phb-1</default>
</attribute>
<attribute>
+ <id>ORDINAL_ID</id>
+ <default>2</default>
+ </attribute>
+ <attribute>
<id>CHIP_UNIT</id>
<default>2</default>
</attribute>
@@ -1596,6 +1856,10 @@
<default>affinity:sys-0/node-0/proc-0/pec-2/phb-0</default>
</attribute>
<attribute>
+ <id>ORDINAL_ID</id>
+ <default>3</default>
+ </attribute>
+ <attribute>
<id>CHIP_UNIT</id>
<default>3</default>
</attribute>
@@ -1618,6 +1882,10 @@
<default>affinity:sys-0/node-0/proc-0/pec-2/phb-1</default>
</attribute>
<attribute>
+ <id>ORDINAL_ID</id>
+ <default>4</default>
+ </attribute>
+ <attribute>
<id>CHIP_UNIT</id>
<default>4</default>
</attribute>
@@ -1640,6 +1908,10 @@
<default>affinity:sys-0/node-0/proc-0/pec-2/phb-2</default>
</attribute>
<attribute>
+ <id>ORDINAL_ID</id>
+ <default>5</default>
+ </attribute>
+ <attribute>
<id>CHIP_UNIT</id>
<default>5</default>
</attribute>
@@ -1663,6 +1935,10 @@
<default>affinity:sys-0/node-0/proc-0/obus-0</default>
</attribute>
<attribute>
+ <id>ORDINAL_ID</id>
+ <default>0</default>
+ </attribute>
+ <attribute>
<id>CHIP_UNIT</id>
<default>0</default>
</attribute>
@@ -1685,6 +1961,10 @@
<default>affinity:sys-0/node-0/proc-0/obus-3</default>
</attribute>
<attribute>
+ <id>ORDINAL_ID</id>
+ <default>1</default>
+ </attribute>
+ <attribute>
<id>CHIP_UNIT</id>
<default>3</default>
</attribute>
@@ -1708,6 +1988,10 @@
<default>affinity:sys-0/node-0/proc-0/nv-0</default>
</attribute>
<attribute>
+ <id>ORDINAL_ID</id>
+ <default>0</default>
+ </attribute>
+ <attribute>
<id>CHIP_UNIT</id>
<default>0</default>
</attribute>
@@ -1730,6 +2014,10 @@
<default>affinity:sys-0/node-0/proc-0/nv-1</default>
</attribute>
<attribute>
+ <id>ORDINAL_ID</id>
+ <default>1</default>
+ </attribute>
+ <attribute>
<id>CHIP_UNIT</id>
<default>1</default>
</attribute>
@@ -1754,6 +2042,10 @@
<default>affinity:sys-0/node-0/proc-0/ppe-0</default>
</attribute>
<attribute>
+ <id>ORDINAL_ID</id>
+ <default>0</default>
+ </attribute>
+ <attribute>
<id>CHIP_UNIT</id>
<default>0</default>
</attribute>
@@ -1772,6 +2064,10 @@
<default>affinity:sys-0/node-0/proc-0/ppe-1</default>
</attribute>
<attribute>
+ <id>ORDINAL_ID</id>
+ <default>1</default>
+ </attribute>
+ <attribute>
<id>CHIP_UNIT</id>
<default>1</default>
</attribute>
@@ -1796,6 +2092,10 @@
<default>affinity:sys-0/node-0/proc-0/perv-1</default>
</attribute>
<attribute>
+ <id>ORDINAL_ID</id>
+ <default>0</default>
+ </attribute>
+ <attribute>
<id>CHIP_UNIT</id>
<default>1</default>
</attribute>
@@ -1818,6 +2118,10 @@
<default>affinity:sys-0/node-0/proc-0/perv-2</default>
</attribute>
<attribute>
+ <id>ORDINAL_ID</id>
+ <default>1</default>
+ </attribute>
+ <attribute>
<id>CHIP_UNIT</id>
<default>2</default>
</attribute>
@@ -1840,6 +2144,10 @@
<default>affinity:sys-0/node-0/proc-0/perv-3</default>
</attribute>
<attribute>
+ <id>ORDINAL_ID</id>
+ <default>2</default>
+ </attribute>
+ <attribute>
<id>CHIP_UNIT</id>
<default>3</default>
</attribute>
@@ -1862,6 +2170,10 @@
<default>affinity:sys-0/node-0/proc-0/perv-4</default>
</attribute>
<attribute>
+ <id>ORDINAL_ID</id>
+ <default>3</default>
+ </attribute>
+ <attribute>
<id>CHIP_UNIT</id>
<default>4</default>
</attribute>
@@ -1884,6 +2196,10 @@
<default>affinity:sys-0/node-0/proc-0/perv-5</default>
</attribute>
<attribute>
+ <id>ORDINAL_ID</id>
+ <default>4</default>
+ </attribute>
+ <attribute>
<id>CHIP_UNIT</id>
<default>5</default>
</attribute>
@@ -1906,6 +2222,10 @@
<default>affinity:sys-0/node-0/proc-0/perv-6</default>
</attribute>
<attribute>
+ <id>ORDINAL_ID</id>
+ <default>5</default>
+ </attribute>
+ <attribute>
<id>CHIP_UNIT</id>
<default>6</default>
</attribute>
@@ -1928,6 +2248,10 @@
<default>affinity:sys-0/node-0/proc-0/perv-7</default>
</attribute>
<attribute>
+ <id>ORDINAL_ID</id>
+ <default>6</default>
+ </attribute>
+ <attribute>
<id>CHIP_UNIT</id>
<default>7</default>
</attribute>
@@ -1950,6 +2274,10 @@
<default>affinity:sys-0/node-0/proc-0/perv-8</default>
</attribute>
<attribute>
+ <id>ORDINAL_ID</id>
+ <default>7</default>
+ </attribute>
+ <attribute>
<id>CHIP_UNIT</id>
<default>8</default>
</attribute>
@@ -1972,6 +2300,10 @@
<default>affinity:sys-0/node-0/proc-0/perv-9</default>
</attribute>
<attribute>
+ <id>ORDINAL_ID</id>
+ <default>8</default>
+ </attribute>
+ <attribute>
<id>CHIP_UNIT</id>
<default>9</default>
</attribute>
@@ -1994,6 +2326,10 @@
<default>affinity:sys-0/node-0/proc-0/perv-12</default>
</attribute>
<attribute>
+ <id>ORDINAL_ID</id>
+ <default>9</default>
+ </attribute>
+ <attribute>
<id>CHIP_UNIT</id>
<default>12</default>
</attribute>
@@ -2016,6 +2352,10 @@
<default>affinity:sys-0/node-0/proc-0/perv-13</default>
</attribute>
<attribute>
+ <id>ORDINAL_ID</id>
+ <default>10</default>
+ </attribute>
+ <attribute>
<id>CHIP_UNIT</id>
<default>13</default>
</attribute>
@@ -2038,6 +2378,10 @@
<default>affinity:sys-0/node-0/proc-0/perv-14</default>
</attribute>
<attribute>
+ <id>ORDINAL_ID</id>
+ <default>11</default>
+ </attribute>
+ <attribute>
<id>CHIP_UNIT</id>
<default>14</default>
</attribute>
@@ -2060,6 +2404,10 @@
<default>affinity:sys-0/node-0/proc-0/perv-15</default>
</attribute>
<attribute>
+ <id>ORDINAL_ID</id>
+ <default>12</default>
+ </attribute>
+ <attribute>
<id>CHIP_UNIT</id>
<default>15</default>
</attribute>
@@ -2082,6 +2430,10 @@
<default>affinity:sys-0/node-0/proc-0/perv-16</default>
</attribute>
<attribute>
+ <id>ORDINAL_ID</id>
+ <default>13</default>
+ </attribute>
+ <attribute>
<id>CHIP_UNIT</id>
<default>16</default>
</attribute>
@@ -2104,6 +2456,10 @@
<default>affinity:sys-0/node-0/proc-0/perv-17</default>
</attribute>
<attribute>
+ <id>ORDINAL_ID</id>
+ <default>14</default>
+ </attribute>
+ <attribute>
<id>CHIP_UNIT</id>
<default>17</default>
</attribute>
@@ -2126,6 +2482,10 @@
<default>affinity:sys-0/node-0/proc-0/perv-18</default>
</attribute>
<attribute>
+ <id>ORDINAL_ID</id>
+ <default>15</default>
+ </attribute>
+ <attribute>
<id>CHIP_UNIT</id>
<default>18</default>
</attribute>
@@ -2148,6 +2508,10 @@
<default>affinity:sys-0/node-0/proc-0/perv-19</default>
</attribute>
<attribute>
+ <id>ORDINAL_ID</id>
+ <default>16</default>
+ </attribute>
+ <attribute>
<id>CHIP_UNIT</id>
<default>19</default>
</attribute>
@@ -2170,6 +2534,10 @@
<default>affinity:sys-0/node-0/proc-0/perv-20</default>
</attribute>
<attribute>
+ <id>ORDINAL_ID</id>
+ <default>17</default>
+ </attribute>
+ <attribute>
<id>CHIP_UNIT</id>
<default>20</default>
</attribute>
@@ -2192,6 +2560,10 @@
<default>affinity:sys-0/node-0/proc-0/perv-21</default>
</attribute>
<attribute>
+ <id>ORDINAL_ID</id>
+ <default>18</default>
+ </attribute>
+ <attribute>
<id>CHIP_UNIT</id>
<default>21</default>
</attribute>
@@ -2214,6 +2586,10 @@
<default>affinity:sys-0/node-0/proc-0/perv-32</default>
</attribute>
<attribute>
+ <id>ORDINAL_ID</id>
+ <default>19</default>
+ </attribute>
+ <attribute>
<id>CHIP_UNIT</id>
<default>32</default>
</attribute>
@@ -2236,6 +2612,10 @@
<default>affinity:sys-0/node-0/proc-0/perv-33</default>
</attribute>
<attribute>
+ <id>ORDINAL_ID</id>
+ <default>20</default>
+ </attribute>
+ <attribute>
<id>CHIP_UNIT</id>
<default>33</default>
</attribute>
@@ -2258,6 +2638,10 @@
<default>affinity:sys-0/node-0/proc-0/perv-34</default>
</attribute>
<attribute>
+ <id>ORDINAL_ID</id>
+ <default>21</default>
+ </attribute>
+ <attribute>
<id>CHIP_UNIT</id>
<default>34</default>
</attribute>
@@ -2280,6 +2664,10 @@
<default>affinity:sys-0/node-0/proc-0/perv-35</default>
</attribute>
<attribute>
+ <id>ORDINAL_ID</id>
+ <default>22</default>
+ </attribute>
+ <attribute>
<id>CHIP_UNIT</id>
<default>35</default>
</attribute>
@@ -2302,6 +2690,10 @@
<default>affinity:sys-0/node-0/proc-0/perv-36</default>
</attribute>
<attribute>
+ <id>ORDINAL_ID</id>
+ <default>23</default>
+ </attribute>
+ <attribute>
<id>CHIP_UNIT</id>
<default>36</default>
</attribute>
@@ -2324,6 +2716,10 @@
<default>affinity:sys-0/node-0/proc-0/perv-37</default>
</attribute>
<attribute>
+ <id>ORDINAL_ID</id>
+ <default>24</default>
+ </attribute>
+ <attribute>
<id>CHIP_UNIT</id>
<default>37</default>
</attribute>
@@ -2346,6 +2742,10 @@
<default>affinity:sys-0/node-0/proc-0/perv-38</default>
</attribute>
<attribute>
+ <id>ORDINAL_ID</id>
+ <default>25</default>
+ </attribute>
+ <attribute>
<id>CHIP_UNIT</id>
<default>38</default>
</attribute>
@@ -2368,6 +2768,10 @@
<default>affinity:sys-0/node-0/proc-0/perv-39</default>
</attribute>
<attribute>
+ <id>ORDINAL_ID</id>
+ <default>26</default>
+ </attribute>
+ <attribute>
<id>CHIP_UNIT</id>
<default>39</default>
</attribute>
@@ -2390,6 +2794,10 @@
<default>affinity:sys-0/node-0/proc-0/perv-40</default>
</attribute>
<attribute>
+ <id>ORDINAL_ID</id>
+ <default>27</default>
+ </attribute>
+ <attribute>
<id>CHIP_UNIT</id>
<default>40</default>
</attribute>
@@ -2412,6 +2820,10 @@
<default>affinity:sys-0/node-0/proc-0/perv-41</default>
</attribute>
<attribute>
+ <id>ORDINAL_ID</id>
+ <default>28</default>
+ </attribute>
+ <attribute>
<id>CHIP_UNIT</id>
<default>41</default>
</attribute>
@@ -2434,6 +2846,10 @@
<default>affinity:sys-0/node-0/proc-0/perv-42</default>
</attribute>
<attribute>
+ <id>ORDINAL_ID</id>
+ <default>29</default>
+ </attribute>
+ <attribute>
<id>CHIP_UNIT</id>
<default>42</default>
</attribute>
@@ -2456,6 +2872,10 @@
<default>affinity:sys-0/node-0/proc-0/perv-43</default>
</attribute>
<attribute>
+ <id>ORDINAL_ID</id>
+ <default>30</default>
+ </attribute>
+ <attribute>
<id>CHIP_UNIT</id>
<default>43</default>
</attribute>
@@ -2478,6 +2898,10 @@
<default>affinity:sys-0/node-0/proc-0/perv-44</default>
</attribute>
<attribute>
+ <id>ORDINAL_ID</id>
+ <default>31</default>
+ </attribute>
+ <attribute>
<id>CHIP_UNIT</id>
<default>44</default>
</attribute>
@@ -2500,6 +2924,10 @@
<default>affinity:sys-0/node-0/proc-0/perv-45</default>
</attribute>
<attribute>
+ <id>ORDINAL_ID</id>
+ <default>32</default>
+ </attribute>
+ <attribute>
<id>CHIP_UNIT</id>
<default>45</default>
</attribute>
@@ -2522,6 +2950,10 @@
<default>affinity:sys-0/node-0/proc-0/perv-46</default>
</attribute>
<attribute>
+ <id>ORDINAL_ID</id>
+ <default>33</default>
+ </attribute>
+ <attribute>
<id>CHIP_UNIT</id>
<default>46</default>
</attribute>
@@ -2544,6 +2976,10 @@
<default>affinity:sys-0/node-0/proc-0/perv-47</default>
</attribute>
<attribute>
+ <id>ORDINAL_ID</id>
+ <default>34</default>
+ </attribute>
+ <attribute>
<id>CHIP_UNIT</id>
<default>47</default>
</attribute>
@@ -2566,6 +3002,10 @@
<default>affinity:sys-0/node-0/proc-0/perv-48</default>
</attribute>
<attribute>
+ <id>ORDINAL_ID</id>
+ <default>35</default>
+ </attribute>
+ <attribute>
<id>CHIP_UNIT</id>
<default>48</default>
</attribute>
@@ -2588,6 +3028,10 @@
<default>affinity:sys-0/node-0/proc-0/perv-49</default>
</attribute>
<attribute>
+ <id>ORDINAL_ID</id>
+ <default>36</default>
+ </attribute>
+ <attribute>
<id>CHIP_UNIT</id>
<default>49</default>
</attribute>
@@ -2610,6 +3054,10 @@
<default>affinity:sys-0/node-0/proc-0/perv-50</default>
</attribute>
<attribute>
+ <id>ORDINAL_ID</id>
+ <default>37</default>
+ </attribute>
+ <attribute>
<id>CHIP_UNIT</id>
<default>50</default>
</attribute>
@@ -2632,6 +3080,10 @@
<default>affinity:sys-0/node-0/proc-0/perv-51</default>
</attribute>
<attribute>
+ <id>ORDINAL_ID</id>
+ <default>38</default>
+ </attribute>
+ <attribute>
<id>CHIP_UNIT</id>
<default>51</default>
</attribute>
@@ -2654,6 +3106,10 @@
<default>affinity:sys-0/node-0/proc-0/perv-52</default>
</attribute>
<attribute>
+ <id>ORDINAL_ID</id>
+ <default>39</default>
+ </attribute>
+ <attribute>
<id>CHIP_UNIT</id>
<default>52</default>
</attribute>
@@ -2676,6 +3132,10 @@
<default>affinity:sys-0/node-0/proc-0/perv-53</default>
</attribute>
<attribute>
+ <id>ORDINAL_ID</id>
+ <default>40</default>
+ </attribute>
+ <attribute>
<id>CHIP_UNIT</id>
<default>53</default>
</attribute>
@@ -2698,6 +3158,10 @@
<default>affinity:sys-0/node-0/proc-0/perv-54</default>
</attribute>
<attribute>
+ <id>ORDINAL_ID</id>
+ <default>41</default>
+ </attribute>
+ <attribute>
<id>CHIP_UNIT</id>
<default>54</default>
</attribute>
@@ -2720,6 +3184,10 @@
<default>affinity:sys-0/node-0/proc-0/perv-55</default>
</attribute>
<attribute>
+ <id>ORDINAL_ID</id>
+ <default>42</default>
+ </attribute>
+ <attribute>
<id>CHIP_UNIT</id>
<default>55</default>
</attribute>
@@ -2740,6 +3208,10 @@
<default>affinity:sys-0/node-0/proc-0/xbus-1</default>
</attribute>
<attribute>
+ <id>ORDINAL_ID</id>
+ <default>0</default>
+ </attribute>
+ <attribute>
<id>CHIP_UNIT</id>
<default>1</default>
</attribute>
@@ -2766,6 +3238,10 @@
<default>affinity:sys-0/node-0/proc-0/xbus-2</default>
</attribute>
<attribute>
+ <id>ORDINAL_ID</id>
+ <default>1</default>
+ </attribute>
+ <attribute>
<id>CHIP_UNIT</id>
<default>2</default>
</attribute>
@@ -2790,7 +3266,11 @@
</attribute>
<attribute>
<id>AFFINITY_PATH</id>
- <default>physical:sys-0/node-0/proc-0/capp-0</default>
+ <default>affinity:sys-0/node-0/proc-0/capp-0</default>
+ </attribute>
+ <attribute>
+ <id>ORDINAL_ID</id>
+ <default>0</default>
</attribute>
<attribute>
<id>CHIP_UNIT</id>
@@ -2812,7 +3292,11 @@
</attribute>
<attribute>
<id>AFFINITY_PATH</id>
- <default>physical:sys-0/node-0/proc-0/capp-1</default>
+ <default>affinity:sys-0/node-0/proc-0/capp-1</default>
+ </attribute>
+ <attribute>
+ <id>ORDINAL_ID</id>
+ <default>1</default>
</attribute>
<attribute>
<id>CHIP_UNIT</id>
@@ -2838,6 +3322,10 @@
<default>affinity:sys-0/node-0/proc-0/sbe-0</default>
</attribute>
<attribute>
+ <id>ORDINAL_ID</id>
+ <default>0</default>
+ </attribute>
+ <attribute>
<id>CHIP_UNIT</id>
<default>0</default>
</attribute>
@@ -2858,9 +3346,35 @@
<default>affinity:sys-0/node-0/proc-0/occ-0</default>
</attribute>
<attribute>
+ <id>ORDINAL_ID</id>
+ <default>0</default>
+ </attribute>
+ <attribute>
<id>OCC_MASTER_CAPABLE</id>
<default>0</default>
</attribute>
</targetInstance>
+<targetInstance>
+ <id>sys0node0proc0nx0</id>
+ <type>unit-nx-power9</type>
+ <attribute><id>HUID</id><default>0x001E0000</default></attribute>
+ <attribute>
+ <id>PHYS_PATH</id>
+ <default>physical:sys-0/node-0/proc-0/nx-0</default>
+ </attribute>
+ <attribute>
+ <id>AFFINITY_PATH</id>
+ <default>physical:sys-0/node-0/proc-0/nx-0</default>
+ </attribute>
+ <attribute>
+ <id>ORDINAL_ID</id>
+ <default>0</default>
+ </attribute>
+ <attribute>
+ <id>CHIP_UNIT</id>
+ <default>0</default>
+ </attribute>
+</targetInstance>
+
</attributes>
diff --git a/src/usr/targeting/runtime/rt_targeting.C b/src/usr/targeting/runtime/rt_targeting.C
index 707be836d..372d2baf4 100644
--- a/src/usr/targeting/runtime/rt_targeting.C
+++ b/src/usr/targeting/runtime/rt_targeting.C
@@ -35,363 +35,140 @@
#include <targeting/common/trace.H>
#include <targeting/common/targreasoncodes.H>
#include <arch/pirformat.H>
-
+#include <runtime/customize_attrs_for_payload.H>
#include <runtime/rt_targeting.H>
+#include <map>
+#include <util/memoize.H>
using namespace TARGETING;
namespace RT_TARG
{
-errlHndl_t procRtTargetError(const TARGETING::Target * i_target)
+errlHndl_t getRtTarget(
+ const TARGETING::Target* i_pTarget,
+ rtChipId_t& o_rtTargetId)
{
- errlHndl_t err = NULL;
- uint32_t huid = get_huid(i_target);
- TRACFCOMP(g_trac_targeting,ERR_MRK
- "No proc target found for target. huid: %08x",
- huid);
- /*@
- * @errortype
- * @moduleid TARG_RT_GET_RT_TARGET
- * @reasoncode TARG_RT_NO_PROC_TARGET
- * @userdata1 HUID of the UNIT target
- * @devdesc No processor target found for the UNIT
- */
- err =
- new ERRORLOG::ErrlEntry(ERRORLOG::ERRL_SEV_INFORMATIONAL,
- TARGETING::TARG_RT_GET_RT_TARGET,
- TARGETING::TARG_RT_NO_PROC_TARGET,
- huid,
- 0,
- true);
-
- ERRORLOG::ErrlUserDetailsTarget(i_target,"Runtime Target").
- addToLog(err);
-
- return err;
-}
-
-
-errlHndl_t getRtTarget(const TARGETING::Target* i_target,
- rtChipId_t &o_chipId)
-{
- errlHndl_t err = NULL;
+ errlHndl_t pError = NULL;
do
{
- if(i_target == TARGETING::MASTER_PROCESSOR_CHIP_TARGET_SENTINEL)
+ if(i_pTarget == TARGETING::MASTER_PROCESSOR_CHIP_TARGET_SENTINEL)
{
TARGETING::Target* masterProcChip = NULL;
TARGETING::targetService().
masterProcChipTargetHandle(masterProcChip);
-
- i_target = masterProcChip;
+ i_pTarget = masterProcChip;
}
- TARGETING::TYPE target_type = i_target->getAttr<TARGETING::ATTR_TYPE>();
-
- if(target_type == TARGETING::TYPE_PROC)
- {
- uint32_t fabId =
- i_target->getAttr<TARGETING::ATTR_FABRIC_GROUP_ID>();
-
- uint32_t procPos =
- i_target->getAttr<TARGETING::ATTR_FABRIC_CHIP_ID>();
-
- o_chipId = PIR_t::createChipId( fabId, procPos );
- }
- else if( target_type == TARGETING::TYPE_MEMBUF)
+ auto hbrtHypId = RUNTIME::HBRT_HYP_ID_UNKNOWN;
+ if( (!i_pTarget->tryGetAttr<TARGETING::ATTR_HBRT_HYP_ID>(hbrtHypId))
+ || (hbrtHypId == RUNTIME::HBRT_HYP_ID_UNKNOWN))
{
- //MEMBUF
- // 0b1000.0000.0000.0000.0000.0GGG.GCCC.MMMM
- // where GGGG is group, CCC is chip, MMMM is memory channel
- //
- TARGETING::TargetHandleList targetList;
-
- getParentAffinityTargets(targetList,
- i_target,
- TARGETING::CLASS_UNIT,
- TARGETING::TYPE_MCS);
-
- if( targetList.empty() )
- {
- uint32_t huid = get_huid(i_target);
- TRACFCOMP(g_trac_targeting,ERR_MRK
- "getRtTarget: No target found for huid: %08x",
- huid);
- /*@
- * @errortype
- * @moduleid TARG_RT_GET_RT_TARGET
- * @reasoncode TARG_RT_UNIT_TARGET_NOT_FOUND
- * @userdata1 HUID of given MEMBUF target
- * @devdesc No MCS target(s) found for the
- * given MEMBUF target
- */
- err =
- new ERRORLOG::ErrlEntry
- (ERRORLOG::ERRL_SEV_INFORMATIONAL,
- TARGETING::TARG_RT_GET_RT_TARGET,
- TARGETING::TARG_RT_UNIT_TARGET_NOT_FOUND,
- huid,
- 0,
- true);
-
- ERRORLOG::ErrlUserDetailsTarget(i_target,"Runtime Target").
- addToLog(err);
-
- break;
- }
-
- TARGETING::Target * target = targetList[0];
- uint32_t pos = target->getAttr<TARGETING::ATTR_CHIP_UNIT>();
-
- targetList.clear();
- getParentAffinityTargets(targetList,
- target,
- TARGETING::CLASS_CHIP,
- TARGETING::TYPE_PROC);
-
- if(targetList.empty())
- {
- err = procRtTargetError(target);
- break;
- }
-
- TARGETING::Target * proc_target = targetList[0];
-
- err = getRtTarget(proc_target, o_chipId);
- if(err)
- {
- break;
- }
-
- o_chipId = (o_chipId << MEMBUF_ID_SHIFT);
- o_chipId += pos;
- o_chipId |= MEMBUF_TYPE;
- }
- else if(target_type == TARGETING::TYPE_CORE)
- {
- // CORE
- // 0b0100.0000.0000.0000.0000.GGGG.CCCP.PPPP
- // GGGG is group, CCC is chip, PPPPP is core
- uint32_t pos = i_target->getAttr<TARGETING::ATTR_CHIP_UNIT>();
-
- const TARGETING::Target * proc_target = getParentChip(i_target);
- if(proc_target == NULL)
- {
- err = procRtTargetError(i_target);
- break;
- }
-
- err = getRtTarget(proc_target, o_chipId);
- if(err)
- {
- break;
- }
-
- o_chipId = PIR_t::createCoreId(o_chipId,pos);
- o_chipId |= CORE_TYPE;
- }
- else
- {
- uint32_t huid = get_huid(i_target);
- TRACFCOMP(g_trac_targeting,ERR_MRK
- "Runtime target type %d not supported."
- " huid: %08x",
- target_type,
- huid);
+ auto huid = get_huid(i_pTarget);
+ auto targetingTargetType =
+ i_pTarget->getAttr<TARGETING::ATTR_TYPE>();
+ TRACFCOMP(g_trac_targeting, ERR_MRK
+ "Targeting target type of 0x%08X not supported. "
+ "HUID: 0x%08X",
+ targetingTargetType,
+ huid);
/*@
* @errortype
- * @moduleid TARG_RT_GET_RT_TARGET
- * @reasoncode TARG_RT_TARGET_TYPE_NOT_SUPPORTED
- * @userdata1 HUID of the target
- * @userdata2 target_type
- * @devdesc Target type not supported by HBRT.
+ * @moduleid TARG_RT_GET_RT_TARGET
+ * @reasoncode TARG_RT_TARGET_TYPE_NOT_SUPPORTED
+ * @userdata1 Target's HUID
+ * @userdata2 target's targeting type
+ * @devdesc Targeting target's type not supported by runtime
+ * code
*/
- err =
- new ERRORLOG::ErrlEntry
- (ERRORLOG::ERRL_SEV_INFORMATIONAL,
- TARGETING::TARG_RT_GET_RT_TARGET,
- TARGETING::TARG_RT_TARGET_TYPE_NOT_SUPPORTED,
- huid,
- target_type,
- true);
-
- ERRORLOG::ErrlUserDetailsTarget(i_target,"Runtime Target").
- addToLog(err);
+ pError = new ERRORLOG::ErrlEntry(
+ ERRORLOG::ERRL_SEV_INFORMATIONAL,
+ TARGETING::TARG_RT_GET_RT_TARGET,
+ TARGETING::TARG_RT_TARGET_TYPE_NOT_SUPPORTED,
+ huid,
+ targetingTargetType,
+ true);
+
+ ERRORLOG::ErrlUserDetailsTarget(i_pTarget,"Targeting Target").
+ addToLog(pError);
}
+
+ o_rtTargetId = hbrtHypId;
+
} while(0);
- return err;
+ return pError;
}
-
-errlHndl_t getHbTarget(rtChipId_t i_rt_chip_id,
- TARGETING::Target *& o_target)
+/**
+ * @brief API documentation same as for getHbTarget; this just implements the
+ * core logic (i.e. called when the memoizer doesn't have a cached answer)
+ */
+errlHndl_t _getHbTarget(
+ const rtChipId_t i_rtTargetId,
+ TARGETING::Target*& o_target)
{
- errlHndl_t err = NULL;
- o_target = NULL;
+ errlHndl_t pError = NULL;
do
{
- uint64_t idType = i_rt_chip_id & CHIPID_TYPE_MASK;
-
- if(0 != (idType == MEMBUF_TYPE))
+ // Don't even attempt the lookup if the unknown ID is used
+ TARGETING::TargetHandle_t pTarget = NULL;
+ if(i_rtTargetId != RUNTIME::HBRT_HYP_ID_UNKNOWN)
{
- //membuf
- uint64_t proc_chip_id = i_rt_chip_id & ~CHIPID_TYPE_MASK;
- uint32_t unitPos = proc_chip_id & MEMBUF_ID_MASK;
- proc_chip_id >>= MEMBUF_ID_SHIFT;
- TARGETING::Target * proc = NULL;
- TARGETING::Target * msc = NULL;
-
- err = getHbTarget(proc_chip_id, proc);
- if(err)
+ for (TARGETING::TargetIterator pIt =
+ TARGETING::targetService().begin();
+ pIt != TARGETING::targetService().end();
+ ++pIt)
{
- break;
- }
-
- PredicateCTM mcsFilter(CLASS_UNIT, TYPE_MCS);
- PredicateAttrVal<ATTR_CHIP_UNIT> unitAttr(unitPos);
- PredicatePostfixExpr mcsUnitFilter;
- mcsUnitFilter.push(&mcsFilter).push(&unitAttr).And();
-
- TargetHandleList target_list;
-
- targetService().getAssociated( target_list,
- proc,
- TargetService::CHILD_BY_AFFINITY,
- TargetService::ALL,
- &mcsUnitFilter);
-
- // should only be one result
- if(target_list.size())
- {
- msc = target_list[0];
-
- target_list.clear();
-
-
- getChildAffinityTargets( target_list,
- msc,
- TARGETING::CLASS_CHIP,
- TARGETING::TYPE_MEMBUF);
-
- // should only be one result
- if(target_list.size())
+ auto rtTargetId = RUNTIME::HBRT_HYP_ID_UNKNOWN;
+ if( ((*pIt)->tryGetAttr<
+ TARGETING::ATTR_HBRT_HYP_ID>(rtTargetId))
+ && (rtTargetId == i_rtTargetId))
{
- o_target = target_list[0];
+ pTarget = (*pIt);
+ break;
}
}
-
- if(o_target == NULL) // no mcs and/or membuf found
- {
- TRACFCOMP(g_trac_targeting,ERR_MRK "getHbTarget: "
- "MCS or MEMBUF target not found for chipId %08lx",
- i_rt_chip_id);
- /*@
- * @errortype
- * @moduleid TARGETING::TARG_RT_GET_HB_TARGET
- * @reasoncode TARG_RT_UNIT_TARGET_NOT_FOUND
- * @userdata1 Runtime chip Id
- * @devdesc No MCS or MEMBUF target(s) found for the
- * given target
- */
- err =
- new ERRORLOG::ErrlEntry
- (ERRORLOG::ERRL_SEV_INFORMATIONAL,
- TARGETING::TARG_RT_GET_HB_TARGET,
- TARGETING::TARG_RT_UNIT_TARGET_NOT_FOUND,
- i_rt_chip_id,
- 0,
- true);
- }
-
- }
- else if(0 != (idType == CORE_TYPE))
- {
- uint64_t core_id = i_rt_chip_id & ~CHIPID_TYPE_MASK;
- uint32_t unitPos = PIR_t::coreFromCoreId(core_id);
- uint64_t chip_id = PIR_t::chipFromCoreId(core_id);
- TARGETING::Target * proc = NULL;
-
- err = getHbTarget(chip_id, proc);
- if(err)
- {
- break;
- }
-
- PredicateCTM exFilter(CLASS_UNIT, TYPE_CORE);
- PredicateAttrVal<ATTR_CHIP_UNIT> unitAttr(unitPos);
- PredicatePostfixExpr exUnitFilter;
- exUnitFilter.push(&exFilter).push(&unitAttr).And();
-
- TargetHandleList target_list;
-
- targetService().getAssociated( target_list,
- proc,
- TargetService::CHILD,
- TargetService::ALL,
- &exUnitFilter);
-
- //Should only be one result
- if(target_list.size())
- {
- o_target = target_list[0];
- }
- // o_target not found caught below..
}
- else if( idType == PROC_TYPE)
- {
- // assume processor chip
- uint32_t fabId = PIR_t::groupFromChipId(i_rt_chip_id);
- uint32_t procPos = PIR_t::chipFromChipId(i_rt_chip_id);
-
- PredicateCTM procFilter(CLASS_CHIP, TYPE_PROC);
- PredicateAttrVal<ATTR_FABRIC_GROUP_ID> nodeFilter(fabId);
- PredicateAttrVal<ATTR_FABRIC_CHIP_ID> chipFilter(procPos);
-
- PredicatePostfixExpr theProc, theAttrs;
- theAttrs.push(&nodeFilter).push(&chipFilter).And();
- theProc.push(&procFilter).push(&theAttrs).And();
-
- TargetRangeFilter procRange(targetService().begin(),
- targetService().end(),
- &theProc);
- if(procRange)
- {
- o_target = *procRange;
- }
- }
-
- if(!err && o_target == NULL)
+ if(pTarget == NULL)
{
- TRACFCOMP( g_trac_targeting,
- ERR_MRK"Can't find HB target for chipId 0x%lx",
- i_rt_chip_id);
+ TRACFCOMP( g_trac_targeting, ERR_MRK
+ "Can't find targeting target for runtime target ID of "
+ "0x%16llX",
+ i_rtTargetId);
/*@
* @errortype
* @moduleid TARGETING::TARG_RT_GET_HB_TARGET
* @reasoncode TARGETING::TARG_RT_TARGET_TYPE_NOT_SUPPORTED
- * @userdata1 runtime procId
+ * @userdata1 Runtime target ID
* @userdata2 0
- * @devdesc Can't find HB Target for chipId provided.
+ * @devdesc Can't find targeting target for given runtime
+ * target ID
*/
- err =
- new ERRORLOG::ErrlEntry
- (
- ERRORLOG::ERRL_SEV_UNRECOVERABLE,
- TARGETING::TARG_RT_GET_HB_TARGET,
- TARGETING::TARG_RT_TARGET_TYPE_NOT_SUPPORTED,
- i_rt_chip_id,
- 0,
- true);
-
+ pError = new ERRORLOG::ErrlEntry(
+ ERRORLOG::ERRL_SEV_UNRECOVERABLE,
+ TARGETING::TARG_RT_GET_HB_TARGET,
+ TARGETING::TARG_RT_TARGET_TYPE_NOT_SUPPORTED,
+ i_rtTargetId,
+ 0,
+ true);
}
+
+ o_target = pTarget;
+
} while(0);
- return err;
+ return pError;
+}
+
+errlHndl_t getHbTarget(
+ const rtChipId_t i_rtTargetId,
+ TARGETING::Target*& o_target)
+{
+ return Util::Memoize::memoize(_getHbTarget,i_rtTargetId,o_target);
}
-}; // namespace
+}; // End namespace RT_TARG
diff --git a/src/usr/testcore/makefile b/src/usr/testcore/makefile
index 328a5bbe7..03def48dd 100644
--- a/src/usr/testcore/makefile
+++ b/src/usr/testcore/makefile
@@ -5,7 +5,9 @@
#
# OpenPOWER HostBoot Project
#
-# COPYRIGHT International Business Machines Corp. 2011,2014
+# Contributors Listed Below - COPYRIGHT 2011,2016
+# [+] International Business Machines Corp.
+#
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -25,6 +27,7 @@ ROOTPATH = ../../..
SUBDIRS += lib.d
SUBDIRS += kernel.d
SUBDIRS += rtloader.d
+SUBDIRS += memoize.d
include ${ROOTPATH}/config.mk
diff --git a/src/usr/testcore/memoize/makefile b/src/usr/testcore/memoize/makefile
new file mode 100644
index 000000000..4f5b804d1
--- /dev/null
+++ b/src/usr/testcore/memoize/makefile
@@ -0,0 +1,31 @@
+# IBM_PROLOG_BEGIN_TAG
+# This is an automatically generated prolog.
+#
+# $Source: src/usr/testcore/memoize/makefile $
+#
+# OpenPOWER HostBoot Project
+#
+# Contributors Listed Below - COPYRIGHT 2016
+# [+] International Business Machines Corp.
+#
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+# implied. See the License for the specific language governing
+# permissions and limitations under the License.
+#
+# IBM_PROLOG_END_TAG
+
+ROOTPATH = ../../../..
+
+MODULE = testmemoize
+TESTS = *.H
+
+include ${ROOTPATH}/config.mk
diff --git a/src/usr/testcore/memoize/test_memoize.H b/src/usr/testcore/memoize/test_memoize.H
new file mode 100644
index 000000000..d3d9af1bf
--- /dev/null
+++ b/src/usr/testcore/memoize/test_memoize.H
@@ -0,0 +1,210 @@
+/* IBM_PROLOG_BEGIN_TAG */
+/* This is an automatically generated prolog. */
+/* */
+/* $Source: src/usr/testcore/memoize/test_memoize.H $ */
+/* */
+/* OpenPOWER HostBoot Project */
+/* */
+/* Contributors Listed Below - COPYRIGHT 2016 */
+/* [+] International Business Machines Corp. */
+/* */
+/* */
+/* Licensed under the Apache License, Version 2.0 (the "License"); */
+/* you may not use this file except in compliance with the License. */
+/* You may obtain a copy of the License at */
+/* */
+/* http://www.apache.org/licenses/LICENSE-2.0 */
+/* */
+/* Unless required by applicable law or agreed to in writing, software */
+/* distributed under the License is distributed on an "AS IS" BASIS, */
+/* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or */
+/* implied. See the License for the specific language governing */
+/* permissions and limitations under the License. */
+/* */
+/* IBM_PROLOG_END_TAG */
+
+#ifndef __TEST_MEMOIZE_H
+#define __TEST_MEMOIZE_H
+
+/**
+ * @file test_memoize.H
+ * @brief Tests memoize utility
+ */
+
+#include <cxxtest/TestSuite.H>
+
+#include <errl/errlmanager.H>
+#include <util/memoize.H>
+#include <runtime/runtime_reasoncodes.H>
+
+int g_accesses = 0;
+
+errlHndl_t _incrementer(int in, int& out)
+{
+ errlHndl_t pError = NULL;
+
+ g_accesses++;
+
+ if(in > 2)
+ {
+ // A junk error log, this combination never occurs elsewhere
+ pError = new ERRORLOG::ErrlEntry(
+ ERRORLOG::ERRL_SEV_INFORMATIONAL,
+ RUNTIME::MOD_CUST_CONF_HBRT_HYP_IDS,
+ RUNTIME::RT_NO_PROC_TARGET,
+ 0,0 );
+ }
+ else
+ {
+ out = in + 1;
+ }
+
+ return pError;
+}
+
+errlHndl_t incrementer(int in, int& out)
+{
+ return Util::Memoize::memoize(
+ _incrementer,in,out);
+}
+
+class MemoizerTest: public CxxTest::TestSuite
+{
+ public:
+
+ void testMemoizer(void)
+ {
+ TS_TRACE( ENTER_MRK
+ "testMemoizer> start" );
+
+ errlHndl_t pError = NULL;
+
+ do {
+
+ int test = 1;
+ int accesses = g_accesses;
+ int result = 0;
+
+ // Should get no error
+ pError = incrementer(test,result);
+ if(pError)
+ {
+ TS_FAIL("testMemoizer> call to memoizer returned error");
+ break;
+ }
+
+ // Should get input + 1 as result
+ if(result != (test+1))
+ {
+ TS_FAIL("testMemoizer> memoizer did not increment the input");
+ break;
+ }
+
+ // Should register an access
+ if(g_accesses != (accesses+1))
+ {
+ TS_FAIL("testMemoizer> real function did not dispatch");
+ break;
+ }
+
+ accesses = g_accesses;
+ test = 1;
+ result = 0;
+ // Should be able to repeat same request with no error
+ pError = incrementer(test,result);
+ if(pError)
+ {
+ TS_FAIL("testMemoizer> call to memoizer returned error");
+ break;
+ }
+
+ // ... and same answer
+ if(result != (test+1))
+ {
+ TS_FAIL("testMemoizer> memoizer did not increment the input");
+ break;
+ }
+
+ // ... and no additional accesses
+ if(g_accesses != accesses)
+ {
+ TS_FAIL("testMemoizer> real function dispatched unexpectedly");
+ break;
+ }
+
+ accesses = g_accesses;
+ test = 3;
+ result = 0;
+ int origResult = 0;
+
+ // Should get an error as using a bad input value
+ pError = incrementer(test,result);
+ if(pError == NULL)
+ {
+ TS_FAIL("testMemoizer> call to memoizer did not return error");
+ break;
+ }
+
+ delete pError;
+ pError = NULL;
+
+ // ... and should register an access
+ if(g_accesses != (accesses+1))
+ {
+ TS_FAIL("testMemoizer> real function did not dispatch");
+ break;
+ }
+
+ // ... and result should have been left as is
+ if(result != origResult)
+ {
+ TS_FAIL("testMemoizer> memoize changed the output unexpectedly");
+ break;
+ }
+
+ accesses = g_accesses;
+ test = 3;
+ result = 0;
+ origResult = 0;
+
+ // Should be able to make same bad request and get an error
+ pError = incrementer(test,result);
+ if(pError == NULL)
+ {
+ TS_FAIL("testMemoizer> call to memoizer did not return error");
+ break;
+ }
+
+ delete pError;
+ pError = NULL;
+
+ // ... and should still register an access (i.e. nothing
+ // got accidentally cached in error path)
+ if(g_accesses != (accesses+1))
+ {
+ TS_FAIL("testMemoizer> real function did not dispatch");
+ break;
+ }
+
+ // ... and result should have been left as is
+ if(result != origResult)
+ {
+ TS_FAIL("testMemoizer> memoize changed the output unexpectedly");
+ break;
+ }
+
+ } while(0);
+
+ if(pError)
+ {
+ errlCommit(pError,UTIL_COMP_ID);
+ }
+
+ TS_TRACE( EXIT_MRK
+ "testMemoizer> finish" );
+ }
+
+}; // End class MemoizerTest
+
+#endif
+
OpenPOWER on IntegriCloud