ia64/linux-2.6.18-xen.hg

view Documentation/mono.txt @ 897:329ea0ccb344

balloon: try harder to balloon up under memory pressure.

Currently if the balloon driver is unable to increase the guest's
reservation it assumes the failure was due to reaching its full
allocation, gives up on the ballooning operation and records the limit
it reached as the "hard limit". The driver will not try again until
the target is set again (even to the same value).

However it is possible that ballooning has in fact failed due to
memory pressure in the host and therefore it is desirable to keep
attempting to reach the target in case memory becomes available. The
most likely scenario is that some guests are ballooning down while
others are ballooning up and therefore there is temporary memory
pressure while things stabilise. You would not expect a well behaved
toolstack to ask a domain to balloon to more than its allocation nor
would you expect it to deliberately over-commit memory by setting
balloon targets which exceed the total host memory.

This patch drops the concept of a hard limit and causes the balloon
driver to retry increasing the reservation on a timer in the same
manner as when decreasing the reservation.

Also if we partially succeed in increasing the reservation
(i.e. receive less pages than we asked for) then we may as well keep
those pages rather than returning them to Xen.

Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
author Keir Fraser <keir.fraser@citrix.com>
date Fri Jun 05 14:01:20 2009 +0100 (2009-06-05)
parents 831230e53067
children
line source
1 Mono(tm) Binary Kernel Support for Linux
2 -----------------------------------------
4 To configure Linux to automatically execute Mono-based .NET binaries
5 (in the form of .exe files) without the need to use the mono CLR
6 wrapper, you can use the BINFMT_MISC kernel support.
8 This will allow you to execute Mono-based .NET binaries just like any
9 other program after you have done the following:
11 1) You MUST FIRST install the Mono CLR support, either by downloading
12 a binary package, a source tarball or by installing from CVS. Binary
13 packages for several distributions can be found at:
15 http://go-mono.com/download.html
17 Instructions for compiling Mono can be found at:
19 http://www.go-mono.com/compiling.html
21 Once the Mono CLR support has been installed, just check that
22 /usr/bin/mono (which could be located elsewhere, for example
23 /usr/local/bin/mono) is working.
25 2) You have to compile BINFMT_MISC either as a module or into
26 the kernel (CONFIG_BINFMT_MISC) and set it up properly.
27 If you choose to compile it as a module, you will have
28 to insert it manually with modprobe/insmod, as kmod
29 can not be easily supported with binfmt_misc.
30 Read the file 'binfmt_misc.txt' in this directory to know
31 more about the configuration process.
33 3) Add the following entries to /etc/rc.local or similar script
34 to be run at system startup:
36 # Insert BINFMT_MISC module into the kernel
37 if [ ! -e /proc/sys/fs/binfmt_misc/register ]; then
38 /sbin/modprobe binfmt_misc
39 # Some distributions, like Fedora Core, perform
40 # the following command automatically when the
41 # binfmt_misc module is loaded into the kernel.
42 # Thus, it is possible that the following line
43 # is not needed at all. Look at /etc/modprobe.conf
44 # to check whether this is applicable or not.
45 mount -t binfmt_misc none /proc/sys/fs/binfmt_misc
46 fi
48 # Register support for .NET CLR binaries
49 if [ -e /proc/sys/fs/binfmt_misc/register ]; then
50 # Replace /usr/bin/mono with the correct pathname to
51 # the Mono CLR runtime (usually /usr/local/bin/mono
52 # when compiling from sources or CVS).
53 echo ':CLR:M::MZ::/usr/bin/mono:' > /proc/sys/fs/binfmt_misc/register
54 else
55 echo "No binfmt_misc support"
56 exit 1
57 fi
59 4) Check that .exe binaries can be ran without the need of a
60 wrapper script, simply by launching the .exe file directly
61 from a command prompt, for example:
63 /usr/bin/xsd.exe
65 NOTE: If this fails with a permission denied error, check
66 that the .exe file has execute permissions.