Module Name: src Committed By: pooka Date: Thu Jun 3 10:56:20 UTC 2010
Modified Files: src/sys/rump/librump/rumpkern: locks_up.c memalloc.c rump.c rump_private.h vm.c Log Message: Implement a sort-of pagedaemon: adjust all memory allocators to go through an in-rumpkernel hypermemory allocator which knows it should kick the pagedaemon and block in case ``waitok'' memory allocation fails. This allows us to recover from some out-of-memory situations. Realworld'istically speaking (as opposed to whatever "should be" theory), these OOM situations will happen extremely rarely if ever when our hypervisor is a regular process. Speculatively, this should be useful for other types of hosts. issues remaining: * the hypervisor does not know how to reclaim kernel memory (and for the reason I stated above, I'm not sure if it makes sense to teach the current implementation about that) * vfs memory (buffers, vm object pages etc.) is not reclaimed To generate a diff of this commit: cvs rdiff -u -r1.2 -r1.3 src/sys/rump/librump/rumpkern/locks_up.c cvs rdiff -u -r1.6 -r1.7 src/sys/rump/librump/rumpkern/memalloc.c cvs rdiff -u -r1.174 -r1.175 src/sys/rump/librump/rumpkern/rump.c cvs rdiff -u -r1.49 -r1.50 src/sys/rump/librump/rumpkern/rump_private.h cvs rdiff -u -r1.79 -r1.80 src/sys/rump/librump/rumpkern/vm.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.