annotate Documentation/networking/e100.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
rev   line source
ian@0 1 Linux* Base Driver for the Intel(R) PRO/100 Family of Adapters
ian@0 2 ==============================================================
ian@0 3
ian@0 4 November 15, 2005
ian@0 5
ian@0 6 Contents
ian@0 7 ========
ian@0 8
ian@0 9 - In This Release
ian@0 10 - Identifying Your Adapter
ian@0 11 - Building and Installation
ian@0 12 - Driver Configuration Parameters
ian@0 13 - Additional Configurations
ian@0 14 - Known Issues
ian@0 15 - Support
ian@0 16
ian@0 17
ian@0 18 In This Release
ian@0 19 ===============
ian@0 20
ian@0 21 This file describes the Linux* Base Driver for the Intel(R) PRO/100 Family of
ian@0 22 Adapters. This driver includes support for Itanium(R)2-based systems.
ian@0 23
ian@0 24 For questions related to hardware requirements, refer to the documentation
ian@0 25 supplied with your Intel PRO/100 adapter.
ian@0 26
ian@0 27 The following features are now available in supported kernels:
ian@0 28 - Native VLANs
ian@0 29 - Channel Bonding (teaming)
ian@0 30 - SNMP
ian@0 31
ian@0 32 Channel Bonding documentation can be found in the Linux kernel source:
ian@0 33 /Documentation/networking/bonding.txt
ian@0 34
ian@0 35
ian@0 36 Identifying Your Adapter
ian@0 37 ========================
ian@0 38
ian@0 39 For more information on how to identify your adapter, go to the Adapter &
ian@0 40 Driver ID Guide at:
ian@0 41
ian@0 42 http://support.intel.com/support/network/adapter/pro100/21397.htm
ian@0 43
ian@0 44 For the latest Intel network drivers for Linux, refer to the following
ian@0 45 website. In the search field, enter your adapter name or type, or use the
ian@0 46 networking link on the left to search for your adapter:
ian@0 47
ian@0 48 http://downloadfinder.intel.com/scripts-df/support_intel.asp
ian@0 49
ian@0 50 Driver Configuration Parameters
ian@0 51 ===============================
ian@0 52
ian@0 53 The default value for each parameter is generally the recommended setting,
ian@0 54 unless otherwise noted.
ian@0 55
ian@0 56 Rx Descriptors: Number of receive descriptors. A receive descriptor is a data
ian@0 57 structure that describes a receive buffer and its attributes to the network
ian@0 58 controller. The data in the descriptor is used by the controller to write
ian@0 59 data from the controller to host memory. In the 3.x.x driver the valid range
ian@0 60 for this parameter is 64-256. The default value is 64. This parameter can be
ian@0 61 changed using the command:
ian@0 62
ian@0 63 ethtool -G eth? rx n, where n is the number of desired rx descriptors.
ian@0 64
ian@0 65 Tx Descriptors: Number of transmit descriptors. A transmit descriptor is a data
ian@0 66 structure that describes a transmit buffer and its attributes to the network
ian@0 67 controller. The data in the descriptor is used by the controller to read
ian@0 68 data from the host memory to the controller. In the 3.x.x driver the valid
ian@0 69 range for this parameter is 64-256. The default value is 64. This parameter
ian@0 70 can be changed using the command:
ian@0 71
ian@0 72 ethtool -G eth? tx n, where n is the number of desired tx descriptors.
ian@0 73
ian@0 74 Speed/Duplex: The driver auto-negotiates the link speed and duplex settings by
ian@0 75 default. Ethtool can be used as follows to force speed/duplex.
ian@0 76
ian@0 77 ethtool -s eth? autoneg off speed {10|100} duplex {full|half}
ian@0 78
ian@0 79 NOTE: setting the speed/duplex to incorrect values will cause the link to
ian@0 80 fail.
ian@0 81
ian@0 82 Event Log Message Level: The driver uses the message level flag to log events
ian@0 83 to syslog. The message level can be set at driver load time. It can also be
ian@0 84 set using the command:
ian@0 85
ian@0 86 ethtool -s eth? msglvl n
ian@0 87
ian@0 88
ian@0 89 Additional Configurations
ian@0 90 =========================
ian@0 91
ian@0 92 Configuring the Driver on Different Distributions
ian@0 93 -------------------------------------------------
ian@0 94
ian@0 95 Configuring a network driver to load properly when the system is started is
ian@0 96 distribution dependent. Typically, the configuration process involves adding
ian@0 97 an alias line to /etc/modules.conf or /etc/modprobe.conf as well as editing
ian@0 98 other system startup scripts and/or configuration files. Many popular Linux
ian@0 99 distributions ship with tools to make these changes for you. To learn the
ian@0 100 proper way to configure a network device for your system, refer to your
ian@0 101 distribution documentation. If during this process you are asked for the
ian@0 102 driver or module name, the name for the Linux Base Driver for the Intel
ian@0 103 PRO/100 Family of Adapters is e100.
ian@0 104
ian@0 105 As an example, if you install the e100 driver for two PRO/100 adapters
ian@0 106 (eth0 and eth1), add the following to modules.conf or modprobe.conf:
ian@0 107
ian@0 108 alias eth0 e100
ian@0 109 alias eth1 e100
ian@0 110
ian@0 111 Viewing Link Messages
ian@0 112 ---------------------
ian@0 113 In order to see link messages and other Intel driver information on your
ian@0 114 console, you must set the dmesg level up to six. This can be done by
ian@0 115 entering the following on the command line before loading the e100 driver:
ian@0 116
ian@0 117 dmesg -n 8
ian@0 118
ian@0 119 If you wish to see all messages issued by the driver, including debug
ian@0 120 messages, set the dmesg level to eight.
ian@0 121
ian@0 122 NOTE: This setting is not saved across reboots.
ian@0 123
ian@0 124
ian@0 125 Ethtool
ian@0 126 -------
ian@0 127
ian@0 128 The driver utilizes the ethtool interface for driver configuration and
ian@0 129 diagnostics, as well as displaying statistical information. Ethtool
ian@0 130 version 1.6 or later is required for this functionality.
ian@0 131
ian@0 132 The latest release of ethtool can be found from
ian@0 133 http://sourceforge.net/projects/gkernel.
ian@0 134
ian@0 135 NOTE: Ethtool 1.6 only supports a limited set of ethtool options. Support
ian@0 136 for a more complete ethtool feature set can be enabled by upgrading
ian@0 137 ethtool to ethtool-1.8.1.
ian@0 138
ian@0 139
ian@0 140 Enabling Wake on LAN* (WoL)
ian@0 141 ---------------------------
ian@0 142 WoL is provided through the Ethtool* utility. Ethtool is included with Red
ian@0 143 Hat* 8.0. For other Linux distributions, download and install Ethtool from
ian@0 144 the following website: http://sourceforge.net/projects/gkernel.
ian@0 145
ian@0 146 For instructions on enabling WoL with Ethtool, refer to the Ethtool man page.
ian@0 147
ian@0 148 WoL will be enabled on the system during the next shut down or reboot. For
ian@0 149 this driver version, in order to enable WoL, the e100 driver must be
ian@0 150 loaded when shutting down or rebooting the system.
ian@0 151
ian@0 152
ian@0 153 NAPI
ian@0 154 ----
ian@0 155
ian@0 156 NAPI (Rx polling mode) is supported in the e100 driver.
ian@0 157
ian@0 158 See www.cyberus.ca/~hadi/usenix-paper.tgz for more information on NAPI.
ian@0 159
ian@0 160 Multiple Interfaces on Same Ethernet Broadcast Network
ian@0 161 ------------------------------------------------------
ian@0 162
ian@0 163 Due to the default ARP behavior on Linux, it is not possible to have
ian@0 164 one system on two IP networks in the same Ethernet broadcast domain
ian@0 165 (non-partitioned switch) behave as expected. All Ethernet interfaces
ian@0 166 will respond to IP traffic for any IP address assigned to the system.
ian@0 167 This results in unbalanced receive traffic.
ian@0 168
ian@0 169 If you have multiple interfaces in a server, either turn on ARP
ian@0 170 filtering by
ian@0 171
ian@0 172 (1) entering: echo 1 > /proc/sys/net/ipv4/conf/all/arp_filter
ian@0 173 (this only works if your kernel's version is higher than 2.4.5), or
ian@0 174
ian@0 175 (2) installing the interfaces in separate broadcast domains (either
ian@0 176 in different switches or in a switch partitioned to VLANs).
ian@0 177
ian@0 178
ian@0 179 Support
ian@0 180 =======
ian@0 181
ian@0 182 For general information, go to the Intel support website at:
ian@0 183
ian@0 184 http://support.intel.com
ian@0 185
ian@0 186 or the Intel Wired Networking project hosted by Sourceforge at:
ian@0 187
ian@0 188 http://sourceforge.net/projects/e1000
ian@0 189
ian@0 190 If an issue is identified with the released source code on the supported
ian@0 191 kernel with a supported adapter, email the specific information related to the
ian@0 192 issue to e1000-devel@lists.sourceforge.net.
ian@0 193
ian@0 194
ian@0 195 License
ian@0 196 =======
ian@0 197
ian@0 198 This software program is released under the terms of a license agreement
ian@0 199 between you ('Licensee') and Intel. Do not use or load this software or any
ian@0 200 associated materials (collectively, the 'Software') until you have carefully
ian@0 201 read the full terms and conditions of the file COPYING located in this software
ian@0 202 package. By loading or using the Software, you agree to the terms of this
ian@0 203 Agreement. If you do not agree with the terms of this Agreement, do not install
ian@0 204 or use the Software.
ian@0 205
ian@0 206 * Other names and brands may be claimed as the property of others.