view Documentation/networking/3c505.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
1 The 3Com Etherlink Plus (3c505) driver.
3 This driver now uses DMA. There is currently no support for PIO operation.
4 The default DMA channel is 6; this is _not_ autoprobed, so you must
5 make sure you configure it correctly. If loading the driver as a
6 module, you can do this with "modprobe 3c505 dma=n". If the driver is
7 linked statically into the kernel, you must either use an "ether="
8 statement on the command line, or change the definition of ELP_DMA in 3c505.h.
10 The driver will warn you if it has to fall back on the compiled in
11 default DMA channel.
13 If no base address is given at boot time, the driver will autoprobe
14 ports 0x300, 0x280 and 0x310 (in that order). If no IRQ is given, the driver
15 will try to probe for it.
17 The driver can be used as a loadable module. See net-modules.txt for details
18 of the parameters it can take.
20 Theoretically, one instance of the driver can now run multiple cards,
21 in the standard way (when loading a module, say "modprobe 3c505
22 io=0x300,0x340 irq=10,11 dma=6,7" or whatever). I have not tested
23 this, though.
25 The driver may now support revision 2 hardware; the dependency on
26 being able to read the host control register has been removed. This
27 is also untested, since I don't have a suitable card.
29 Known problems:
30 I still see "DMA upload timed out" messages from time to time. These
31 seem to be fairly non-fatal though.
32 The card is old and slow.
34 To do:
35 Improve probe/setup code
36 Test multicast and promiscuous operation
38 Authors:
39 The driver is mainly written by Craig Southeren, email
40 <craigs@ineluki.apana.org.au>.
41 Parts of the driver (adapting the driver to 1.1.4+ kernels,
42 IRQ/address detection, some changes) and this README by
43 Juha Laiho <jlaiho@ichaos.nullnet.fi>.
44 DMA mode, more fixes, etc, by Philip Blundell <pjb27@cam.ac.uk>
45 Multicard support, Software configurable DMA, etc., by
46 Christopher Collins <ccollins@pcug.org.au>