summaryrefslogtreecommitdiffstats
path: root/src/usr/targeting/targetservicestart.C
diff options
context:
space:
mode:
authorChristian Geddes <crgeddes@us.ibm.com>2018-01-16 17:52:01 -0600
committerDaniel M. Crowell <dcrowell@us.ibm.com>2018-01-18 11:08:20 -0500
commit0761000af3d16e2a528e21140a0d61a9ba147413 (patch)
tree614074b1da575f26ca563ca10955efd0f6098c39 /src/usr/targeting/targetservicestart.C
parent6f4abd1ea46f9b8f4fa1d0632276df8ad77d47d4 (diff)
downloadtalos-hostboot-0761000af3d16e2a528e21140a0d61a9ba147413.tar.gz
talos-hostboot-0761000af3d16e2a528e21140a0d61a9ba147413.zip
During MPIPL expand memory size to be FULL_CACHE right away
When attempting MPIPL on Zeppelin we saw that we were running out of memory during the Hostboot init phase of the MPIPL flow. This was happening because HB thinks it needs to be running out of limited cache still at this point. During the attrrp init code in MPIPL we will page in a bunch of ATTR data. This fragments our page table and make future large mallocs impossible. This commit expands Hostboot's memory out to full cache size right away when hostboot is getting initialized. This will give us some breathing room during the initialization steps until we hit thread_activate where we expand the cache out to REAL_MEMORY size Change-Id: I1fcc33359de989a0ded231b52272b85e06725e18 Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/52056 Tested-by: Jenkins Server <pfd-jenkins+hostboot@us.ibm.com> Tested-by: Jenkins OP Build CI <op-jenkins+hostboot@us.ibm.com> Tested-by: Jenkins OP HW <op-hw-jenkins+hostboot@us.ibm.com> Tested-by: FSP CI Jenkins <fsp-CI-jenkins+hostboot@us.ibm.com> Reviewed-by: Martin Gloff <mgloff@us.ibm.com> Reviewed-by: Matt Derksen <mderkse1@us.ibm.com> Reviewed-by: Daniel M. Crowell <dcrowell@us.ibm.com>
Diffstat (limited to 'src/usr/targeting/targetservicestart.C')
-rwxr-xr-xsrc/usr/targeting/targetservicestart.C9
1 files changed, 8 insertions, 1 deletions
diff --git a/src/usr/targeting/targetservicestart.C b/src/usr/targeting/targetservicestart.C
index 636f2e60e..d5405e511 100755
--- a/src/usr/targeting/targetservicestart.C
+++ b/src/usr/targeting/targetservicestart.C
@@ -5,7 +5,7 @@
/* */
/* OpenPOWER HostBoot Project */
/* */
-/* Contributors Listed Below - COPYRIGHT 2012,2017 */
+/* Contributors Listed Below - COPYRIGHT 2012,2018 */
/* [+] Google Inc. */
/* [+] International Business Machines Corp. */
/* */
@@ -40,6 +40,7 @@
// Other components
#include <sys/misc.h>
+#include <sys/mm.h>
#include <sys/task.h>
#include <sys/sync.h>
#include <targeting/common/trace.H>
@@ -147,6 +148,12 @@ static void initTargeting(errlHndl_t& io_pError)
if(l_scratch3.isMpipl)
{
TARG_INF("We are running MPIPL mode");
+ //Since we are in MPIPL we know that memory is up and running
+ //in order to avoid burning through all of our memory pages
+ //during the attrrp init, which is when we copy attributes from
+ //the prev IPL into PNOR, we expand out to full cache right now
+ //in activate_threads we will expand out to MM_EXTEND_REAL_MEMORY
+ mm_extend(MM_EXTEND_FULL_CACHE);
l_isMpipl = true;
}
if(l_scratch3.istepMode)
OpenPOWER on IntegriCloud