ia64/linux-2.6.18-xen.hg

view Documentation/rocket.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
children
line source
1 Comtrol(tm) RocketPort(R)/RocketModem(TM) Series
2 Device Driver for the Linux Operating System
4 =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
6 PRODUCT OVERVIEW
7 ----------------
9 This driver provides a loadable kernel driver for the Comtrol RocketPort
10 and RocketModem PCI boards. These boards provide, 2, 4, 8, 16, or 32
11 high-speed serial ports or modems. This driver supports up to a combination
12 of four RocketPort or RocketModems boards in one machine simultaneously.
13 This file assumes that you are using the RocketPort driver which is
14 integrated into the kernel sources.
16 The driver can also be installed as an external module using the usual
17 "make;make install" routine. This external module driver, obtainable
18 from the Comtrol website listed below, is useful for updating the driver
19 or installing it into kernels which do not have the driver configured
20 into them. Installations instructions for the external module
21 are in the included README and HW_INSTALL files.
23 RocketPort ISA and RocketModem II PCI boards currently are only supported by
24 this driver in module form.
26 The RocketPort ISA board requires I/O ports to be configured by the DIP
27 switches on the board. See the section "ISA Rocketport Boards" below for
28 information on how to set the DIP switches.
30 You pass the I/O port to the driver using the following module parameters:
32 board1 : I/O port for the first ISA board
33 board2 : I/O port for the second ISA board
34 board3 : I/O port for the third ISA board
35 board4 : I/O port for the fourth ISA board
37 There is a set of utilities and scripts provided with the external driver
38 ( downloadable from http://www.comtrol.com ) that ease the configuration and
39 setup of the ISA cards.
41 The RocketModem II PCI boards require firmware to be loaded into the card
42 before it will function. The driver has only been tested as a module for this
43 board.
45 =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
47 INSTALLATION PROCEDURES
48 -----------------------
50 RocketPort/RocketModem PCI cards require no driver configuration, they are
51 automatically detected and configured.
53 The RocketPort driver can be installed as a module (recommended) or built
54 into the kernel. This is selected, as for other drivers, through the `make config`
55 command from the root of the Linux source tree during the kernel build process.
57 The RocketPort/RocketModem serial ports installed by this driver are assigned
58 device major number 46, and will be named /dev/ttyRx, where x is the port number
59 starting at zero (ex. /dev/ttyR0, /devttyR1, ...). If you have multiple cards
60 installed in the system, the mapping of port names to serial ports is displayed
61 in the system log at /var/log/messages.
63 If installed as a module, the module must be loaded. This can be done
64 manually by entering "modprobe rocket". To have the module loaded automatically
65 upon system boot, edit the /etc/modprobe.conf file and add the line
66 "alias char-major-46 rocket".
68 In order to use the ports, their device names (nodes) must be created with mknod.
69 This is only required once, the system will retain the names once created. To
70 create the RocketPort/RocketModem device names, use the command
71 "mknod /dev/ttyRx c 46 x" where x is the port number starting at zero. For example:
73 >mknod /dev/ttyR0 c 46 0
74 >mknod /dev/ttyR1 c 46 1
75 >mknod /dev/ttyR2 c 46 2
77 The Linux script MAKEDEV will create the first 16 ttyRx device names (nodes)
78 for you:
80 >/dev/MAKEDEV ttyR
82 =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
84 ISA Rocketport Boards
85 ---------------------
87 You must assign and configure the I/O addresses used by the ISA Rocketport
88 card before installing and using it. This is done by setting a set of DIP
89 switches on the Rocketport board.
92 SETTING THE I/O ADDRESS
93 -----------------------
95 Before installing RocketPort(R) or RocketPort RA boards, you must find
96 a range of I/O addresses for it to use. The first RocketPort card
97 requires a 68-byte contiguous block of I/O addresses, starting at one
98 of the following: 0x100h, 0x140h, 0x180h, 0x200h, 0x240h, 0x280h,
99 0x300h, 0x340h, 0x380h. This I/O address must be reflected in the DIP
100 switiches of *all* of the Rocketport cards.
102 The second, third, and fourth RocketPort cards require a 64-byte
103 contiguous block of I/O addresses, starting at one of the following
104 I/O addresses: 0x100h, 0x140h, 0x180h, 0x1C0h, 0x200h, 0x240h, 0x280h,
105 0x2C0h, 0x300h, 0x340h, 0x380h, 0x3C0h. The I/O address used by the
106 second, third, and fourth Rocketport cards (if present) are set via
107 software control. The DIP switch settings for the I/O address must be
108 set to the value of the first Rocketport cards.
110 In order to destinguish each of the card from the others, each card
111 must have a unique board ID set on the dip switches. The first
112 Rocketport board must be set with the DIP switches corresponding to
113 the first board, the second board must be set with the DIP switches
114 corresponding to the second board, etc. IMPORTANT: The board ID is
115 the only place where the DIP switch settings should differ between the
116 various Rocketport boards in a system.
118 The I/O address range used by any of the RocketPort cards must not
119 conflict with any other cards in the system, including other
120 RocketPort cards. Below, you will find a list of commonly used I/O
121 address ranges which may be in use by other devices in your system.
122 On a Linux system, "cat /proc/ioports" will also be helpful in
123 identifying what I/O addresses are being used by devics on your
124 system.
126 Remember, the FIRST RocketPort uses 68 I/O addresses. So, if you set it
127 for 0x100, it will occupy 0x100 to 0x143. This would mean that you
128 CAN NOT set the second, third or fourth board for address 0x140 since
129 the first 4 bytes of that range are used by the first board. You would
130 need to set the second, third, or fourth board to one of the next available
131 blocks such as 0x180.
133 =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
135 RocketPort and RocketPort RA SW1 Settings:
137 +-------------------------------+
138 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 |
139 +-------+-------+---------------+
140 | Unused| Card | I/O Port Block|
141 +-------------------------------+
143 DIP Switches DIP Switches
144 7 8 6 5
145 =================== ===================
146 On On UNUSED, MUST BE ON. On On First Card <==== Default
147 On Off Second Card
148 Off On Third Card
149 Off Off Fourth Card
151 DIP Switches I/O Address Range
152 4 3 2 1 Used by the First Card
153 =====================================
154 On Off On Off 100-143
155 On Off Off On 140-183
156 On Off Off Off 180-1C3 <==== Default
157 Off On On Off 200-243
158 Off On Off On 240-283
159 Off On Off Off 280-2C3
160 Off Off On Off 300-343
161 Off Off Off On 340-383
162 Off Off Off Off 380-3C3
164 =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
166 REPORTING BUGS
167 --------------
169 For technical support, please provide the following
170 information: Driver version, kernel release, distribution of
171 kernel, and type of board you are using. Error messages and log
172 printouts port configuration details are especially helpful.
174 USA
175 Phone: (612) 494-4100
176 FAX: (612) 494-4199
177 email: support@comtrol.com
179 Comtrol Europe
180 Phone: +44 (0) 1 869 323-220
181 FAX: +44 (0) 1 869 323-211
182 email: support@comtrol.co.uk
184 Web: http://www.comtrol.com
185 FTP: ftp.comtrol.com
187 =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-