Skip to content

Commit

Permalink
During MPIPL expand memory size to be FULL_CACHE right away
Browse files Browse the repository at this point in the history
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>
  • Loading branch information
crgeddes authored and dcrowell77 committed Jan 18, 2018
1 parent 6f4abd1 commit 0761000
Showing 1 changed file with 8 additions and 1 deletion.
9 changes: 8 additions & 1 deletion src/usr/targeting/targetservicestart.C
Expand Up @@ -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. */
/* */
Expand Down Expand Up @@ -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>
Expand Down Expand Up @@ -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)
Expand Down

0 comments on commit 0761000

Please sign in to comment.