summaryrefslogtreecommitdiffstats
path: root/src/kernel/syscall.C
diff options
context:
space:
mode:
authorDoug Gilbert <dgilbert@us.ibm.com>2012-06-27 17:59:25 -0500
committerA. Patrick Williams III <iawillia@us.ibm.com>2012-07-11 08:18:00 -0500
commita23283c6facfee055c9c6d43e23a04ca02edc467 (patch)
tree51c7e8e5af9344041941a140be33950159b00972 /src/kernel/syscall.C
parent2a37ac4be40500b6849444168181931202892a96 (diff)
downloadtalos-hostboot-a23283c6facfee055c9c6d43e23a04ca02edc467.tar.gz
talos-hostboot-a23283c6facfee055c9c6d43e23a04ca02edc467.zip
Improve memory page manager for low memory situations
RTC: 40831 Change-Id: I7889f91eec44a10d56ffc94e03c7557f8085100a Reviewed-on: http://gfw160.austin.ibm.com:8080/gerrit/1272 Reviewed-by: A. Patrick Williams III <iawillia@us.ibm.com> Tested-by: Jenkins Server Reviewed-by: Daniel M. Crowell <dcrowell@us.ibm.com>
Diffstat (limited to 'src/kernel/syscall.C')
-rw-r--r--src/kernel/syscall.C13
1 files changed, 13 insertions, 0 deletions
diff --git a/src/kernel/syscall.C b/src/kernel/syscall.C
index dd3d10949..1ed68624e 100644
--- a/src/kernel/syscall.C
+++ b/src/kernel/syscall.C
@@ -101,6 +101,7 @@ namespace Systemcalls
void MmAllocBlock(task_t *t);
void MmRemovePages(task_t *t);
void MmSetPermission(task_t *t);
+ void MmFlushPages(task_t *t);
syscall syscalls[] =
@@ -134,6 +135,7 @@ namespace Systemcalls
&MmAllocBlock, // MM_ALLOC_BLOCK
&MmRemovePages, // MM_REMOVE_PAGES
&MmSetPermission, // MM_SET_PERMISSION
+ &MmFlushPages, // MM_FLUSH_PAGES
};
};
@@ -668,5 +670,16 @@ namespace Systemcalls
TASK_SETRTN(t, VmmManager::mmSetPermission(va,size, access_type));
}
+ /**
+ * Flush and Cast out 'old' pages
+ * @param[in] t: The task used.
+ */
+ void MmFlushPages(task_t* t)
+ {
+ VmmManager::castout_t sev = (VmmManager::castout_t)TASK_GETARG0(t);
+ VmmManager::flushPageTable();
+ VmmManager::castOutPages(sev);
+ TASK_SETRTN(t,0);
+ }
};
OpenPOWER on IntegriCloud