From 5002bdd789546e59f68924c5931dc0e35b668aed Mon Sep 17 00:00:00 2001 From: Nick Bofferding Date: Tue, 16 Apr 2019 16:13:05 -0500 Subject: Reduce LRU RO constraint to allow RO page evictions The current read only contraint used to determine when to cast out read only pages exceeds the maximum LRU value, and thus the required page evictions never occur. This change decreases the constraint so that it is one less than the max LRU value. Change-Id: I9e37067c4ed219458778edce6ab826ef481dbf21 CQ: FW690233 Reviewed-on: http://rchgit01.rchland.ibm.com/gerrit1/76054 Reviewed-by: Daniel M. Crowell Reviewed-by: Glenn Miles Tested-by: Jenkins Server Tested-by: Jenkins OP Build CI Tested-by: FSP CI Jenkins Tested-by: Jenkins OP HW Reviewed-by: Michael Baiocchi Reviewed-by: Nicholas E. Bofferding --- src/kernel/block.C | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/kernel/block.C b/src/kernel/block.C index 5b24ae1a6..b3fefa55a 100644 --- a/src/kernel/block.C +++ b/src/kernel/block.C @@ -386,8 +386,10 @@ void Block::castOutPages(uint64_t i_type) if((iv_baseAddr != VMM_ADDR_BASE_BLOCK) && // Skip base area (iv_baseAddr != VMM_ADDR_EXTEND_BLOCK)) // Skip extended memory. { + // NOTE: All LRU constraints must be < 7, since getLRU() only reports + // 3 bits worth of size (despite the uint8_t return type). size_t rw_constraint = 5; - size_t ro_constraint = 10; + size_t ro_constraint = 6; if(i_type == VmmManager::CRITICAL) { -- cgit v1.2.1