ia64/linux-2.6.18-xen.hg

view Documentation/usb/linux.inf @ 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 ; MS-Windows driver config matching some basic modes of the
2 ; Linux-USB Ethernet/RNDIS gadget firmware:
3 ;
4 ; - RNDIS plus CDC Ethernet ... this may be familiar as a DOCSIS
5 ; cable modem profile, and supports most non-Microsoft USB hosts
6 ;
7 ; - RNDIS plus CDC Subset ... used by hardware that incapable of
8 ; full CDC Ethernet support.
9 ;
10 ; Microsoft only directly supports RNDIS drivers, and bundled them into XP.
11 ; The Microsoft "Remote NDIS USB Driver Kit" is currently found at:
12 ; http://www.microsoft.com/whdc/hwdev/resources/HWservices/rndis.mspx
15 [Version]
16 Signature = "$CHICAGO$"
17 Class = Net
18 ClassGUID = {4d36e972-e325-11ce-bfc1-08002be10318}
19 Provider = %Linux%
20 Compatible = 1
21 MillenniumPreferred = .ME
22 DriverVer = 03/30/2004,0.0.0.0
23 ; catalog file would be used by WHQL
24 ;CatalogFile = Linux.cat
26 [Manufacturer]
27 %Linux% = LinuxDevices,NT.5.1
29 [LinuxDevices]
30 ; NetChip IDs, used by both firmware modes
31 %LinuxDevice% = RNDIS, USB\VID_0525&PID_a4a2
33 [LinuxDevices.NT.5.1]
34 %LinuxDevice% = RNDIS.NT.5.1, USB\VID_0525&PID_a4a2
36 [ControlFlags]
37 ExcludeFromSelect=*
39 ; Windows 98, Windows 98 Second Edition specific sections --------
41 [RNDIS]
42 DeviceID = usb8023
43 MaxInstance = 512
44 DriverVer = 03/30/2004,0.0.0.0
45 AddReg = RNDIS_AddReg_98, RNDIS_AddReg_Common
47 [RNDIS_AddReg_98]
48 HKR, , DevLoader, 0, *ndis
49 HKR, , DeviceVxDs, 0, usb8023.sys
50 HKR, NDIS, LogDriverName, 0, "usb8023"
51 HKR, NDIS, MajorNdisVersion, 1, 5
52 HKR, NDIS, MinorNdisVersion, 1, 0
53 HKR, Ndi\Interfaces, DefUpper, 0, "ndis3,ndis4,ndis5"
54 HKR, Ndi\Interfaces, DefLower, 0, "ethernet"
55 HKR, Ndi\Interfaces, UpperRange, 0, "ndis3,ndis4,ndis5"
56 HKR, Ndi\Interfaces, LowerRange, 0, "ethernet"
57 HKR, Ndi\Install, ndis3, 0, "RNDIS_Install_98"
58 HKR, Ndi\Install, ndis4, 0, "RNDIS_Install_98"
59 HKR, Ndi\Install, ndis5, 0, "RNDIS_Install_98"
60 HKR, Ndi, DeviceId, 0, "USB\VID_0525&PID_a4a2"
62 [RNDIS_Install_98]
63 CopyFiles=RNDIS_CopyFiles_98
65 [RNDIS_CopyFiles_98]
66 usb8023.sys, usb8023w.sys, , 0
67 rndismp.sys, rndismpw.sys, , 0
69 ; Windows Millennium Edition specific sections --------------------
71 [RNDIS.ME]
72 DeviceID = usb8023
73 MaxInstance = 512
74 DriverVer = 03/30/2004,0.0.0.0
75 AddReg = RNDIS_AddReg_ME, RNDIS_AddReg_Common
76 Characteristics = 0x84 ; NCF_PHYSICAL + NCF_HAS_UI
77 BusType = 15
79 [RNDIS_AddReg_ME]
80 HKR, , DevLoader, 0, *ndis
81 HKR, , DeviceVxDs, 0, usb8023.sys
82 HKR, NDIS, LogDriverName, 0, "usb8023"
83 HKR, NDIS, MajorNdisVersion, 1, 5
84 HKR, NDIS, MinorNdisVersion, 1, 0
85 HKR, Ndi\Interfaces, DefUpper, 0, "ndis3,ndis4,ndis5"
86 HKR, Ndi\Interfaces, DefLower, 0, "ethernet"
87 HKR, Ndi\Interfaces, UpperRange, 0, "ndis3,ndis4,ndis5"
88 HKR, Ndi\Interfaces, LowerRange, 0, "ethernet"
89 HKR, Ndi\Install, ndis3, 0, "RNDIS_Install_ME"
90 HKR, Ndi\Install, ndis4, 0, "RNDIS_Install_ME"
91 HKR, Ndi\Install, ndis5, 0, "RNDIS_Install_ME"
92 HKR, Ndi, DeviceId, 0, "USB\VID_0525&PID_a4a2"
94 [RNDIS_Install_ME]
95 CopyFiles=RNDIS_CopyFiles_ME
97 [RNDIS_CopyFiles_ME]
98 usb8023.sys, usb8023m.sys, , 0
99 rndismp.sys, rndismpm.sys, , 0
101 ; Windows 2000 specific sections ---------------------------------
103 [RNDIS.NT]
104 Characteristics = 0x84 ; NCF_PHYSICAL + NCF_HAS_UI
105 BusType = 15
106 DriverVer = 03/30/2004,0.0.0.0
107 AddReg = RNDIS_AddReg_NT, RNDIS_AddReg_Common
108 CopyFiles = RNDIS_CopyFiles_NT
110 [RNDIS.NT.Services]
111 AddService = USB_RNDIS, 2, RNDIS_ServiceInst_NT, RNDIS_EventLog
113 [RNDIS_CopyFiles_NT]
114 ; no rename of files on Windows 2000, use the 'k' names as is
115 usb8023k.sys, , , 0
116 rndismpk.sys, , , 0
118 [RNDIS_ServiceInst_NT]
119 DisplayName = %ServiceDisplayName%
120 ServiceType = 1
121 StartType = 3
122 ErrorControl = 1
123 ServiceBinary = %12%\usb8023k.sys
124 LoadOrderGroup = NDIS
125 AddReg = RNDIS_WMI_AddReg_NT
127 [RNDIS_WMI_AddReg_NT]
128 HKR, , MofImagePath, 0x00020000, "System32\drivers\rndismpk.sys"
130 ; Windows XP specific sections -----------------------------------
132 [RNDIS.NT.5.1]
133 Characteristics = 0x84 ; NCF_PHYSICAL + NCF_HAS_UI
134 BusType = 15
135 DriverVer = 03/30/2004,0.0.0.0
136 AddReg = RNDIS_AddReg_NT, RNDIS_AddReg_Common
137 ; no copyfiles - the files are already in place
139 [RNDIS.NT.5.1.Services]
140 AddService = USB_RNDIS, 2, RNDIS_ServiceInst_51, RNDIS_EventLog
142 [RNDIS_ServiceInst_51]
143 DisplayName = %ServiceDisplayName%
144 ServiceType = 1
145 StartType = 3
146 ErrorControl = 1
147 ServiceBinary = %12%\usb8023.sys
148 LoadOrderGroup = NDIS
149 AddReg = RNDIS_WMI_AddReg_51
151 [RNDIS_WMI_AddReg_51]
152 HKR, , MofImagePath, 0x00020000, "System32\drivers\rndismp.sys"
154 ; Windows 2000 and Windows XP common sections --------------------
156 [RNDIS_AddReg_NT]
157 HKR, Ndi, Service, 0, "USB_RNDIS"
158 HKR, Ndi\Interfaces, UpperRange, 0, "ndis5"
159 HKR, Ndi\Interfaces, LowerRange, 0, "ethernet"
161 [RNDIS_EventLog]
162 AddReg = RNDIS_EventLog_AddReg
164 [RNDIS_EventLog_AddReg]
165 HKR, , EventMessageFile, 0x00020000, "%%SystemRoot%%\System32\netevent.dll"
166 HKR, , TypesSupported, 0x00010001, 7
168 ; Common Sections -------------------------------------------------
170 [RNDIS_AddReg_Common]
171 HKR, NDI\params\NetworkAddress, ParamDesc, 0, %NetworkAddress%
172 HKR, NDI\params\NetworkAddress, type, 0, "edit"
173 HKR, NDI\params\NetworkAddress, LimitText, 0, "12"
174 HKR, NDI\params\NetworkAddress, UpperCase, 0, "1"
175 HKR, NDI\params\NetworkAddress, default, 0, " "
176 HKR, NDI\params\NetworkAddress, optional, 0, "1"
178 [SourceDisksNames]
179 1=%SourceDisk%,,1
181 [SourceDisksFiles]
182 usb8023m.sys=1
183 rndismpm.sys=1
184 usb8023w.sys=1
185 rndismpw.sys=1
186 usb8023k.sys=1
187 rndismpk.sys=1
189 [DestinationDirs]
190 RNDIS_CopyFiles_98 = 10, system32/drivers
191 RNDIS_CopyFiles_ME = 10, system32/drivers
192 RNDIS_CopyFiles_NT = 12
194 [Strings]
195 ServiceDisplayName = "USB Remote NDIS Network Device Driver"
196 NetworkAddress = "Network Address"
197 Linux = "Linux Developer Community"
198 LinuxDevice = "Linux USB Ethernet/RNDIS Gadget"
199 SourceDisk = "Ethernet/RNDIS Gadget Driver Install Disk"