ia64/linux-2.6.18-xen.hg

view arch/m68knommu/Makefile @ 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 #
2 # arch/m68knommu/Makefile
3 #
4 # This file is subject to the terms and conditions of the GNU General Public
5 # License. See the file "COPYING" in the main directory of this archive
6 # for more details.
7 #
8 # (C) Copyright 2002, Greg Ungerer <gerg@snapgear.com>
9 #
11 platform-$(CONFIG_M68328) := 68328
12 platform-$(CONFIG_M68EZ328) := 68EZ328
13 platform-$(CONFIG_M68VZ328) := 68VZ328
14 platform-$(CONFIG_M68360) := 68360
15 platform-$(CONFIG_M5206) := 5206
16 platform-$(CONFIG_M5206e) := 5206e
17 platform-$(CONFIG_M520x) := 520x
18 platform-$(CONFIG_M523x) := 523x
19 platform-$(CONFIG_M5249) := 5249
20 platform-$(CONFIG_M527x) := 527x
21 platform-$(CONFIG_M5272) := 5272
22 platform-$(CONFIG_M528x) := 528x
23 platform-$(CONFIG_M5307) := 5307
24 platform-$(CONFIG_M532x) := 532x
25 platform-$(CONFIG_M5407) := 5407
26 PLATFORM := $(platform-y)
28 board-$(CONFIG_PILOT) := pilot
29 board-$(CONFIG_UCSIMM) := ucsimm
30 board-$(CONFIG_UCDIMM) := ucdimm
31 board-$(CONFIG_UCQUICC) := uCquicc
32 board-$(CONFIG_DRAGEN2) := de2
33 board-$(CONFIG_ARNEWSH) := ARNEWSH
34 board-$(CONFIG_FREESCALE) := FREESCALE
35 board-$(CONFIG_M5235EVB) := M5235EVB
36 board-$(CONFIG_M5271EVB) := M5271EVB
37 board-$(CONFIG_M5275EVB) := M5275EVB
38 board-$(CONFIG_M5282EVB) := M5282EVB
39 board-$(CONFIG_ELITE) := eLITE
40 board-$(CONFIG_eLIA) := eLIA
41 board-$(CONFIG_NETtel) := NETtel
42 board-$(CONFIG_SECUREEDGEMP3) := MP3
43 board-$(CONFIG_CLEOPATRA) := CLEOPATRA
44 board-$(CONFIG_senTec) := senTec
45 board-$(CONFIG_SNEHA) := SNEHA
46 board-$(CONFIG_M5208EVB) := M5208EVB
47 board-$(CONFIG_MOD5272) := MOD5272
48 board-$(CONFIG_AVNET) := AVNET
49 BOARD := $(board-y)
51 model-$(CONFIG_RAMKERNEL) := ram
52 model-$(CONFIG_ROMKERNEL) := rom
53 MODEL := $(model-y)
55 #
56 # Some code support is grouped together for a common cpu-subclass (for
57 # example all ColdFire cpu's are very similar). Determine the sub-class
58 # for the selected cpu. ONLY need to define this for the non-base member
59 # of the family.
60 #
61 cpuclass-$(CONFIG_M5206) := 5307
62 cpuclass-$(CONFIG_M5206e) := 5307
63 cpuclass-$(CONFIG_M520x) := 5307
64 cpuclass-$(CONFIG_M523x) := 5307
65 cpuclass-$(CONFIG_M5249) := 5307
66 cpuclass-$(CONFIG_M527x) := 5307
67 cpuclass-$(CONFIG_M5272) := 5307
68 cpuclass-$(CONFIG_M528x) := 5307
69 cpuclass-$(CONFIG_M5307) := 5307
70 cpuclass-$(CONFIG_M532x) := 5307
71 cpuclass-$(CONFIG_M5407) := 5307
72 cpuclass-$(CONFIG_M68328) := 68328
73 cpuclass-$(CONFIG_M68EZ328) := 68328
74 cpuclass-$(CONFIG_M68VZ328) := 68328
75 cpuclass-$(CONFIG_M68360) := 68360
76 CPUCLASS := $(cpuclass-y)
78 ifneq ($(CPUCLASS),$(PLATFORM))
79 CLASSDIR := arch/m68knommu/platform/$(cpuclass-y)/
80 endif
82 export PLATFORM BOARD MODEL CPUCLASS
84 #
85 # Some CFLAG additions based on specific CPU type.
86 #
87 cflags-$(CONFIG_M5206) := -m5200
88 cflags-$(CONFIG_M5206e) := -m5200
89 cflags-$(CONFIG_M520x) := -m5307
90 cflags-$(CONFIG_M523x) := -m5307
91 cflags-$(CONFIG_M5249) := -m5200
92 cflags-$(CONFIG_M527x) := -m5307
93 cflags-$(CONFIG_M5272) := -m5307
94 cflags-$(CONFIG_M528x) := -m5307
95 cflags-$(CONFIG_M5307) := -m5307
96 cflags-$(CONFIG_M532x) := -m5307
97 cflags-$(CONFIG_M5407) := -m5200
98 cflags-$(CONFIG_M68328) := -m68000
99 cflags-$(CONFIG_M68EZ328) := -m68000
100 cflags-$(CONFIG_M68VZ328) := -m68000
101 cflags-$(CONFIG_M68360) := -m68332
103 AFLAGS += $(cflags-y)
105 CFLAGS += $(cflags-y)
106 CFLAGS += -D__linux__
107 CFLAGS += -DUTS_SYSNAME=\"uClinux\"
109 head-y := arch/m68knommu/platform/$(cpuclass-y)/head.o
111 core-y += arch/m68knommu/kernel/ \
112 arch/m68knommu/mm/ \
113 $(CLASSDIR) \
114 arch/m68knommu/platform/$(PLATFORM)/
115 libs-y += arch/m68knommu/lib/
117 archclean:
118 $(Q)$(MAKE) $(clean)=arch/m68knommu/boot