ia64/linux-2.6.18-xen.hg

view drivers/net/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 f0db1ac7ca8d
children
line source
1 #
2 # Makefile for the Linux network (ethercard) device drivers.
3 #
5 ifeq ($(CONFIG_ISDN_PPP),y)
6 obj-$(CONFIG_ISDN) += slhc.o
7 endif
9 obj-$(CONFIG_E1000) += e1000/
10 obj-$(CONFIG_E1000E) += e1000e/
11 obj-$(CONFIG_IBM_EMAC) += ibm_emac/
12 obj-$(CONFIG_IXGB) += ixgb/
13 obj-$(CONFIG_IGB) += igb/
14 obj-$(CONFIG_IXGBE) += ixgbe/
15 obj-$(CONFIG_CHELSIO_T1) += chelsio/
16 obj-$(CONFIG_BONDING) += bonding/
17 obj-$(CONFIG_GIANFAR) += gianfar_driver.o
19 gianfar_driver-objs := gianfar.o \
20 gianfar_ethtool.o \
21 gianfar_mii.o \
22 gianfar_sysfs.o
24 obj-$(CONFIG_UCC_GETH) += ucc_geth_driver.o
25 ucc_geth_driver-objs := ucc_geth.o ucc_geth_phy.o
27 #
28 # link order important here
29 #
30 obj-$(CONFIG_PLIP) += plip.o
32 obj-$(CONFIG_ROADRUNNER) += rrunner.o
34 obj-$(CONFIG_HAPPYMEAL) += sunhme.o
35 obj-$(CONFIG_SUNLANCE) += sunlance.o
36 obj-$(CONFIG_SUNQE) += sunqe.o
37 obj-$(CONFIG_SUNBMAC) += sunbmac.o
38 obj-$(CONFIG_MYRI_SBUS) += myri_sbus.o
39 obj-$(CONFIG_SUNGEM) += sungem.o sungem_phy.o
40 obj-$(CONFIG_CASSINI) += cassini.o
42 obj-$(CONFIG_MACE) += mace.o
43 obj-$(CONFIG_BMAC) += bmac.o
45 obj-$(CONFIG_OAKNET) += oaknet.o 8390.o
47 obj-$(CONFIG_DGRS) += dgrs.o
48 obj-$(CONFIG_VORTEX) += 3c59x.o
49 obj-$(CONFIG_TYPHOON) += typhoon.o
50 obj-$(CONFIG_NE2K_PCI) += ne2k-pci.o 8390.o
51 obj-$(CONFIG_PCNET32) += pcnet32.o
52 obj-$(CONFIG_EEPRO100) += eepro100.o
53 obj-$(CONFIG_E100) += e100.o
54 obj-$(CONFIG_TLAN) += tlan.o
55 obj-$(CONFIG_EPIC100) += epic100.o
56 obj-$(CONFIG_SIS190) += sis190.o
57 obj-$(CONFIG_SIS900) += sis900.o
58 obj-$(CONFIG_YELLOWFIN) += yellowfin.o
59 obj-$(CONFIG_ACENIC) += acenic.o
60 obj-$(CONFIG_ISERIES_VETH) += iseries_veth.o
61 obj-$(CONFIG_NATSEMI) += natsemi.o
62 obj-$(CONFIG_NS83820) += ns83820.o
63 obj-$(CONFIG_STNIC) += stnic.o 8390.o
64 obj-$(CONFIG_FEALNX) += fealnx.o
65 obj-$(CONFIG_TIGON3) += tg3.o
66 obj-$(CONFIG_BNX2) += bnx2.o
67 spidernet-y += spider_net.o spider_net_ethtool.o
68 obj-$(CONFIG_SPIDER_NET) += spidernet.o sungem_phy.o
69 obj-$(CONFIG_TC35815) += tc35815.o
70 obj-$(CONFIG_SKGE) += skge.o
71 obj-$(CONFIG_SKY2) += sky2.o
72 obj-$(CONFIG_SK98LIN) += sk98lin/
73 obj-$(CONFIG_SKFP) += skfp/
74 obj-$(CONFIG_VIA_RHINE) += via-rhine.o
75 obj-$(CONFIG_VIA_VELOCITY) += via-velocity.o
76 obj-$(CONFIG_ADAPTEC_STARFIRE) += starfire.o
77 obj-$(CONFIG_RIONET) += rionet.o
79 #
80 # end link order section
81 #
83 obj-$(CONFIG_MII) += mii.o
84 obj-$(CONFIG_PHYLIB) += phy/
86 obj-$(CONFIG_SUNDANCE) += sundance.o
87 obj-$(CONFIG_HAMACHI) += hamachi.o
88 obj-$(CONFIG_NET) += Space.o loopback.o
89 obj-$(CONFIG_SEEQ8005) += seeq8005.o
90 obj-$(CONFIG_NET_SB1000) += sb1000.o
91 obj-$(CONFIG_MAC8390) += mac8390.o 8390.o
92 obj-$(CONFIG_APNE) += apne.o 8390.o
93 obj-$(CONFIG_PCMCIA_PCNET) += 8390.o
94 obj-$(CONFIG_SHAPER) += shaper.o
95 obj-$(CONFIG_HP100) += hp100.o
96 obj-$(CONFIG_SMC9194) += smc9194.o
97 obj-$(CONFIG_FEC) += fec.o
98 obj-$(CONFIG_68360_ENET) += 68360enet.o
99 obj-$(CONFIG_ARM_ETHERH) += 8390.o
100 obj-$(CONFIG_WD80x3) += wd.o 8390.o
101 obj-$(CONFIG_EL2) += 3c503.o 8390.o
102 obj-$(CONFIG_NE2000) += ne.o 8390.o
103 obj-$(CONFIG_NE2_MCA) += ne2.o 8390.o
104 obj-$(CONFIG_HPLAN) += hp.o 8390.o
105 obj-$(CONFIG_HPLAN_PLUS) += hp-plus.o 8390.o
106 obj-$(CONFIG_ULTRA) += smc-ultra.o 8390.o
107 obj-$(CONFIG_ULTRAMCA) += smc-mca.o 8390.o
108 obj-$(CONFIG_ULTRA32) += smc-ultra32.o 8390.o
109 obj-$(CONFIG_E2100) += e2100.o 8390.o
110 obj-$(CONFIG_ES3210) += es3210.o 8390.o
111 obj-$(CONFIG_LNE390) += lne390.o 8390.o
112 obj-$(CONFIG_NE3210) += ne3210.o 8390.o
113 obj-$(CONFIG_NET_SB1250_MAC) += sb1250-mac.o
114 obj-$(CONFIG_B44) += b44.o
115 obj-$(CONFIG_FORCEDETH) += forcedeth.o
116 obj-$(CONFIG_NE_H8300) += ne-h8300.o 8390.o
118 obj-$(CONFIG_MV643XX_ETH) += mv643xx_eth.o
120 obj-$(CONFIG_PPP) += ppp_generic.o slhc.o
121 obj-$(CONFIG_PPP_ASYNC) += ppp_async.o
122 obj-$(CONFIG_PPP_SYNC_TTY) += ppp_synctty.o
123 obj-$(CONFIG_PPP_DEFLATE) += ppp_deflate.o
124 obj-$(CONFIG_PPP_BSDCOMP) += bsd_comp.o
125 obj-$(CONFIG_PPP_MPPE) += ppp_mppe.o
126 obj-$(CONFIG_PPPOE) += pppox.o pppoe.o
128 obj-$(CONFIG_SLIP) += slip.o
129 ifeq ($(CONFIG_SLIP_COMPRESSED),y)
130 obj-$(CONFIG_SLIP) += slhc.o
131 endif
133 obj-$(CONFIG_DUMMY) += dummy.o
134 obj-$(CONFIG_IFB) += ifb.o
135 obj-$(CONFIG_DE600) += de600.o
136 obj-$(CONFIG_DE620) += de620.o
137 obj-$(CONFIG_LANCE) += lance.o
138 obj-$(CONFIG_SUN3_82586) += sun3_82586.o
139 obj-$(CONFIG_SUN3LANCE) += sun3lance.o
140 obj-$(CONFIG_DEFXX) += defxx.o
141 obj-$(CONFIG_SGISEEQ) += sgiseeq.o
142 obj-$(CONFIG_SGI_O2MACE_ETH) += meth.o
143 obj-$(CONFIG_AT1700) += at1700.o
144 obj-$(CONFIG_EL1) += 3c501.o
145 obj-$(CONFIG_EL16) += 3c507.o
146 obj-$(CONFIG_ELMC) += 3c523.o
147 obj-$(CONFIG_SKMC) += sk_mca.o
148 obj-$(CONFIG_IBMLANA) += ibmlana.o
149 obj-$(CONFIG_ELMC_II) += 3c527.o
150 obj-$(CONFIG_EL3) += 3c509.o
151 obj-$(CONFIG_3C515) += 3c515.o
152 obj-$(CONFIG_EEXPRESS) += eexpress.o
153 obj-$(CONFIG_EEXPRESS_PRO) += eepro.o
154 obj-$(CONFIG_8139CP) += 8139cp.o
155 obj-$(CONFIG_8139TOO) += 8139too.o
156 obj-$(CONFIG_ZNET) += znet.o
157 obj-$(CONFIG_LAN_SAA9730) += saa9730.o
158 obj-$(CONFIG_DEPCA) += depca.o
159 obj-$(CONFIG_EWRK3) += ewrk3.o
160 obj-$(CONFIG_ATP) += atp.o
161 obj-$(CONFIG_NI5010) += ni5010.o
162 obj-$(CONFIG_NI52) += ni52.o
163 obj-$(CONFIG_NI65) += ni65.o
164 obj-$(CONFIG_ELPLUS) += 3c505.o
165 obj-$(CONFIG_AC3200) += ac3200.o 8390.o
166 obj-$(CONFIG_APRICOT) += 82596.o
167 obj-$(CONFIG_LASI_82596) += lasi_82596.o
168 obj-$(CONFIG_MVME16x_NET) += 82596.o
169 obj-$(CONFIG_BVME6000_NET) += 82596.o
171 # This is also a 82596 and should probably be merged
172 obj-$(CONFIG_LP486E) += lp486e.o
174 obj-$(CONFIG_ETH16I) += eth16i.o
175 obj-$(CONFIG_ZORRO8390) += zorro8390.o 8390.o
176 obj-$(CONFIG_HPLANCE) += hplance.o 7990.o
177 obj-$(CONFIG_MVME147_NET) += mvme147.o 7990.o
178 obj-$(CONFIG_EQUALIZER) += eql.o
179 obj-$(CONFIG_MIPS_JAZZ_SONIC) += jazzsonic.o
180 obj-$(CONFIG_MIPS_GT96100ETH) += gt96100eth.o
181 obj-$(CONFIG_MIPS_AU1X00_ENET) += au1000_eth.o
182 obj-$(CONFIG_MIPS_SIM_NET) += mipsnet.o
183 obj-$(CONFIG_SGI_IOC3_ETH) += ioc3-eth.o
184 obj-$(CONFIG_DECLANCE) += declance.o
185 obj-$(CONFIG_ATARILANCE) += atarilance.o
186 obj-$(CONFIG_ATARI_BIONET) += atari_bionet.o
187 obj-$(CONFIG_ATARI_PAMSNET) += atari_pamsnet.o
188 obj-$(CONFIG_A2065) += a2065.o
189 obj-$(CONFIG_HYDRA) += hydra.o 8390.o
190 obj-$(CONFIG_ARIADNE) += ariadne.o
191 obj-$(CONFIG_CS89x0) += cs89x0.o
192 obj-$(CONFIG_MACSONIC) += macsonic.o
193 obj-$(CONFIG_MACMACE) += macmace.o
194 obj-$(CONFIG_MAC89x0) += mac89x0.o
195 obj-$(CONFIG_TUN) += tun.o
196 obj-$(CONFIG_NET_NETX) += netx-eth.o
197 obj-$(CONFIG_DL2K) += dl2k.o
198 obj-$(CONFIG_R8169) += r8169.o
199 obj-$(CONFIG_AMD8111_ETH) += amd8111e.o
200 obj-$(CONFIG_IBMVETH) += ibmveth.o
201 obj-$(CONFIG_S2IO) += s2io.o
202 obj-$(CONFIG_MYRI10GE) += myri10ge/
203 obj-$(CONFIG_SMC91X) += smc91x.o
204 obj-$(CONFIG_SMC911X) += smc911x.o
205 obj-$(CONFIG_DM9000) += dm9000.o
206 obj-$(CONFIG_FEC_8XX) += fec_8xx/
208 obj-$(CONFIG_ARM) += arm/
209 obj-$(CONFIG_DEV_APPLETALK) += appletalk/
210 obj-$(CONFIG_TR) += tokenring/
211 obj-$(CONFIG_WAN) += wan/
212 obj-$(CONFIG_ARCNET) += arcnet/
213 obj-$(CONFIG_NET_PCMCIA) += pcmcia/
214 obj-$(CONFIG_NET_RADIO) += wireless/
215 obj-$(CONFIG_NET_TULIP) += tulip/
216 obj-$(CONFIG_HAMRADIO) += hamradio/
217 obj-$(CONFIG_IRDA) += irda/
218 obj-$(CONFIG_ETRAX_ETHERNET) += cris/
219 obj-$(CONFIG_ENP2611_MSF_NET) += ixp2000/
221 obj-$(CONFIG_NETCONSOLE) += netconsole.o
223 obj-$(CONFIG_FS_ENET) += fs_enet/
225 obj-$(CONFIG_SFC) += sfc/