view Documentation/networking/depca.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
line source
2 DE10x
3 =====
5 Memory Addresses:
7 SW1 SW2 SW3 SW4
8 64K on on on on d0000 dbfff
9 off on on on c0000 cbfff
10 off off on on e0000 ebfff
12 32K on on off on d8000 dbfff
13 off on off on c8000 cbfff
14 off off off on e8000 ebfff
16 DBR ROM on on dc000 dffff
17 off on cc000 cffff
18 off off ec000 effff
20 Note that the 2K mode is set by SW3/SW4 on/off or off/off. Address
21 assignment is through the RBSA register.
23 I/O Address:
24 SW5
25 0x300 on
26 0x200 off
28 Remote Boot:
29 SW6
30 Disable on
31 Enable off
33 Remote Boot Timeout:
34 SW7
35 2.5min on
36 30s off
38 IRQ:
39 SW8 SW9 SW10 SW11 SW12
40 2 on off off off off
41 3 off on off off off
42 4 off off on off off
43 5 off off off on off
44 7 off off off off on
46 DE20x
47 =====
49 Memory Size:
51 SW3 SW4
52 64K on on
53 32K off on
54 2K on off
55 2K off off
57 Start Addresses:
59 SW1 SW2 SW3 SW4
60 64K on on on on c0000 cffff
61 on off on on d0000 dffff
62 off on on on e0000 effff
64 32K on on off off c8000 cffff
65 on off off off d8000 dffff
66 off on off off e8000 effff
68 Illegal off off - - - -
70 I/O Address:
71 SW5
72 0x300 on
73 0x200 off
75 Remote Boot:
76 SW6
77 Disable on
78 Enable off
80 Remote Boot Timeout:
81 SW7
82 2.5min on
83 30s off
85 IRQ:
86 SW8 SW9 SW10 SW11 SW12
87 5 on off off off off
88 9 off on off off off
89 10 off off on off off
90 11 off off off on off
91 15 off off off off on