diff options
author | Jaymes Wilks <mjwilks@us.ibm.com> | 2017-12-15 13:14:23 -0600 |
---|---|---|
committer | William G. Hoffa <wghoffa@us.ibm.com> | 2017-12-22 14:54:10 -0500 |
commit | 79abc83621867b3fdcb4c22e41b87365ada8e7c7 (patch) | |
tree | 63fdad82bf6fb3a4cb13b1e30371297c76740bd0 /src/usr/hwas | |
parent | d65acc669a101f78eecf16e9a3f8d9bb373441c8 (diff) | |
download | talos-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>
Diffstat (limited to 'src/usr/hwas')
-rw-r--r-- | src/usr/hwas/common/hwas.C | 17 |
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) |