ia64/linux-2.6.18-xen.hg

view Documentation/sysctl/kernel.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 Documentation for /proc/sys/kernel/* kernel version 2.2.10
2 (c) 1998, 1999, Rik van Riel <riel@nl.linux.org>
4 For general info and legal blurb, please look in README.
6 ==============================================================
8 This file contains documentation for the sysctl files in
9 /proc/sys/kernel/ and is valid for Linux kernel version 2.2.
11 The files in this directory can be used to tune and monitor
12 miscellaneous and general things in the operation of the Linux
13 kernel. Since some of the files _can_ be used to screw up your
14 system, it is advisable to read both documentation and source
15 before actually making adjustments.
17 Currently, these files might (depending on your configuration)
18 show up in /proc/sys/kernel:
19 - acpi_video_flags
20 - acct
21 - core_pattern
22 - core_uses_pid
23 - ctrl-alt-del
24 - dentry-state
25 - domainname
26 - hostname
27 - hotplug
28 - java-appletviewer [ binfmt_java, obsolete ]
29 - java-interpreter [ binfmt_java, obsolete ]
30 - l2cr [ PPC only ]
31 - modprobe ==> Documentation/kmod.txt
32 - msgmax
33 - msgmnb
34 - msgmni
35 - osrelease
36 - ostype
37 - overflowgid
38 - overflowuid
39 - panic
40 - pid_max
41 - powersave-nap [ PPC only ]
42 - printk
43 - real-root-dev ==> Documentation/initrd.txt
44 - reboot-cmd [ SPARC only ]
45 - rtsig-max
46 - rtsig-nr
47 - sem
48 - sg-big-buff [ generic SCSI device (sg) ]
49 - shmall
50 - shmmax [ sysv ipc ]
51 - shmmni
52 - stop-a [ SPARC only ]
53 - sysrq ==> Documentation/sysrq.txt
54 - tainted
55 - threads-max
56 - version
58 ==============================================================
60 acpi_video_flags:
62 flags
64 See Doc*/kernel/power/video.txt, it allows mode of video boot to be
65 set during run time.
67 ==============================================================
69 acct:
71 highwater lowwater frequency
73 If BSD-style process accounting is enabled these values control
74 its behaviour. If free space on filesystem where the log lives
75 goes below <lowwater>% accounting suspends. If free space gets
76 above <highwater>% accounting resumes. <Frequency> determines
77 how often do we check the amount of free space (value is in
78 seconds). Default:
79 4 2 30
80 That is, suspend accounting if there left <= 2% free; resume it
81 if we got >=4%; consider information about amount of free space
82 valid for 30 seconds.
84 ==============================================================
86 core_pattern:
88 core_pattern is used to specify a core dumpfile pattern name.
89 . max length 64 characters; default value is "core"
90 . core_pattern is used as a pattern template for the output filename;
91 certain string patterns (beginning with '%') are substituted with
92 their actual values.
93 . backward compatibility with core_uses_pid:
94 If core_pattern does not include "%p" (default does not)
95 and core_uses_pid is set, then .PID will be appended to
96 the filename.
97 . corename format specifiers:
98 %<NUL> '%' is dropped
99 %% output one '%'
100 %p pid
101 %u uid
102 %g gid
103 %s signal number
104 %t UNIX time of dump
105 %h hostname
106 %e executable filename
107 %<OTHER> both are dropped
109 ==============================================================
111 core_uses_pid:
113 The default coredump filename is "core". By setting
114 core_uses_pid to 1, the coredump filename becomes core.PID.
115 If core_pattern does not include "%p" (default does not)
116 and core_uses_pid is set, then .PID will be appended to
117 the filename.
119 ==============================================================
121 ctrl-alt-del:
123 When the value in this file is 0, ctrl-alt-del is trapped and
124 sent to the init(1) program to handle a graceful restart.
125 When, however, the value is > 0, Linux's reaction to a Vulcan
126 Nerve Pinch (tm) will be an immediate reboot, without even
127 syncing its dirty buffers.
129 Note: when a program (like dosemu) has the keyboard in 'raw'
130 mode, the ctrl-alt-del is intercepted by the program before it
131 ever reaches the kernel tty layer, and it's up to the program
132 to decide what to do with it.
134 ==============================================================
136 domainname & hostname:
138 These files can be used to set the NIS/YP domainname and the
139 hostname of your box in exactly the same way as the commands
140 domainname and hostname, i.e.:
141 # echo "darkstar" > /proc/sys/kernel/hostname
142 # echo "mydomain" > /proc/sys/kernel/domainname
143 has the same effect as
144 # hostname "darkstar"
145 # domainname "mydomain"
147 Note, however, that the classic darkstar.frop.org has the
148 hostname "darkstar" and DNS (Internet Domain Name Server)
149 domainname "frop.org", not to be confused with the NIS (Network
150 Information Service) or YP (Yellow Pages) domainname. These two
151 domain names are in general different. For a detailed discussion
152 see the hostname(1) man page.
154 ==============================================================
156 hotplug:
158 Path for the hotplug policy agent.
159 Default value is "/sbin/hotplug".
161 ==============================================================
163 l2cr: (PPC only)
165 This flag controls the L2 cache of G3 processor boards. If
166 0, the cache is disabled. Enabled if nonzero.
168 ==============================================================
170 osrelease, ostype & version:
172 # cat osrelease
173 2.1.88
174 # cat ostype
175 Linux
176 # cat version
177 #5 Wed Feb 25 21:49:24 MET 1998
179 The files osrelease and ostype should be clear enough. Version
180 needs a little more clarification however. The '#5' means that
181 this is the fifth kernel built from this source base and the
182 date behind it indicates the time the kernel was built.
183 The only way to tune these values is to rebuild the kernel :-)
185 ==============================================================
187 overflowgid & overflowuid:
189 if your architecture did not always support 32-bit UIDs (i.e. arm, i386,
190 m68k, sh, and sparc32), a fixed UID and GID will be returned to
191 applications that use the old 16-bit UID/GID system calls, if the actual
192 UID or GID would exceed 65535.
194 These sysctls allow you to change the value of the fixed UID and GID.
195 The default is 65534.
197 ==============================================================
199 panic:
201 The value in this file represents the number of seconds the
202 kernel waits before rebooting on a panic. When you use the
203 software watchdog, the recommended setting is 60.
205 ==============================================================
207 panic_on_oops:
209 Controls the kernel's behaviour when an oops or BUG is encountered.
211 0: try to continue operation
213 1: panic immediatly. If the `panic' sysctl is also non-zero then the
214 machine will be rebooted.
216 ==============================================================
218 pid_max:
220 PID allocation wrap value. When the kenrel's next PID value
221 reaches this value, it wraps back to a minimum PID value.
222 PIDs of value pid_max or larger are not allocated.
224 ==============================================================
226 powersave-nap: (PPC only)
228 If set, Linux-PPC will use the 'nap' mode of powersaving,
229 otherwise the 'doze' mode will be used.
231 ==============================================================
233 printk:
235 The four values in printk denote: console_loglevel,
236 default_message_loglevel, minimum_console_loglevel and
237 default_console_loglevel respectively.
239 These values influence printk() behavior when printing or
240 logging error messages. See 'man 2 syslog' for more info on
241 the different loglevels.
243 - console_loglevel: messages with a higher priority than
244 this will be printed to the console
245 - default_message_level: messages without an explicit priority
246 will be printed with this priority
247 - minimum_console_loglevel: minimum (highest) value to which
248 console_loglevel can be set
249 - default_console_loglevel: default value for console_loglevel
251 ==============================================================
253 printk_ratelimit:
255 Some warning messages are rate limited. printk_ratelimit specifies
256 the minimum length of time between these messages (in jiffies), by
257 default we allow one every 5 seconds.
259 A value of 0 will disable rate limiting.
261 ==============================================================
263 printk_ratelimit_burst:
265 While long term we enforce one message per printk_ratelimit
266 seconds, we do allow a burst of messages to pass through.
267 printk_ratelimit_burst specifies the number of messages we can
268 send before ratelimiting kicks in.
270 ==============================================================
272 reboot-cmd: (Sparc only)
274 ??? This seems to be a way to give an argument to the Sparc
275 ROM/Flash boot loader. Maybe to tell it what to do after
276 rebooting. ???
278 ==============================================================
280 rtsig-max & rtsig-nr:
282 The file rtsig-max can be used to tune the maximum number
283 of POSIX realtime (queued) signals that can be outstanding
284 in the system.
286 rtsig-nr shows the number of RT signals currently queued.
288 ==============================================================
290 sg-big-buff:
292 This file shows the size of the generic SCSI (sg) buffer.
293 You can't tune it just yet, but you could change it on
294 compile time by editing include/scsi/sg.h and changing
295 the value of SG_BIG_BUFF.
297 There shouldn't be any reason to change this value. If
298 you can come up with one, you probably know what you
299 are doing anyway :)
301 ==============================================================
303 shmmax:
305 This value can be used to query and set the run time limit
306 on the maximum shared memory segment size that can be created.
307 Shared memory segments up to 1Gb are now supported in the
308 kernel. This value defaults to SHMMAX.
310 ==============================================================
312 tainted:
314 Non-zero if the kernel has been tainted. Numeric values, which
315 can be ORed together:
317 1 - A module with a non-GPL license has been loaded, this
318 includes modules with no license.
319 Set by modutils >= 2.4.9 and module-init-tools.
320 2 - A module was force loaded by insmod -f.
321 Set by modutils >= 2.4.9 and module-init-tools.
322 4 - Unsafe SMP processors: SMP with CPUs not designed for SMP.