chiark / gitweb /
set memory limits
authorian <ian>
Sat, 17 May 2008 16:57:06 +0000 (16:57 +0000)
committerian <ian>
Sat, 17 May 2008 16:57:06 +0000 (16:57 +0000)
hostside/rtprio.c

index ac6b49e11817a2a31b6e36eefffc24bf1ec75b81..df3a2b7eaea83806ff5b650b68f5cd834e4bf077 100644 (file)
 
 /*---------- !ALL(MEM): prevent us eating all RAM ----------*/
 
-static void rtf_limit_MEM(void) { }
+static void rtf_limit_MEM(void) {
+  int r;
+  struct rlimit64 rl;
+  r= getrlimit64(RLIMIT_MEMLOCK,&rl);  if (r) diee("getrlimit RLIMIT_MEMLOCK");
+  rl.rlim_cur= 4*1024*1024;
+  r= setrlimit64(RLIMIT_MEMLOCK,&rl);  if (r) diee("setrlimit RLIMIT_MEMLOCK");
+}
 
 /*---------- MEM: lock us into memory ----------*/
 
-static void rtf_acquire_MEM(void) { }
+static void rtf_acquire_MEM(void) {
+  int r;
+  r= mlockall(MCL_CURRENT|MCL_FUTURE);  if (r) diee("mlockall");
+}
 
 /*---------- !ALL(CPU): use SIGXCPU to detect us spinning ----------*/