summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJaymes Wilks <mjwilks@us.ibm.com>2017-12-15 13:14:23 -0600
committerWilliam G. Hoffa <wghoffa@us.ibm.com>2017-12-22 14:54:10 -0500
commit79abc83621867b3fdcb4c22e41b87365ada8e7c7 (patch)
tree63fdad82bf6fb3a4cb13b1e30371297c76740bd0
parentd65acc669a101f78eecf16e9a3f8d9bb373441c8 (diff)
downloadtalos-hostboot-79abc83621867b3fdcb4c22e41b87365ada8e7c7.tar.gz
talos-hostboot-79abc83621867b3fdcb4c22e41b87365ada8e7c7.zip
Make FCO cores distribute evenly among processors
We observed FCO cores front-loading to first processor followed by the next and so on. This change mixes the FCO cores between the processors evenly. Change-Id: If2bcaa699f8be355c1cd7a8ef76b55925921f290 CQ:SW404823 Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/51030 Tested-by: Jenkins Server <pfd-jenkins+hostboot@us.ibm.com> Tested-by: Jenkins OP Build CI <op-jenkins+hostboot@us.ibm.com> Reviewed-by: Brian E. Bakke <bbakke@us.ibm.com> Tested-by: FSP CI Jenkins <fsp-CI-jenkins+hostboot@us.ibm.com> Tested-by: Jenkins OP HW <op-hw-jenkins+hostboot@us.ibm.com> Reviewed-by: William G. Hoffa <wghoffa@us.ibm.com>
-rw-r--r--src/usr/hwas/common/hwas.C17
1 files changed, 10 insertions, 7 deletions
diff --git a/src/usr/hwas/common/hwas.C b/src/usr/hwas/common/hwas.C
index 0ea59b4b4..9dc33428a 100644
--- a/src/usr/hwas/common/hwas.C
+++ b/src/usr/hwas/common/hwas.C
@@ -1360,11 +1360,14 @@ errlHndl_t restrictECunits(
// determine if it has an EC pair or a single EC and if the remaining
// count indicates the given EC from that list is to stay functional.
- // Cycle through the procs
- for (uint32_t i = 0; i < procs; i++)
- {
- // Cycle through the EXs for this proc
- for (uint32_t j = 0; j < NUM_EX_PER_CHIP; j++)
+ // Cycle through the first EX of each proc, then the second EX of each
+ // proc and so on as we decrement remaining ECs. We put procs as the
+ // inner loop and EXs as the outer to distribute the functional ECs
+ // evenly between procs. After we run out of ECs, we deconfigure the
+ // remaining ones.
+ for (uint32_t j = 0; j < NUM_EX_PER_CHIP; j++)
+ {
+ for (uint32_t i = 0; i < procs; i++)
{
// Walk through the EC list from this EX
while (pEC_it[i][j] != pECList[i][j].end())
@@ -1401,8 +1404,8 @@ errlHndl_t restrictECunits(
(pEC_it[i][j])++; // next ec in this ex's list
} // while pEC_it[i][j] != pECList[i][j].end()
- } // for j < NUM_EX_PER_CHIP
- } // for i < procs
+ } // for i < procs
+ } // for j < NUM_EX_PER_CHIP
} // for procIdx < l_ProcCount
if (errl)
OpenPOWER on IntegriCloud