ia64/linux-2.6.18-xen.hg

view Documentation/ftape.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 Intro
2 =====
4 This file describes some issues involved when using the "ftape"
5 floppy tape device driver that comes with the Linux kernel.
7 ftape has a home page at
9 http://ftape.dot-heine.de/
11 which contains further information about ftape. Please cross check
12 this WWW address against the address given (if any) in the MAINTAINERS
13 file located in the top level directory of the Linux kernel source
14 tree.
16 NOTE: This is an unmaintained set of drivers, and it is not guaranteed to work.
17 If you are interested in taking over maintenance, contact Claus-Justus Heine
18 <ch@dot-heine.de>, the former maintainer.
20 Contents
21 ========
23 A minus 1: Ftape documentation
25 A. Changes
26 1. Goal
27 2. I/O Block Size
28 3. Write Access when not at EOD (End Of Data) or BOT (Begin Of Tape)
29 4. Formatting
30 5. Interchanging cartridges with other operating systems
32 B. Debugging Output
33 1. Introduction
34 2. Tuning the debugging output
36 C. Boot and load time configuration
37 1. Setting boot time parameters
38 2. Module load time parameters
39 3. Ftape boot- and load time options
40 4. Example kernel parameter setting
41 5. Example module parameter setting
43 D. Support and contacts
45 *******************************************************************************
47 A minus 1. Ftape documentation
48 ==============================
50 Unluckily, the ftape-HOWTO is out of date. This really needs to be
51 changed. Up to date documentation as well as recent development
52 versions of ftape and useful links to related topics can be found at
53 the ftape home page at
55 http://ftape.dot-heine.de/
57 *******************************************************************************
59 A. Changes
60 ==========
62 1. Goal
63 ~~~~
64 The goal of all that incompatibilities was to give ftape an interface
65 that resembles the interface provided by SCSI tape drives as close
66 as possible. Thus any Unix backup program that is known to work
67 with SCSI tape drives should also work.
69 The concept of a fixed block size for read/write transfers is
70 rather unrelated to this SCSI tape compatibility at the file system
71 interface level. It developed out of a feature of zftape, a
72 block wise user transparent on-the-fly compression. That compression
73 support will not be dropped in future releases for compatibility
74 reasons with previous releases of zftape.
76 2. I/O Block Size
77 ~~~~~~~~~~~~~~
78 The block size defaults to 10k which is the default block size of
79 GNU tar.
81 The block size can be tuned either during kernel configuration or
82 at runtime with the MTIOCTOP ioctl using the MTSETBLK operation
83 (i.e. do "mt -f /dev/qft0" setblk #BLKSZ). A block size of 0
84 switches to variable block size mode i.e. "mt setblk 0" switches
85 off the block size restriction. However, this disables zftape's
86 built in on-the-fly compression which doesn't work with variable
87 block size mode.
89 The BLKSZ parameter must be given as a byte count and must be a
90 multiple of 32k or 0, i.e. use "mt setblk 32768" to switch to a
91 block size of 32k.
93 The typical symptom of a block size mismatch is an "invalid
94 argument" error message.
96 3. Write Access when not at EOD (End Of Data) or BOT (Begin Of Tape)
97 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
98 zftape (the file system interface of ftape-3.x) denies write access
99 to the tape cartridge when it isn't positioned either at BOT or
100 EOD.
102 4. Formatting
103 ~~~~~~~~~~
104 ftape DOES support formatting of floppy tape cartridges. You need the
105 `ftformat' program that is shipped with the modules version of ftape.
106 Please get the latest version of ftape from
108 ftp://sunsite.unc.edu/pub/Linux/kernel/tapes
110 or from the ftape home page at
112 http://ftape.dot-heine.de/
114 `ftformat' is contained in the `./contrib/' subdirectory of that
115 separate ftape package.
117 5. Interchanging cartridges with other operating systems
118 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
120 The internal emulation of Unix tape device file marks has changed
121 completely. ftape now uses the volume table segment as specified
122 by the QIC-40/80/3010/3020/113 standards to emulate file marks. As
123 a consequence there is limited support to interchange cartridges
124 with other operating systems.
126 To be more precise: ftape will detect volumes written by other OS's
127 programs and other OS's programs will detect volumes written by
128 ftape.
130 However, it isn't possible to extract the data dumped to the tape
131 by some MSDOS program with ftape. This exceeds the scope of a
132 kernel device driver. If you need such functionality, then go ahead
133 and write a user space utility that is able to do that. ftape already
134 provides all kernel level support necessary to do that.
136 *******************************************************************************
138 B. Debugging Output
139 ================
141 1. Introduction
142 ~~~~~~~~~~~~
143 The ftape driver can be very noisy in that is can print lots of
144 debugging messages to the kernel log files and the system console.
145 While this is useful for debugging it might be annoying during
146 normal use and enlarges the size of the driver by several kilobytes.
148 To reduce the size of the driver you can trim the maximal amount of
149 debugging information available during kernel configuration. Please
150 refer to the kernel configuration script and its on-line help
151 functionality.
153 The amount of debugging output maps to the "tracing" boot time
154 option and the "ft_tracing" modules option as follows:
156 0 bugs
157 1 + errors (with call-stack dump)
158 2 + warnings
159 3 + information
160 4 + more information
161 5 + program flow
162 6 + fdc/dma info
163 7 + data flow
164 8 + everything else
166 2. Tuning the debugging output
167 ~~~~~~~~~~~~~~~~~~~~~~~~~~~
168 To reduce the amount of debugging output printed to the system
169 console you can
171 i) trim the debugging output at run-time with
173 mt -f /dev/nqft0 setdensity #DBGLVL
175 where "#DBGLVL" is a number between 0 and 9
177 ii) trim the debugging output at module load time with
179 modprobe ftape ft_tracing=#DBGLVL
181 Of course, this applies only if you have configured ftape to be
182 compiled as a module.
184 iii) trim the debugging output during system boot time. Add the
185 following to the kernel command line:
187 ftape=#DBGLVL,tracing
189 Please refer also to the next section if you don't know how to
190 set boot time parameters.
192 *******************************************************************************
194 C. Boot and load time configuration
195 ================================
197 1. Setting boot time parameters
198 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
199 Assuming that you use lilo, the LI)nux LO)ader, boot time kernel
200 parameters can be set by adding a line
202 append some_kernel_boot_time_parameter
204 to `/etc/lilo.conf' or at real boot time by typing in the options
205 at the prompt provided by LILO. I can't give you advice on how to
206 specify those parameters with other loaders as I don't use them.
208 For ftape, each "some_kernel_boot_time_parameter" looks like
209 "ftape=value,option". As an example, the debugging output can be
210 increased with
212 ftape=4,tracing
214 NOTE: the value precedes the option name.
216 2. Module load time parameters
217 ~~~~~~~~~~~~~~~~~~~~~~~~~~~
218 Module parameters can be specified either directly when invoking
219 the program 'modprobe' at the shell prompt:
221 modprobe ftape ft_tracing=4
223 or by editing the file `/etc/modprobe.conf' in which case they take
224 effect each time when the module is loaded with `modprobe' (please
225 refer to the respective manual pages). Thus, you should add a line
227 options ftape ft_tracing=4
229 to `/etc/modprobe.conf` if you intend to increase the debugging
230 output of the driver.
233 3. Ftape boot- and load time options
234 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
236 i. Controlling the amount of debugging output
237 DBGLVL has to be replaced by a number between 0 and 8.
239 module | kernel command line
240 -----------------------|----------------------
241 ft_tracing=DBGLVL | ftape=DBGLVL,tracing
243 ii. Hardware setup
244 BASE is the base address of your floppy disk controller,
245 IRQ and DMA give its interrupt and DMA channel, respectively.
246 BOOL is an integer, "0" means "no"; any other value means
247 "yes". You don't need to specify anything if connecting your tape
248 drive to the standard floppy disk controller. All of these
249 values have reasonable defaults. The defaults can be modified
250 during kernel configuration, i.e. while running "make config",
251 "make menuconfig" or "make xconfig" in the top level directory
252 of the Linux kernel source tree. Please refer also to the on
253 line documentation provided during that kernel configuration
254 process.
256 ft_probe_fc10 is set to a non-zero value if you wish for ftape to
257 probe for a Colorado FC-10 or FC-20 controller.
259 ft_mach2 is set to a non-zero value if you wish for ftape to probe
260 for a Mountain MACH-2 controller.
262 module | kernel command line
263 -----------------------|----------------------
264 ft_fdc_base=BASE | ftape=BASE,ioport
265 ft_fdc_irq=IRQ | ftape=IRQ,irq
266 ft_fdc_dma=DMA | ftape=DMA,dma
267 ft_probe_fc10=BOOL | ftape=BOOL,fc10
268 ft_mach2=BOOL | ftape=BOOL,mach2
269 ft_fdc_threshold=THR | ftape=THR,threshold
270 ft_fdc_rate_limit=RATE | ftape=RATE,datarate
272 4. Example kernel parameter setting
273 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
274 To configure ftape to probe for a Colorado FC-10/FC-20 controller
275 and to increase the amount of debugging output a little bit, add
276 the following line to `/etc/lilo.conf':
278 append ftape=1,fc10 ftape=4,tracing
280 5. Example module parameter setting
281 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
282 To do the same, but with ftape compiled as a loadable kernel
283 module, add the following line to `/etc/modprobe.conf':
285 options ftape ft_probe_fc10=1 ft_tracing=4
287 *******************************************************************************
289 D. Support and contacts
290 ====================
292 Ftape is distributed under the GNU General Public License. There is
293 absolutely no warranty for this software. However, you can reach
294 the current maintainer of the ftape package under the email address
295 given in the MAINTAINERS file which is located in the top level
296 directory of the Linux kernel source tree. There you'll find also
297 the relevant mailing list to use as a discussion forum and the web
298 page to query for the most recent documentation, related work and
299 development versions of ftape.
301 Changelog:
302 ==========
304 ~1996: Original Document
306 10-24-2004: General cleanup and updating, noting additional module options.
307 James Nelson <james4765@gmail.com>