ia64/linux-2.6.18-xen.hg

view lib/Kconfig @ 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 #
2 # Library configuration
3 #
5 menu "Library routines"
7 config CRC_CCITT
8 tristate "CRC-CCITT functions"
9 help
10 This option is provided for the case where no in-kernel-tree
11 modules require CRC-CCITT functions, but a module built outside
12 the kernel tree does. Such modules that use library CRC-CCITT
13 functions require M here.
15 config CRC16
16 tristate "CRC16 functions"
17 help
18 This option is provided for the case where no in-kernel-tree
19 modules require CRC16 functions, but a module built outside
20 the kernel tree does. Such modules that use library CRC16
21 functions require M here.
23 config CRC32
24 tristate "CRC32 functions"
25 default y
26 help
27 This option is provided for the case where no in-kernel-tree
28 modules require CRC32 functions, but a module built outside the
29 kernel tree does. Such modules that use library CRC32 functions
30 require M here.
32 config LIBCRC32C
33 tristate "CRC32c (Castagnoli, et al) Cyclic Redundancy-Check"
34 help
35 This option is provided for the case where no in-kernel-tree
36 modules require CRC32c functions, but a module built outside the
37 kernel tree does. Such modules that use library CRC32c functions
38 require M here. See Castagnoli93.
39 Module will be libcrc32c.
41 config AUDIT_GENERIC
42 bool
43 depends on AUDIT && !AUDIT_ARCH
44 default y
46 #
47 # compression support is select'ed if needed
48 #
49 config ZLIB_INFLATE
50 tristate
52 config ZLIB_DEFLATE
53 tristate
55 #
56 # Generic allocator support is selected if needed
57 #
58 config GENERIC_ALLOCATOR
59 boolean
61 #
62 # reed solomon support is select'ed if needed
63 #
64 config REED_SOLOMON
65 tristate
67 config REED_SOLOMON_ENC8
68 boolean
70 config REED_SOLOMON_DEC8
71 boolean
73 config REED_SOLOMON_ENC16
74 boolean
76 config REED_SOLOMON_DEC16
77 boolean
79 #
80 # Textsearch support is select'ed if needed
81 #
82 config TEXTSEARCH
83 boolean
85 config TEXTSEARCH_KMP
86 tristate
88 config TEXTSEARCH_BM
89 tristate
91 config TEXTSEARCH_FSM
92 tristate
94 #
95 # plist support is select#ed if needed
96 #
97 config PLIST
98 boolean
100 endmenu