view arch/ia64/Kconfig.debug @ 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
line source
1 menu "Kernel hacking"
3 source "lib/Kconfig.debug"
5 choice
6 prompt "Physical memory granularity"
7 default IA64_GRANULE_64MB
9 config IA64_GRANULE_16MB
10 bool "16MB"
11 help
12 IA-64 identity-mapped regions use a large page size called "granules".
14 Select "16MB" for a small granule size.
15 Select "64MB" for a large granule size. This is the current default.
17 config IA64_GRANULE_64MB
18 bool "64MB"
19 depends on !(IA64_GENERIC || IA64_HP_ZX1 || IA64_HP_ZX1_SWIOTLB || IA64_SGI_SN2)
21 endchoice
23 config IA64_PRINT_HAZARDS
24 bool "Print possible IA-64 dependency violations to console"
25 depends on DEBUG_KERNEL
26 help
27 Selecting this option prints more information for Illegal Dependency
28 Faults, that is, for Read-after-Write (RAW), Write-after-Write (WAW),
29 or Write-after-Read (WAR) violations. This option is ignored if you
30 are compiling for an Itanium A step processor
31 (CONFIG_ITANIUM_ASTEP_SPECIFIC). If you're unsure, select Y.
33 config DISABLE_VHPT
34 bool "Disable VHPT"
35 depends on DEBUG_KERNEL
36 help
37 The Virtual Hash Page Table (VHPT) enhances virtual address
38 translation performance. Normally you want the VHPT active but you
39 can select this option to disable the VHPT for debugging. If you're
40 unsure, answer N.
42 config IA64_DEBUG_CMPXCHG
43 bool "Turn on compare-and-exchange bug checking (slow!)"
44 depends on DEBUG_KERNEL
45 help
46 Selecting this option turns on bug checking for the IA-64
47 compare-and-exchange instructions. This is slow! Itaniums
48 from step B3 or later don't have this problem. If you're unsure,
49 select N.
51 config IA64_DEBUG_IRQ
52 bool "Turn on irq debug checks (slow!)"
53 depends on DEBUG_KERNEL
54 help
55 Selecting this option turns on bug checking for the IA-64 irq_save
56 and restore instructions. It's useful for tracking down spinlock
57 problems, but slow! If you're unsure, select N.
60 bool
61 depends on COMPAT && SYSVIPC
62 default y
64 endmenu