annotate Documentation/networking/smctr.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 Text File for the SMC TokenCard TokenRing Linux driver (smctr.c).
ian@0 2 By Jay Schulist <jschlst@samba.org>
ian@0 3
ian@0 4 The Linux SMC Token Ring driver works with the SMC TokenCard Elite (8115T)
ian@0 5 ISA and SMC TokenCard Elite/A (8115T/A) MCA adapters.
ian@0 6
ian@0 7 Latest information on this driver can be obtained on the Linux-SNA WWW site.
ian@0 8 Please point your browser to: http://www.linux-sna.org
ian@0 9
ian@0 10 This driver is rather simple to use. Select Y to Token Ring adapter support
ian@0 11 in the kernel configuration. A choice for SMC Token Ring adapters will
ian@0 12 appear. This drives supports all SMC ISA/MCA adapters. Choose this
ian@0 13 option. I personally recommend compiling the driver as a module (M), but if you
ian@0 14 you would like to compile it staticly answer Y instead.
ian@0 15
ian@0 16 This driver supports multiple adapters without the need to load multiple copies
ian@0 17 of the driver. You should be able to load up to 7 adapters without any kernel
ian@0 18 modifications, if you are in need of more please contact the maintainer of this
ian@0 19 driver.
ian@0 20
ian@0 21 Load the driver either by lilo/loadlin or as a module. When a module using the
ian@0 22 following command will suffice for most:
ian@0 23
ian@0 24 # modprobe smctr
ian@0 25 smctr.c: v1.00 12/6/99 by jschlst@samba.org
ian@0 26 tr0: SMC TokenCard 8115T at Io 0x300, Irq 10, Rom 0xd8000, Ram 0xcc000.
ian@0 27
ian@0 28 Now just setup the device via ifconfig and set and routes you may have. After
ian@0 29 this you are ready to start sending some tokens.
ian@0 30
ian@0 31 Errata:
ian@0 32 1). For anyone wondering where to pick up the SMC adapters please browse
ian@0 33 to http://www.smc.com
ian@0 34
ian@0 35 2). If you are the first/only Token Ring Client on a Token Ring LAN, please
ian@0 36 specify the ringspeed with the ringspeed=[4/16] module option. If no
ian@0 37 ringspeed is specified the driver will attempt to autodetect the ring
ian@0 38 speed and/or if the adapter is the first/only station on the ring take
ian@0 39 the appropriate actions.
ian@0 40
ian@0 41 NOTE: Default ring speed is 16MB UTP.
ian@0 42
ian@0 43 3). PnP support for this adapter sucks. I recommend hard setting the
ian@0 44 IO/MEM/IRQ by the jumpers on the adapter. If this is not possible
ian@0 45 load the module with the following io=[ioaddr] mem=[mem_addr]
ian@0 46 irq=[irq_num].
ian@0 47
ian@0 48 The following IRQ, IO, and MEM settings are supported.
ian@0 49
ian@0 50 IO ports:
ian@0 51 0x200, 0x220, 0x240, 0x260, 0x280, 0x2A0, 0x2C0, 0x2E0, 0x300,
ian@0 52 0x320, 0x340, 0x360, 0x380.
ian@0 53
ian@0 54 IRQs:
ian@0 55 2, 3, 4, 5, 7, 8, 9, 10, 11, 12, 13, 14, 15
ian@0 56
ian@0 57 Memory addresses:
ian@0 58 0xA0000, 0xA4000, 0xA8000, 0xAC000, 0xB0000, 0xB4000,
ian@0 59 0xB8000, 0xBC000, 0xC0000, 0xC4000, 0xC8000, 0xCC000,
ian@0 60 0xD0000, 0xD4000, 0xD8000, 0xDC000, 0xE0000, 0xE4000,
ian@0 61 0xE8000, 0xEC000, 0xF0000, 0xF4000, 0xF8000, 0xFC000
ian@0 62
ian@0 63 This driver is under the GNU General Public License. Its Firmware image is
ian@0 64 included as an initialized C-array and is licensed by SMC to the Linux
ian@0 65 users of this driver. However no warranty about its fitness is expressed or
ian@0 66 implied by SMC.