annotate Documentation/digiepca.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
rev   line source
ian@0 1 NOTE: This driver is obsolete. Digi provides a 2.6 driver (dgdm) at
ian@0 2 http://www.digi.com for PCI cards. They no longer maintain this driver,
ian@0 3 and have no 2.6 driver for ISA cards.
ian@0 4
ian@0 5 This driver requires a number of user-space tools. They can be acquired from
ian@0 6 http://www.digi.com, but only works with 2.4 kernels.
ian@0 7
ian@0 8
ian@0 9 The Digi Intl. epca driver.
ian@0 10 ----------------------------
ian@0 11 The Digi Intl. epca driver for Linux supports the following boards:
ian@0 12
ian@0 13 Digi PC/Xem, PC/Xr, PC/Xe, PC/Xi, PC/Xeve
ian@0 14 Digi EISA/Xem, PCI/Xem, PCI/Xr
ian@0 15
ian@0 16 Limitations:
ian@0 17 ------------
ian@0 18 Currently the driver only autoprobes for supported PCI boards.
ian@0 19
ian@0 20 The Linux MAKEDEV command does not support generating the Digiboard
ian@0 21 Devices. Users executing digiConfig to setup EISA and PC series cards
ian@0 22 will have their device nodes automatically constructed (cud?? for ~CLOCAL,
ian@0 23 and ttyD?? for CLOCAL). Users wishing to boot their board from the LILO
ian@0 24 prompt, or those users booting PCI cards may use buildDIGI to construct
ian@0 25 the necessary nodes.
ian@0 26
ian@0 27 Notes:
ian@0 28 ------
ian@0 29 This driver may be configured via LILO. For users who have already configured
ian@0 30 their driver using digiConfig, configuring from LILO will override previous
ian@0 31 settings. Multiple boards may be configured by issuing multiple LILO command
ian@0 32 lines. For examples see the bottom of this document.
ian@0 33
ian@0 34 Device names start at 0 and continue up. Beware of this as previous Digi
ian@0 35 drivers started device names with 1.
ian@0 36
ian@0 37 PCI boards are auto-detected and configured by the driver. PCI boards will
ian@0 38 be allocated device numbers (internally) beginning with the lowest PCI slot
ian@0 39 first. In other words a PCI card in slot 3 will always have higher device
ian@0 40 nodes than a PCI card in slot 1.
ian@0 41
ian@0 42 LILO config examples:
ian@0 43 ---------------------
ian@0 44 Using LILO's APPEND command, a string of comma separated identifiers or
ian@0 45 integers can be used to configure supported boards. The six values in order
ian@0 46 are:
ian@0 47
ian@0 48 Enable/Disable this card or Override,
ian@0 49 Type of card: PC/Xe (AccelePort) (0), PC/Xeve (1), PC/Xem or PC/Xr (2),
ian@0 50 EISA/Xem (3), PC/64Xe (4), PC/Xi (5),
ian@0 51 Enable/Disable alternate pin arrangement,
ian@0 52 Number of ports on this card,
ian@0 53 I/O Port where card is configured (in HEX if using string identifiers),
ian@0 54 Base of memory window (in HEX if using string identifiers),
ian@0 55
ian@0 56 NOTE : PCI boards are auto-detected and configured. Do not attempt to
ian@0 57 configure PCI boards with the LILO append command. If you wish to override
ian@0 58 previous configuration data (As set by digiConfig), but you do not wish to
ian@0 59 configure any specific card (Example if there are PCI cards in the system)
ian@0 60 the following override command will accomplish this:
ian@0 61 -> append="digi=2"
ian@0 62
ian@0 63 Samples:
ian@0 64 append="digiepca=E,PC/Xe,D,16,200,D0000"
ian@0 65 or
ian@0 66 append="digi=1,0,0,16,512,851968"
ian@0 67
ian@0 68 Supporting Tools:
ian@0 69 -----------------
ian@0 70 Supporting tools include digiDload, digiConfig, buildPCI, and ditty. See
ian@0 71 drivers/char/README.epca for more details. Note,
ian@0 72 this driver REQUIRES that digiDload be executed prior to it being used.
ian@0 73 Failure to do this will result in an ENODEV error.
ian@0 74
ian@0 75 Documentation:
ian@0 76 --------------
ian@0 77 Complete documentation for this product may be found in the tool package.
ian@0 78
ian@0 79 Sources of information and support:
ian@0 80 -----------------------------------
ian@0 81 Digi Intl. support site for this product:
ian@0 82
ian@0 83 -> http://www.digi.com
ian@0 84
ian@0 85 Acknowledgments:
ian@0 86 ----------------
ian@0 87 Much of this work (And even text) was derived from a similar document
ian@0 88 supporting the original public domain DigiBoard driver Copyright (C)
ian@0 89 1994,1995 Troy De Jongh. Many thanks to Christoph Lameter
ian@0 90 (christoph@lameter.com) and Mike McLagan (mike.mclagan@linux.org) who authored
ian@0 91 and contributed to the original document.
ian@0 92
ian@0 93 Changelog:
ian@0 94 ----------
ian@0 95 10-29-04: Update status of driver, remove dead links in document
ian@0 96 James Nelson <james4765@gmail.com>
ian@0 97
ian@0 98 2000 (?) Original Document