Source-Changes archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

CVS commit: src/sys/rump/librump/rumpkern



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.



Home | Main Index | Thread Index | Old Index