view Documentation/networking/gianfar.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 The Gianfar Ethernet Driver
2 Sysfs File description
4 Author: Andy Fleming <afleming@freescale.com>
5 Updated: 2005-07-28
9 Several of the features of the gianfar driver are controlled
10 through sysfs files. These are:
12 bd_stash:
13 To stash RX Buffer Descriptors in the L2, echo 'on' or '1' to
14 bd_stash, echo 'off' or '0' to disable
16 rx_stash_len:
17 To stash the first n bytes of the packet in L2, echo the number
18 of bytes to buf_stash_len. echo 0 to disable.
20 WARNING: You could really screw these up if you set them too low or high!
21 fifo_threshold:
22 To change the number of bytes the controller needs in the
23 fifo before it starts transmission, echo the number of bytes to
24 fifo_thresh. Range should be 0-511.
26 fifo_starve:
27 When the FIFO has less than this many bytes during a transmit, it
28 enters starve mode, and increases the priority of TX memory
29 transactions. To change, echo the number of bytes to
30 fifo_starve. Range should be 0-511.
32 fifo_starve_off:
33 Once in starve mode, the FIFO remains there until it has this
34 many bytes. To change, echo the number of bytes to
35 fifo_starve_off. Range should be 0-511.
39 The eTSEC controller (first included in parts from late 2005 like
40 the 8548) has the ability to perform TCP, UDP, and IP checksums
41 in hardware. The Linux kernel only offloads the TCP and UDP
42 checksums (and always performs the pseudo header checksums), so
43 the driver only supports checksumming for TCP/IP and UDP/IP
44 packets. Use ethtool to enable or disable this feature for RX
45 and TX.
49 In order to use VLAN, please consult Linux documentation on
50 configuring VLANs. The gianfar driver supports hardware insertion and
51 extraction of VLAN headers, but not filtering. Filtering will be
52 done by the kernel.
56 The gianfar driver supports using the group hash table on the
57 TSEC (and the extended hash table on the eTSEC) for multicast
58 filtering. On the eTSEC, the exact-match MAC registers are used
59 before the hash tables. See Linux documentation on how to join
60 multicast groups.
64 The gianfar driver supports padding received frames with 2 bytes
65 to align the IP header to a 16-byte boundary, when supported by
66 hardware.
70 The gianfar driver supports the use of ethtool for many
71 configuration options. You must run ethtool only on currently
72 open interfaces. See ethtool documentation for details.