diff options
author | Christian Geddes <crgeddes@us.ibm.com> | 2018-01-16 17:52:01 -0600 |
---|---|---|
committer | Daniel M. Crowell <dcrowell@us.ibm.com> | 2018-01-18 11:08:20 -0500 |
commit | 0761000af3d16e2a528e21140a0d61a9ba147413 (patch) | |
tree | 614074b1da575f26ca563ca10955efd0f6098c39 /src/usr/targeting/targetservicestart.C | |
parent | 6f4abd1ea46f9b8f4fa1d0632276df8ad77d47d4 (diff) | |
download | talos-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-x | src/usr/targeting/targetservicestart.C | 9 |
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) |