view Documentation/networking/ewrk3.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 EtherWORKS 3 driver in this distribution is designed to work with all
2 kernels > 1.1.33 (approx) and includes tools in the 'ewrk3tools'
3 subdirectory to allow set up of the card, similar to the MSDOS
4 'NICSETUP.EXE' tools provided on the DOS drivers disk (type 'make' in that
5 subdirectory to make the tools).
7 The supported cards are DE203, DE204 and DE205. All other cards are NOT
8 supported - refer to 'depca.c' for running the LANCE based network cards and
9 'de4x5.c' for the DIGITAL Semiconductor PCI chip based adapters from
10 Digital.
12 The ability to load this driver as a loadable module has been included and
13 used extensively during the driver development (to save those long reboot
14 sequences). To utilise this ability, you have to do 8 things:
16 0) have a copy of the loadable modules code installed on your system.
17 1) copy ewrk3.c from the /linux/drivers/net directory to your favourite
18 temporary directory.
19 2) edit the source code near line 1898 to reflect the I/O address and
20 IRQ you're using.
21 3) compile ewrk3.c, but include -DMODULE in the command line to ensure
22 that the correct bits are compiled (see end of source code).
23 4) if you are wanting to add a new card, goto 5. Otherwise, recompile a
24 kernel with the ewrk3 configuration turned off and reboot.
25 5) insmod ewrk3.o
26 [Alan Cox: Changed this so you can insmod ewrk3.o irq=x io=y]
27 [Adam Kropelin: Multiple cards now supported by irq=x1,x2 io=y1,y2]
28 6) run the net startup bits for your new eth?? interface manually
29 (usually /etc/rc.inet[12] at boot time).
30 7) enjoy!
32 Note that autoprobing is not allowed in loadable modules - the system is
33 already up and running and you're messing with interrupts.
35 To unload a module, turn off the associated interface
36 'ifconfig eth?? down' then 'rmmod ewrk3'.
38 The performance we've achieved so far has been measured through the 'ttcp'
39 tool at 975kB/s. This measures the total TCP stack performance which
40 includes the card, so don't expect to get much nearer the 1.25MB/s
41 theoretical Ethernet rate.
44 Enjoy!
46 Dave