view Documentation/arm/Setup @ 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 Kernel initialisation parameters on ARM Linux
2 ---------------------------------------------
4 The following document describes the kernel initialisation parameter
5 structure, otherwise known as 'struct param_struct' which is used
6 for most ARM Linux architectures.
8 This structure is used to pass initialisation parameters from the
9 kernel loader to the Linux kernel proper, and may be short lived
10 through the kernel initialisation process. As a general rule, it
11 should not be referenced outside of arch/arm/kernel/setup.c:setup_arch().
13 There are a lot of parameters listed in there, and they are described
14 below:
16 page_size
18 This parameter must be set to the page size of the machine, and
19 will be checked by the kernel.
21 nr_pages
23 This is the total number of pages of memory in the system. If
24 the memory is banked, then this should contain the total number
25 of pages in the system.
27 If the system contains separate VRAM, this value should not
28 include this information.
30 ramdisk_size
32 This is now obsolete, and should not be used.
34 flags
36 Various kernel flags, including:
37 bit 0 - 1 = mount root read only
38 bit 1 - unused
39 bit 2 - 0 = load ramdisk
40 bit 3 - 0 = prompt for ramdisk
42 rootdev
44 major/minor number pair of device to mount as the root filesystem.
46 video_num_cols
47 video_num_rows
49 These two together describe the character size of the dummy console,
50 or VGA console character size. They should not be used for any other
51 purpose.
53 It's generally a good idea to set these to be either standard VGA, or
54 the equivalent character size of your fbcon display. This then allows
55 all the bootup messages to be displayed correctly.
57 video_x
58 video_y
60 This describes the character position of cursor on VGA console, and
61 is otherwise unused. (should not be used for other console types, and
62 should not be used for other purposes).
64 memc_control_reg
66 MEMC chip control register for Acorn Archimedes and Acorn A5000
67 based machines. May be used differently by different architectures.
69 sounddefault
71 Default sound setting on Acorn machines. May be used differently by
72 different architectures.
74 adfsdrives
76 Number of ADFS/MFM disks. May be used differently by different
77 architectures.
79 bytes_per_char_h
80 bytes_per_char_v
82 These are now obsolete, and should not be used.
84 pages_in_bank[4]
86 Number of pages in each bank of the systems memory (used for RiscPC).
87 This is intended to be used on systems where the physical memory
88 is non-contiguous from the processors point of view.
90 pages_in_vram
92 Number of pages in VRAM (used on Acorn RiscPC). This value may also
93 be used by loaders if the size of the video RAM can't be obtained
94 from the hardware.
96 initrd_start
97 initrd_size
99 This describes the kernel virtual start address and size of the
100 initial ramdisk.
102 rd_start
104 Start address in sectors of the ramdisk image on a floppy disk.
106 system_rev
108 system revision number.
110 system_serial_low
111 system_serial_high
113 system 64-bit serial number
115 mem_fclk_21285
117 The speed of the external oscillator to the 21285 (footbridge),
118 which control's the speed of the memory bus, timer & serial port.
119 Depending upon the speed of the cpu its value can be between
120 0-66 MHz. If no params are passed or a value of zero is passed,
121 then a value of 50 Mhz is the default on 21285 architectures.
123 paths[8][128]
125 These are now obsolete, and should not be used.
127 commandline
129 Kernel command line parameters. Details can be found elsewhere.