annotate arch/alpha/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
rev   line source
ian@0 1 menu "Kernel hacking"
ian@0 2
ian@0 3 source "lib/Kconfig.debug"
ian@0 4
ian@0 5 config EARLY_PRINTK
ian@0 6 bool
ian@0 7 depends on ALPHA_GENERIC || ALPHA_SRM
ian@0 8 default y
ian@0 9
ian@0 10 config DEBUG_RWLOCK
ian@0 11 bool "Read-write spinlock debugging"
ian@0 12 depends on DEBUG_KERNEL
ian@0 13 help
ian@0 14 If you say Y here then read-write lock processing will count how many
ian@0 15 times it has tried to get the lock and issue an error message after
ian@0 16 too many attempts. If you suspect a rwlock problem or a kernel
ian@0 17 hacker asks for this option then say Y. Otherwise say N.
ian@0 18
ian@0 19 config DEBUG_SEMAPHORE
ian@0 20 bool "Semaphore debugging"
ian@0 21 depends on DEBUG_KERNEL
ian@0 22 help
ian@0 23 If you say Y here then semaphore processing will issue lots of
ian@0 24 verbose debugging messages. If you suspect a semaphore problem or a
ian@0 25 kernel hacker asks for this option then say Y. Otherwise say N.
ian@0 26
ian@0 28 bool "Legacy kernel start address"
ian@0 29 depends on ALPHA_GENERIC
ian@0 30 default n
ian@0 31 ---help---
ian@0 32 The 2.4 kernel changed the kernel start address from 0x310000
ian@0 33 to 0x810000 to make room for the Wildfire's larger SRM console.
ian@0 34 Recent consoles on Titan and Marvel machines also require the
ian@0 35 extra room.
ian@0 36
ian@0 37 If you're using aboot 0.7 or later, the bootloader will examine the
ian@0 38 ELF headers to determine where to transfer control. Unfortunately,
ian@0 39 most older bootloaders -- APB or MILO -- hardcoded the kernel start
ian@0 40 address rather than examining the ELF headers, and the result is a
ian@0 41 hard lockup.
ian@0 42
ian@0 43 Say Y if you have a broken bootloader. Say N if you do not, or if
ian@0 44 you wish to run on Wildfire, Titan, or Marvel.
ian@0 45
ian@0 47 bool
ian@0 49 default y
ian@0 50
ian@0 51 config MATHEMU
ian@0 52 tristate "Kernel FP software completion" if DEBUG_KERNEL && !SMP
ian@0 53 default y if !DEBUG_KERNEL || SMP
ian@0 54 help
ian@0 55 This option is required for IEEE compliant floating point arithmetic
ian@0 56 on the Alpha. The only time you would ever not say Y is to say M in
ian@0 57 order to debug the code. Say Y unless you know what you are doing.
ian@0 58
ian@0 59 endmenu