view Documentation/networking/ray_cs.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 September 21, 1999
3 Copyright (c) 1998 Corey Thomas (corey@world.std.com)
5 This file is the documentation for the Raylink Wireless LAN card driver for
6 Linux. The Raylink wireless LAN card is a PCMCIA card which provides IEEE
7 802.11 compatible wireless network connectivity at 1 and 2 megabits/second.
8 See http://www.raytheon.com/micro/raylink/ for more information on the Raylink
9 card. This driver is in early development and does have bugs. See the known
10 bugs and limitations at the end of this document for more information.
11 This driver also works with WebGear's Aviator 2.4 and Aviator Pro
12 wireless LAN cards.
14 As of kernel 2.3.18, the ray_cs driver is part of the Linux kernel
15 source. My web page for the development of ray_cs is at
16 http://world.std.com/~corey/raylink.html and I can be emailed at
17 corey@world.std.com
19 The kernel driver is based on ray_cs-1.62.tgz
21 The driver at my web page is intended to be used as an add on to
22 David Hinds pcmcia package. All the command line parameters are
23 available when compiled as a module. When built into the kernel, only
24 the essid= string parameter is available via the kernel command line.
25 This will change after the method of sorting out parameters for all
26 the PCMCIA drivers is agreed upon. If you must have a built in driver
27 with nondefault parameters, they can be edited in
28 /usr/src/linux/drivers/net/pcmcia/ray_cs.c. Searching for module_param
29 will find them all.
31 Information on card services is available at:
32 http://pcmcia-cs.sourceforge.net/
35 Card services user programs are still required for PCMCIA devices.
36 pcmcia-cs-3.1.1 or greater is required for the kernel version of
37 the driver.
39 Currently, ray_cs is not part of David Hinds card services package,
40 so the following magic is required.
42 At the end of the /etc/pcmcia/config.opts file, add the line:
43 source ./ray_cs.opts
44 This will make card services read the ray_cs.opts file
45 when starting. Create the file /etc/pcmcia/ray_cs.opts containing the
46 following:
48 #### start of /etc/pcmcia/ray_cs.opts ###################
49 # Configuration options for Raylink Wireless LAN PCMCIA card
50 device "ray_cs"
51 class "network" module "misc/ray_cs"
53 card "RayLink PC Card WLAN Adapter"
54 manfid 0x01a6, 0x0000
55 bind "ray_cs"
57 module "misc/ray_cs" opts ""
58 #### end of /etc/pcmcia/ray_cs.opts #####################
61 To join an existing network with
62 different parameters, contact the network administrator for the
63 configuration information, and edit /etc/pcmcia/ray_cs.opts.
64 Add the parameters below between the empty quotes.
66 Parameters for ray_cs driver which may be specified in ray_cs.opts:
68 bc integer 0 = normal mode (802.11 timing)
69 1 = slow down inter frame timing to allow
70 operation with older breezecom access
71 points.
73 beacon_period integer beacon period in Kilo-microseconds
74 legal values = must be integer multiple
75 of hop dwell
76 default = 256
78 country integer 1 = USA (default)
79 2 = Europe
80 3 = Japan
81 4 = Korea
82 5 = Spain
83 6 = France
84 7 = Israel
85 8 = Australia
87 essid string ESS ID - network name to join
88 string with maximum length of 32 chars
89 default value = "ADHOC_ESSID"
91 hop_dwell integer hop dwell time in Kilo-microseconds
92 legal values = 16,32,64,128(default),256
94 irq_mask integer linux standard 16 bit value 1bit/IRQ
95 lsb is IRQ 0, bit 1 is IRQ 1 etc.
96 Used to restrict choice of IRQ's to use.
97 Recommended method for controlling
98 interrupts is in /etc/pcmcia/config.opts
100 net_type integer 0 (default) = adhoc network,
101 1 = infrastructure
103 phy_addr string string containing new MAC address in
104 hex, must start with x eg
105 x00008f123456
107 psm integer 0 = continuously active
108 1 = power save mode (not useful yet)
110 pc_debug integer (0-5) larger values for more verbose
111 logging. Replaces ray_debug.
113 ray_debug integer Replaced with pc_debug
115 ray_mem_speed integer defaults to 500
117 sniffer integer 0 = not sniffer (default)
118 1 = sniffer which can be used to record all
119 network traffic using tcpdump or similar,
120 but no normal network use is allowed.
122 translate integer 0 = no translation (encapsulate frames)
123 1 = translation (RFC1042/802.1)
126 More on sniffer mode:
128 tcpdump does not understand 802.11 headers, so it can't
129 interpret the contents, but it can record to a file. This is only
130 useful for debugging 802.11 lowlevel protocols that are not visible to
131 linux. If you want to watch ftp xfers, or do similar things, you
132 don't need to use sniffer mode. Also, some packet types are never
133 sent up by the card, so you will never see them (ack, rts, cts, probe
134 etc.) There is a simple program (showcap) included in the ray_cs
135 package which parses the 802.11 headers.
137 Known Problems and missing features
139 Does not work with non x86
141 Does not work with SMP
143 Support for defragmenting frames is not yet debugged, and in
144 fact is known to not work. I have never encountered a net set
145 up to fragment, but still, it should be fixed.
147 The ioctl support is incomplete. The hardware address cannot be set
148 using ifconfig yet. If a different hardware address is needed, it may
149 be set using the phy_addr parameter in ray_cs.opts. This requires
150 a card insertion to take effect.