diff options
| author | Dan Crowell <dcrowell@us.ibm.com> | 2019-02-10 13:12:10 -0600 |
|---|---|---|
| committer | Daniel M. Crowell <dcrowell@us.ibm.com> | 2019-02-12 16:24:46 -0600 |
| commit | a733a70261d1c847e3130c509cc911f86d71453d (patch) | |
| tree | 2d7b267b41bd857a52fbcd149e10fb75fdbee2a5 /src/include | |
| parent | 4d92ae4d4ac17899bb2a521dc82cc0de09608478 (diff) | |
| download | talos-hostboot-a733a70261d1c847e3130c509cc911f86d71453d.tar.gz talos-hostboot-a733a70261d1c847e3130c509cc911f86d71453d.zip | |
Add more agressive memory allocation calls
If we hit a situation where we can't allocate a page of memory,
this will force a coalesce (defrag) a few times and then
eventually trigger other memory reclamation actions.
Also tweaked a few spots in the kernel to enhance debug:
- add more stops to look at errors (HB_BREAK_ON_ERROR)
- add more backtrace calls
- add a new debug flag to count the extra coalesce calls
Change-Id: Ibac7079a44a12dc61e41304de4c4ae518c206d13
Reviewed-on: http://rchgit01.rchland.ibm.com/gerrit1/71653
Tested-by: Jenkins Server <pfd-jenkins+hostboot@us.ibm.com>
Tested-by: Jenkins OP Build CI <op-jenkins+hostboot@us.ibm.com>
Reviewed-by: Matt Derksen <mderkse1@us.ibm.com>
Reviewed-by: Nicholas E. Bofferding <bofferdn@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: Daniel M. Crowell <dcrowell@us.ibm.com>
Diffstat (limited to 'src/include')
| -rw-r--r-- | src/include/kernel/pagemgr.H | 3 | ||||
| -rw-r--r-- | src/include/usr/debugpointers.H | 1 |
2 files changed, 3 insertions, 1 deletions
diff --git a/src/include/kernel/pagemgr.H b/src/include/kernel/pagemgr.H index 2431c613d..7b5deddb4 100644 --- a/src/include/kernel/pagemgr.H +++ b/src/include/kernel/pagemgr.H @@ -5,7 +5,7 @@ /* */ /* OpenPOWER HostBoot Project */ /* */ -/* Contributors Listed Below - COPYRIGHT 2010,2018 */ +/* Contributors Listed Below - COPYRIGHT 2010,2019 */ /* [+] International Business Machines Corp. */ /* */ /* */ @@ -200,6 +200,7 @@ class PageManager static size_t cv_coalesce_count; //!< running coalesced counter static size_t cv_low_page_count; //!< lowest page count + static size_t cv_alloc_coalesce_count; //!< number of repeat allocs protected: diff --git a/src/include/usr/debugpointers.H b/src/include/usr/debugpointers.H index 01de1a0d8..5815761e8 100644 --- a/src/include/usr/debugpointers.H +++ b/src/include/usr/debugpointers.H @@ -95,6 +95,7 @@ constexpr uint64_t HEAPMANAGERFREECHUNKS = 0x4845415043484e4b; //'HEAPCHNK' constexpr uint64_t PAGEMANAGER = 0x504147454d475220; //'PAGEMGR ' constexpr uint64_t PAGEMANAGERCOALESCECOUNT = 0x504147454d434e54; //'PAGEMCNT' constexpr uint64_t PAGEMANAGERLOWPAGECOUNT = 0x504147454d4c5043; //'PAGEMLPC' +constexpr uint64_t PAGEMANAGERALLOCCOUNT = 0x504147454d414343; //'PAGEMACC' constexpr uint64_t SEGMENTMANAGER = 0x53474d4e544d4752; //'SGMNTMGR' constexpr uint64_t BLOCKREADONLYEVICT = 0x424c4f434b524f45; //'BLOCKROE' constexpr uint64_t BLOCKREADWRITEEVICT = 0x424c4f434b525745; //'BLOCKRWE' |

