view Documentation/networking/sk98lin.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
line source
1 (C)Copyright 1999-2004 Marvell(R).
2 All rights reserved
3 ===========================================================================
5 sk98lin.txt created 13-Feb-2004
7 Readme File for sk98lin v6.23
8 Marvell Yukon/SysKonnect SK-98xx Gigabit Ethernet Adapter family driver for LINUX
10 This file contains
11 1 Overview
12 2 Required Files
13 3 Installation
14 3.1 Driver Installation
15 3.2 Inclusion of adapter at system start
16 4 Driver Parameters
17 4.1 Per-Port Parameters
18 4.2 Adapter Parameters
19 5 Large Frame Support
20 6 VLAN and Link Aggregation Support (IEEE 802.1, 802.1q, 802.3ad)
21 7 Troubleshooting
23 ===========================================================================
26 1 Overview
27 ===========
29 The sk98lin driver supports the Marvell Yukon and SysKonnect
30 SK-98xx/SK-95xx compliant Gigabit Ethernet Adapter on Linux. It has
31 been tested with Linux on Intel/x86 machines.
32 ***
35 2 Required Files
36 =================
38 The linux kernel source.
39 No additional files required.
40 ***
43 3 Installation
44 ===============
46 It is recommended to download the latest version of the driver from the
47 SysKonnect web site www.syskonnect.com. If you have downloaded the latest
48 driver, the Linux kernel has to be patched before the driver can be
49 installed. For details on how to patch a Linux kernel, refer to the
50 patch.txt file.
52 3.1 Driver Installation
53 ------------------------
55 The following steps describe the actions that are required to install
56 the driver and to start it manually. These steps should be carried
57 out for the initial driver setup. Once confirmed to be ok, they can
58 be included in the system start.
60 NOTE 1: To perform the following tasks you need 'root' access.
62 NOTE 2: In case of problems, please read the section "Troubleshooting"
63 below.
65 The driver can either be integrated into the kernel or it can be compiled
66 as a module. Select the appropriate option during the kernel
67 configuration.
69 Compile/use the driver as a module
70 ----------------------------------
71 To compile the driver, go to the directory /usr/src/linux and
72 execute the command "make menuconfig" or "make xconfig" and proceed as
73 follows:
75 To integrate the driver permanently into the kernel, proceed as follows:
77 1. Select the menu "Network device support" and then "Ethernet(1000Mbit)"
78 2. Mark "Marvell Yukon Chipset / SysKonnect SK-98xx family support"
79 with (*)
80 3. Build a new kernel when the configuration of the above options is
81 finished.
82 4. Install the new kernel.
83 5. Reboot your system.
85 To use the driver as a module, proceed as follows:
87 1. Enable 'loadable module support' in the kernel.
88 2. For automatic driver start, enable the 'Kernel module loader'.
89 3. Select the menu "Network device support" and then "Ethernet(1000Mbit)"
90 4. Mark "Marvell Yukon Chipset / SysKonnect SK-98xx family support"
91 with (M)
92 5. Execute the command "make modules".
93 6. Execute the command "make modules_install".
94 The appropriate modules will be installed.
95 7. Reboot your system.
98 Load the module manually
99 ------------------------
100 To load the module manually, proceed as follows:
102 1. Enter "modprobe sk98lin".
103 2. If a Marvell Yukon or SysKonnect SK-98xx adapter is installed in
104 your computer and you have a /proc file system, execute the command:
105 "ls /proc/net/sk98lin/"
106 This should produce an output containing a line with the following
107 format:
108 eth0 eth1 ...
109 which indicates that your adapter has been found and initialized.
111 NOTE 1: If you have more than one Marvell Yukon or SysKonnect SK-98xx
112 adapter installed, the adapters will be listed as 'eth0',
113 'eth1', 'eth2', etc.
114 For each adapter, repeat steps 3 and 4 below.
116 NOTE 2: If you have other Ethernet adapters installed, your Marvell
117 Yukon or SysKonnect SK-98xx adapter will be mapped to the
118 next available number, e.g. 'eth1'. The mapping is executed
119 automatically.
120 The module installation message (displayed either in a system
121 log file or on the console) prints a line for each adapter
122 found containing the corresponding 'ethX'.
124 3. Select an IP address and assign it to the respective adapter by
125 entering:
126 ifconfig eth0 <ip-address>
127 With this command, the adapter is connected to the Ethernet.
129 SK-98xx Gigabit Ethernet Server Adapters: The yellow LED on the adapter
130 is now active, the link status LED of the primary port is active and
131 the link status LED of the secondary port (on dual port adapters) is
132 blinking (if the ports are connected to a switch or hub).
133 SK-98xx V2.0 Gigabit Ethernet Adapters: The link status LED is active.
134 In addition, you will receive a status message on the console stating
135 "ethX: network connection up using port Y" and showing the selected
136 connection parameters (x stands for the ethernet device number
137 (0,1,2, etc), y stands for the port name (A or B)).
139 NOTE: If you are in doubt about IP addresses, ask your network
140 administrator for assistance.
142 4. Your adapter should now be fully operational.
143 Use 'ping <otherstation>' to verify the connection to other computers
144 on your network.
145 5. To check the adapter configuration view /proc/net/sk98lin/[devicename].
146 For example by executing:
147 "cat /proc/net/sk98lin/eth0"
149 Unload the module
150 -----------------
151 To stop and unload the driver modules, proceed as follows:
153 1. Execute the command "ifconfig eth0 down".
154 2. Execute the command "rmmod sk98lin".
156 3.2 Inclusion of adapter at system start
157 -----------------------------------------
159 Since a large number of different Linux distributions are
160 available, we are unable to describe a general installation procedure
161 for the driver module.
162 Because the driver is now integrated in the kernel, installation should
163 be easy, using the standard mechanism of your distribution.
164 Refer to the distribution's manual for installation of ethernet adapters.
166 ***
168 4 Driver Parameters
169 ====================
171 Parameters can be set at the command line after the module has been
172 loaded with the command 'modprobe'.
173 In some distributions, the configuration tools are able to pass parameters
174 to the driver module.
176 If you use the kernel module loader, you can set driver parameters
177 in the file /etc/modprobe.conf (or /etc/modules.conf in 2.4 or earlier).
178 To set the driver parameters in this file, proceed as follows:
180 1. Insert a line of the form :
181 options sk98lin ...
182 For "...", the same syntax is required as described for the command
183 line paramaters of modprobe below.
184 2. To activate the new parameters, either reboot your computer
185 or
186 unload and reload the driver.
187 The syntax of the driver parameters is:
189 modprobe sk98lin parameter=value1[,value2[,value3...]]
191 where value1 refers to the first adapter, value2 to the second etc.
193 NOTE: All parameters are case sensitive. Write them exactly as shown
194 below.
196 Example:
197 Suppose you have two adapters. You want to set auto-negotiation
198 on the first adapter to ON and on the second adapter to OFF.
199 You also want to set DuplexCapabilities on the first adapter
200 to FULL, and on the second adapter to HALF.
201 Then, you must enter:
203 modprobe sk98lin AutoNeg_A=On,Off DupCap_A=Full,Half
205 NOTE: The number of adapters that can be configured this way is
206 limited in the driver (file skge.c, constant SK_MAX_CARD_PARAM).
207 The current limit is 16. If you happen to install
208 more adapters, adjust this and recompile.
211 4.1 Per-Port Parameters
212 ------------------------
214 These settings are available for each port on the adapter.
215 In the following description, '?' stands for the port for
216 which you set the parameter (A or B).
218 Speed
219 -----
220 Parameter: Speed_?
221 Values: 10, 100, 1000, Auto
222 Default: Auto
224 This parameter is used to set the speed capabilities. It is only valid
225 for the SK-98xx V2.0 copper adapters.
226 Usually, the speed is negotiated between the two ports during link
227 establishment. If this fails, a port can be forced to a specific setting
228 with this parameter.
230 Auto-Negotiation
231 ----------------
232 Parameter: AutoNeg_?
233 Values: On, Off, Sense
234 Default: On
236 The "Sense"-mode automatically detects whether the link partner supports
237 auto-negotiation or not.
239 Duplex Capabilities
240 -------------------
241 Parameter: DupCap_?
242 Values: Half, Full, Both
243 Default: Both
245 This parameters is only relevant if auto-negotiation for this port is
246 not set to "Sense". If auto-negotiation is set to "On", all three values
247 are possible. If it is set to "Off", only "Full" and "Half" are allowed.
248 This parameter is useful if your link partner does not support all
249 possible combinations.
251 Flow Control
252 ------------
253 Parameter: FlowCtrl_?
254 Values: Sym, SymOrRem, LocSend, None
255 Default: SymOrRem
257 This parameter can be used to set the flow control capabilities the
258 port reports during auto-negotiation. It can be set for each port
259 individually.
260 Possible modes:
261 -- Sym = Symmetric: both link partners are allowed to send
262 PAUSE frames
263 -- SymOrRem = SymmetricOrRemote: both or only remote partner
264 are allowed to send PAUSE frames
265 -- LocSend = LocalSend: only local link partner is allowed
266 to send PAUSE frames
267 -- None = no link partner is allowed to send PAUSE frames
269 NOTE: This parameter is ignored if auto-negotiation is set to "Off".
271 Role in Master-Slave-Negotiation (1000Base-T only)
272 --------------------------------------------------
273 Parameter: Role_?
274 Values: Auto, Master, Slave
275 Default: Auto
277 This parameter is only valid for the SK-9821 and SK-9822 adapters.
278 For two 1000Base-T ports to communicate, one must take the role of the
279 master (providing timing information), while the other must be the
280 slave. Usually, this is negotiated between the two ports during link
281 establishment. If this fails, a port can be forced to a specific setting
282 with this parameter.
285 4.2 Adapter Parameters
286 -----------------------
288 Connection Type (SK-98xx V2.0 copper adapters only)
289 ---------------
290 Parameter: ConType
291 Values: Auto, 100FD, 100HD, 10FD, 10HD
292 Default: Auto
294 The parameter 'ConType' is a combination of all five per-port parameters
295 within one single parameter. This simplifies the configuration of both ports
296 of an adapter card! The different values of this variable reflect the most
297 meaningful combinations of port parameters.
299 The following table shows the values of 'ConType' and the corresponding
300 combinations of the per-port parameters:
302 ConType | DupCap AutoNeg FlowCtrl Role Speed
303 ----------+------------------------------------------------------
304 Auto | Both On SymOrRem Auto Auto
305 100FD | Full Off None Auto (ignored) 100
306 100HD | Half Off None Auto (ignored) 100
307 10FD | Full Off None Auto (ignored) 10
308 10HD | Half Off None Auto (ignored) 10
310 Stating any other port parameter together with this 'ConType' variable
311 will result in a merged configuration of those settings. This due to
312 the fact, that the per-port parameters (e.g. Speed_? ) have a higher
313 priority than the combined variable 'ConType'.
315 NOTE: This parameter is always used on both ports of the adapter card.
317 Interrupt Moderation
318 --------------------
319 Parameter: Moderation
320 Values: None, Static, Dynamic
321 Default: None
323 Interrupt moderation is employed to limit the maxmimum number of interrupts
324 the driver has to serve. That is, one or more interrupts (which indicate any
325 transmit or receive packet to be processed) are queued until the driver
326 processes them. When queued interrupts are to be served, is determined by the
327 'IntsPerSec' parameter, which is explained later below.
329 Possible modes:
331 -- None - No interrupt moderation is applied on the adapter card.
332 Therefore, each transmit or receive interrupt is served immediately
333 as soon as it appears on the interrupt line of the adapter card.
335 -- Static - Interrupt moderation is applied on the adapter card.
336 All transmit and receive interrupts are queued until a complete
337 moderation interval ends. If such a moderation interval ends, all
338 queued interrupts are processed in one big bunch without any delay.
339 The term 'static' reflects the fact, that interrupt moderation is
340 always enabled, regardless how much network load is currently
341 passing via a particular interface. In addition, the duration of
342 the moderation interval has a fixed length that never changes while
343 the driver is operational.
345 -- Dynamic - Interrupt moderation might be applied on the adapter card,
346 depending on the load of the system. If the driver detects that the
347 system load is too high, the driver tries to shield the system against
348 too much network load by enabling interrupt moderation. If - at a later
349 time - the CPU utilizaton decreases again (or if the network load is
350 negligible) the interrupt moderation will automatically be disabled.
352 Interrupt moderation should be used when the driver has to handle one or more
353 interfaces with a high network load, which - as a consequence - leads also to a
354 high CPU utilization. When moderation is applied in such high network load
355 situations, CPU load might be reduced by 20-30%.
357 NOTE: The drawback of using interrupt moderation is an increase of the round-
358 trip-time (RTT), due to the queueing and serving of interrupts at dedicated
359 moderation times.
361 Interrupts per second
362 ---------------------
363 Parameter: IntsPerSec
364 Values: 30...40000 (interrupts per second)
365 Default: 2000
367 This parameter is only used, if either static or dynamic interrupt moderation
368 is used on a network adapter card. Using this paramter if no moderation is
369 applied, will lead to no action performed.
371 This parameter determines the length of any interrupt moderation interval.
372 Assuming that static interrupt moderation is to be used, an 'IntsPerSec'
373 parameter value of 2000 will lead to an interrupt moderation interval of
374 500 microseconds.
376 NOTE: The duration of the moderation interval is to be chosen with care.
377 At first glance, selecting a very long duration (e.g. only 100 interrupts per
378 second) seems to be meaningful, but the increase of packet-processing delay
379 is tremendous. On the other hand, selecting a very short moderation time might
380 compensate the use of any moderation being applied.
383 Preferred Port
384 --------------
385 Parameter: PrefPort
386 Values: A, B
387 Default: A
389 This is used to force the preferred port to A or B (on dual-port network
390 adapters). The preferred port is the one that is used if both are detected
391 as fully functional.
393 RLMT Mode (Redundant Link Management Technology)
394 ------------------------------------------------
395 Parameter: RlmtMode
396 Values: CheckLinkState,CheckLocalPort, CheckSeg, DualNet
397 Default: CheckLinkState
399 RLMT monitors the status of the port. If the link of the active port
400 fails, RLMT switches immediately to the standby link. The virtual link is
401 maintained as long as at least one 'physical' link is up.
403 Possible modes:
405 -- CheckLinkState - Check link state only: RLMT uses the link state
406 reported by the adapter hardware for each individual port to
407 determine whether a port can be used for all network traffic or
408 not.
410 -- CheckLocalPort - In this mode, RLMT monitors the network path
411 between the two ports of an adapter by regularly exchanging packets
412 between them. This mode requires a network configuration in which
413 the two ports are able to "see" each other (i.e. there must not be
414 any router between the ports).
416 -- CheckSeg - Check local port and segmentation: This mode supports the
417 same functions as the CheckLocalPort mode and additionally checks
418 network segmentation between the ports. Therefore, this mode is only
419 to be used if Gigabit Ethernet switches are installed on the network
420 that have been configured to use the Spanning Tree protocol.
422 -- DualNet - In this mode, ports A and B are used as separate devices.
423 If you have a dual port adapter, port A will be configured as eth0
424 and port B as eth1. Both ports can be used independently with
425 distinct IP addresses. The preferred port setting is not used.
426 RLMT is turned off.
428 NOTE: RLMT modes CLP and CLPSS are designed to operate in configurations
429 where a network path between the ports on one adapter exists.
430 Moreover, they are not designed to work where adapters are connected
431 back-to-back.
432 ***
435 5 Large Frame Support
436 ======================
438 The driver supports large frames (also called jumbo frames). Using large
439 frames can result in an improved throughput if transferring large amounts
440 of data.
441 To enable large frames, set the MTU (maximum transfer unit) of the
442 interface to the desired value (up to 9000), execute the following
443 command:
444 ifconfig eth0 mtu 9000
445 This will only work if you have two adapters connected back-to-back
446 or if you use a switch that supports large frames. When using a switch,
447 it should be configured to allow large frames and auto-negotiation should
448 be set to OFF. The setting must be configured on all adapters that can be
449 reached by the large frames. If one adapter is not set to receive large
450 frames, it will simply drop them.
452 You can switch back to the standard ethernet frame size by executing the
453 following command:
454 ifconfig eth0 mtu 1500
456 To permanently configure this setting, add a script with the 'ifconfig'
457 line to the system startup sequence (named something like "S99sk98lin"
458 in /etc/rc.d/rc2.d).
459 ***
462 6 VLAN and Link Aggregation Support (IEEE 802.1, 802.1q, 802.3ad)
463 ==================================================================
465 The Marvell Yukon/SysKonnect Linux drivers are able to support VLAN and
466 Link Aggregation according to IEEE standards 802.1, 802.1q, and 802.3ad.
467 These features are only available after installation of open source
468 modules available on the Internet:
469 For VLAN go to: http://www.candelatech.com/~greear/vlan.html
470 For Link Aggregation go to: http://www.st.rim.or.jp/~yumo
472 NOTE: SysKonnect GmbH does not offer any support for these open source
473 modules and does not take the responsibility for any kind of
474 failures or problems arising in connection with these modules.
476 NOTE: Configuring Link Aggregation on a SysKonnect dual link adapter may
477 cause problems when unloading the driver.
480 7 Troubleshooting
481 ==================
483 If any problems occur during the installation process, check the
484 following list:
487 Problem: The SK-98xx adapter can not be found by the driver.
488 Solution: In /proc/pci search for the following entry:
489 'Ethernet controller: SysKonnect SK-98xx ...'
490 If this entry exists, the SK-98xx or SK-98xx V2.0 adapter has
491 been found by the system and should be operational.
492 If this entry does not exist or if the file '/proc/pci' is not
493 found, there may be a hardware problem or the PCI support may
494 not be enabled in your kernel.
495 The adapter can be checked using the diagnostics program which
496 is available on the SysKonnect web site:
497 www.syskonnect.com
499 Some COMPAQ machines have problems dealing with PCI under Linux.
500 Linux. This problem is described in the 'PCI howto' document
501 (included in some distributions or available from the
502 web, e.g. at 'www.linux.org').
505 Problem: Programs such as 'ifconfig' or 'route' can not be found or the
506 error message 'Operation not permitted' is displayed.
507 Reason: You are not logged in as user 'root'.
508 Solution: Logout and login as 'root' or change to 'root' via 'su'.
511 Problem: Upon use of the command 'ping <address>' the message
512 "ping: sendto: Network is unreachable" is displayed.
513 Reason: Your route is not set correctly.
514 Solution: If you are using RedHat, you probably forgot to set up the
515 route in the 'network configuration'.
516 Check the existing routes with the 'route' command and check
517 if an entry for 'eth0' exists, and if so, if it is set correctly.
520 Problem: The driver can be started, the adapter is connected to the
521 network, but you cannot receive or transmit any packets;
522 e.g. 'ping' does not work.
523 Reason: There is an incorrect route in your routing table.
524 Solution: Check the routing table with the command 'route' and read the
525 manual help pages dealing with routes (enter 'man route').
527 NOTE: Although the 2.2.x kernel versions generate the routing entry
528 automatically, problems of this kind may occur here as well. We've
529 come across a situation in which the driver started correctly at
530 system start, but after the driver has been removed and reloaded,
531 the route of the adapter's network pointed to the 'dummy0'device
532 and had to be corrected manually.
535 Problem: Your computer should act as a router between multiple
536 IP subnetworks (using multiple adapters), but computers in
537 other subnetworks cannot be reached.
538 Reason: Either the router's kernel is not configured for IP forwarding
539 or the routing table and gateway configuration of at least one
540 computer is not working.
542 Problem: Upon driver start, the following error message is displayed:
543 "eth0: -- ERROR --
544 Class: internal Software error
545 Nr: 0xcc
546 Msg: SkGeInitPort() cannot init running ports"
547 Reason: You are using a driver compiled for single processor machines
548 on a multiprocessor machine with SMP (Symmetric MultiProcessor)
549 kernel.
550 Solution: Configure your kernel appropriately and recompile the kernel or
551 the modules.
555 If your problem is not listed here, please contact SysKonnect's technical
556 support for help (linux@syskonnect.de).
557 When contacting our technical support, please ensure that the following
558 information is available:
559 - System Manufacturer and HW Informations (CPU, Memory... )
560 - PCI-Boards in your system
561 - Distribution
562 - Kernel version
563 - Driver version
564 ***
568 ***End of Readme File***