ia64/linux-2.6.18-xen.hg

view drivers/acpi/Kconfig @ 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 55ec2b18fe7f
children
line source
1 #
2 # ACPI Configuration
3 #
5 menu "ACPI (Advanced Configuration and Power Interface) Support"
6 depends on !X86_VISWS
7 depends on !IA64_HP_SIM
8 depends on IA64 || X86
10 config ACPI
11 bool "ACPI Support"
12 depends on IA64 || X86
13 depends on PCI
14 select PM
15 default y
16 ---help---
17 Advanced Configuration and Power Interface (ACPI) support for
18 Linux requires an ACPI compliant platform (hardware/firmware),
19 and assumes the presence of OS-directed configuration and power
20 management (OSPM) software. This option will enlarge your
21 kernel by about 70K.
23 Linux ACPI provides a robust functional replacement for several
24 legacy configuration and power management interfaces, including
25 the Plug-and-Play BIOS specification (PnP BIOS), the
26 MultiProcessor Specification (MPS), and the Advanced Power
27 Management (APM) specification. If both ACPI and APM support
28 are configured, whichever is loaded first shall be used.
30 The ACPI SourceForge project contains the latest source code,
31 documentation, tools, mailing list subscription, and other
32 information. This project is available at:
33 <http://sourceforge.net/projects/acpi>
35 Linux support for ACPI is based on Intel Corporation's ACPI
36 Component Architecture (ACPI CA). For more information see:
37 <http://developer.intel.com/technology/iapc/acpi>
39 ACPI is an open industry specification co-developed by Compaq,
40 Intel, Microsoft, Phoenix, and Toshiba. The specification is
41 available at:
42 <http://www.acpi.info>
44 if ACPI
46 config ACPI_SLEEP
47 bool "Sleep States"
48 depends on X86 && (!SMP || SUSPEND_SMP)
49 depends on PM
50 default y
51 ---help---
52 This option adds support for ACPI suspend states.
54 With this option, you will be able to put the system "to sleep".
55 Sleep states are low power states for the system and devices. All
56 of the system operating state is saved to either memory or disk
57 (depending on the state), to allow the system to resume operation
58 quickly at your request.
60 Although this option sounds really nifty, barely any of the device
61 drivers have been converted to the new driver model and hence few
62 have proper power management support.
64 This option is not recommended for anyone except those doing driver
65 power management development.
67 config ACPI_SLEEP_PROC_FS
68 bool
69 depends on ACPI_SLEEP && PROC_FS
70 default y
72 config ACPI_SLEEP_PROC_SLEEP
73 bool "/proc/acpi/sleep (deprecated)"
74 depends on ACPI_SLEEP_PROC_FS
75 default n
76 ---help---
77 Create /proc/acpi/sleep
78 Deprecated by /sys/power/state
80 config ACPI_AC
81 tristate "AC Adapter"
82 depends on X86
83 default y
84 help
85 This driver adds support for the AC Adapter object, which indicates
86 whether a system is on AC, or not. If you have a system that can
87 switch between A/C and battery, say Y.
89 config ACPI_BATTERY
90 tristate "Battery"
91 depends on X86
92 default y
93 help
94 This driver adds support for battery information through
95 /proc/acpi/battery. If you have a mobile system with a battery,
96 say Y.
98 config ACPI_BUTTON
99 tristate "Button"
100 default y
101 help
102 This driver handles events on the power, sleep and lid buttons.
103 A daemon reads /proc/acpi/event and perform user-defined actions
104 such as shutting down the system. This is necessary for
105 software controlled poweroff.
107 config ACPI_VIDEO
108 tristate "Video"
109 depends on X86
110 help
111 This driver implement the ACPI Extensions For Display Adapters
112 for integrated graphics devices on motherboard, as specified in
113 ACPI 2.0 Specification, Appendix B, allowing to perform some basic
114 control like defining the video POST device, retrieving EDID information
115 or to setup a video output, etc.
116 Note that this is an ref. implementation only. It may or may not work
117 for your integrated video device.
119 config ACPI_HOTKEY
120 tristate "Generic Hotkey (EXPERIMENTAL)"
121 depends on EXPERIMENTAL
122 depends on X86
123 default n
124 help
125 Experimental consolidated hotkey driver.
126 If you are unsure, say N.
128 config ACPI_FAN
129 tristate "Fan"
130 default y
131 help
132 This driver adds support for ACPI fan devices, allowing user-mode
133 applications to perform basic fan control (on, off, status).
135 config ACPI_DOCK
136 tristate "Dock"
137 depends on EXPERIMENTAL
138 help
139 This driver adds support for ACPI controlled docking stations
141 config ACPI_PROCESSOR
142 tristate "Processor"
143 default y
144 help
145 This driver installs ACPI as the idle handler for Linux, and uses
146 ACPI C2 and C3 processor states to save power, on systems that
147 support it. It is required by several flavors of cpufreq
148 Performance-state drivers.
150 config ACPI_HOTPLUG_CPU
151 bool
152 depends on ACPI_PROCESSOR && HOTPLUG_CPU
153 select ACPI_CONTAINER
154 default y
156 config ACPI_THERMAL
157 tristate "Thermal Zone"
158 depends on ACPI_PROCESSOR
159 default y
160 help
161 This driver adds support for ACPI thermal zones. Most mobile and
162 some desktop systems support ACPI thermal zones. It is HIGHLY
163 recommended that this option be enabled, as your processor(s)
164 may be damaged without it.
166 config ACPI_NUMA
167 bool "NUMA support"
168 depends on NUMA
169 depends on (X86 || IA64)
170 default y if IA64_GENERIC || IA64_SGI_SN2
172 config ACPI_ASUS
173 tristate "ASUS/Medion Laptop Extras"
174 depends on X86
175 ---help---
176 This driver provides support for extra features of ACPI-compatible
177 ASUS laptops. As some of Medion laptops are made by ASUS, it may also
178 support some Medion laptops (such as 9675 for example). It makes all
179 the extra buttons generate standard ACPI events that go through
180 /proc/acpi/events, and (on some models) adds support for changing the
181 display brightness and output, switching the LCD backlight on and off,
182 and most importantly, allows you to blink those fancy LEDs intended
183 for reporting mail and wireless status.
185 Note: display switching code is currently considered EXPERIMENTAL,
186 toying with these values may even lock your machine.
188 All settings are changed via /proc/acpi/asus directory entries. Owner
189 and group for these entries can be set with asus_uid and asus_gid
190 parameters.
192 More information and a userspace daemon for handling the extra buttons
193 at <http://sourceforge.net/projects/acpi4asus/>.
195 If you have an ACPI-compatible ASUS laptop, say Y or M here. This
196 driver is still under development, so if your laptop is unsupported or
197 something works not quite as expected, please use the mailing list
198 available on the above page (acpi4asus-user@lists.sourceforge.net)
200 config ACPI_IBM
201 tristate "IBM ThinkPad Laptop Extras"
202 depends on X86
203 ---help---
204 This is a Linux ACPI driver for the IBM ThinkPad laptops. It adds
205 support for Fn-Fx key combinations, Bluetooth control, video
206 output switching, ThinkLight control, UltraBay eject and more.
207 For more information about this driver see <file:Documentation/ibm-acpi.txt>
208 and <http://ibm-acpi.sf.net/> .
210 If you have an IBM ThinkPad laptop, say Y or M here.
212 config ACPI_IBM_DOCK
213 bool "Legacy Docking Station Support"
214 depends on ACPI_IBM
215 depends on ACPI_DOCK=n
216 default n
217 ---help---
218 Allows the ibm_acpi driver to handle docking station events.
219 This support is obsoleted by CONFIG_HOTPLUG_PCI_ACPI. It will
220 allow locking and removing the laptop from the docking station,
221 but will not properly connect PCI devices.
223 If you are not sure, say N here.
225 config ACPI_TOSHIBA
226 tristate "Toshiba Laptop Extras"
227 depends on X86
228 ---help---
229 This driver adds support for access to certain system settings
230 on "legacy free" Toshiba laptops. These laptops can be recognized by
231 their lack of a BIOS setup menu and APM support.
233 On these machines, all system configuration is handled through the
234 ACPI. This driver is required for access to controls not covered
235 by the general ACPI drivers, such as LCD brightness, video output,
236 etc.
238 This driver differs from the non-ACPI Toshiba laptop driver (located
239 under "Processor type and features") in several aspects.
240 Configuration is accessed by reading and writing text files in the
241 /proc tree instead of by program interface to /dev. Furthermore, no
242 power management functions are exposed, as those are handled by the
243 general ACPI drivers.
245 More information about this driver is available at
246 <http://memebeam.org/toys/ToshibaAcpiDriver>.
248 If you have a legacy free Toshiba laptop (such as the Libretto L1
249 series), say Y.
251 config ACPI_CUSTOM_DSDT
252 bool "Include Custom DSDT"
253 depends on !STANDALONE
254 default n
255 help
256 Thist option is to load a custom ACPI DSDT
257 If you don't know what that is, say N.
259 config ACPI_CUSTOM_DSDT_FILE
260 string "Custom DSDT Table file to include"
261 depends on ACPI_CUSTOM_DSDT
262 default ""
263 help
264 Enter the full path name to the file which includes the AmlCode
265 declaration.
267 config ACPI_BLACKLIST_YEAR
268 int "Disable ACPI for systems before Jan 1st this year" if X86_32
269 default 0
270 help
271 enter a 4-digit year, eg. 2001 to disable ACPI by default
272 on platforms with DMI BIOS date before January 1st that year.
273 "acpi=force" can be used to override this mechanism.
275 Enter 0 to disable this mechanism and allow ACPI to
276 run by default no matter what the year. (default)
278 config ACPI_DEBUG
279 bool "Debug Statements"
280 default n
281 help
282 The ACPI driver can optionally report errors with a great deal
283 of verbosity. Saying Y enables these statements. This will increase
284 your kernel size by around 50K.
286 config ACPI_EC
287 bool
288 default y
289 help
290 This driver is required on some systems for the proper operation of
291 the battery and thermal drivers. If you are compiling for a
292 mobile system, say Y.
294 config ACPI_POWER
295 bool
296 default y
298 config ACPI_SYSTEM
299 bool
300 default y
301 help
302 This driver will enable your system to shut down using ACPI, and
303 dump your ACPI DSDT table using /proc/acpi/dsdt.
305 config X86_PM_TIMER
306 bool "Power Management Timer Support" if EMBEDDED
307 depends on X86
308 depends on !XEN
309 default y
310 help
311 The Power Management Timer is available on all ACPI-capable,
312 in most cases even if ACPI is unusable or blacklisted.
314 This timing source is not affected by powermanagement features
315 like aggressive processor idling, throttling, frequency and/or
316 voltage scaling, unlike the commonly used Time Stamp Counter
317 (TSC) timing source.
319 You should nearly always say Y here because many modern
320 systems require this timer.
322 config ACPI_CONTAINER
323 tristate "ACPI0004,PNP0A05 and PNP0A06 Container Driver (EXPERIMENTAL)"
324 depends on EXPERIMENTAL
325 default (ACPI_HOTPLUG_MEMORY || ACPI_HOTPLUG_CPU || ACPI_HOTPLUG_IO)
326 ---help---
327 This allows _physical_ insertion and removal of CPUs and memory.
328 This can be useful, for example, on NUMA machines that support
329 ACPI based physical hotplug of nodes, or non-NUMA machines that
330 support physical cpu/memory hot-plug.
332 If one selects "m", this driver can be loaded with
333 "modprobe acpi_container".
335 config ACPI_HOTPLUG_MEMORY
336 tristate "Memory Hotplug"
337 depends on ACPI
338 depends on MEMORY_HOTPLUG
339 default n
340 help
341 This driver adds supports for ACPI Memory Hotplug. This driver
342 provides support for fielding notifications on ACPI memory
343 devices (PNP0C80) which represent memory ranges that may be
344 onlined or offlined during runtime.
346 Enabling this driver assumes that your platform hardware
347 and firmware have support for hot-plugging physical memory. If
348 your system does not support physically adding or ripping out
349 memory DIMMs at some platfrom defined granularity (individually
350 or as a bank) at runtime, then you need not enable this driver.
352 If one selects "m," this driver can be loaded using the following
353 command:
354 $>modprobe acpi_memhotplug
356 config ACPI_SBS
357 tristate "Smart Battery System (EXPERIMENTAL)"
358 depends on X86 && I2C
359 depends on EXPERIMENTAL
360 help
361 This driver adds support for the Smart Battery System.
362 Depends on I2C (Device Drivers ---> I2C support)
363 A "Smart Battery" is quite old and quite rare compared
364 to today's ACPI "Control Method" battery.
366 config ACPI_PV_SLEEP
367 bool
368 depends on X86 && XEN && ACPI_SLEEP
369 default y
371 config PROCESSOR_EXTERNAL_CONTROL
372 bool
373 depends on (X86 || IA64) && XEN
374 default y
375 endif # ACPI
377 endmenu