Linux Kernel
3.7.1
|
#include <ethtool.h>
struct ethtool_coalesce - coalescing parameters for IRQs and stats updates : ETHTOOL_{G,S}COALESCE : How many usecs to delay an RX interrupt after a packet arrives. : Maximum number of packets to receive before an RX interrupt. : Same as , except that this value applies while an IRQ is being serviced by the host. : Same as , except that this value applies while an IRQ is being serviced by the host. : How many usecs to delay a TX interrupt after a packet is sent. : Maximum number of packets to be sent before a TX interrupt. : Same as , except that this value applies while an IRQ is being serviced by the host. : Same as , except that this value applies while an IRQ is being serviced by the host. : How many usecs to delay in-memory statistics block updates. Some drivers do not have an in-memory statistic block, and in such cases this value is ignored. This value must not be zero. : Enable adaptive RX coalescing. : Enable adaptive TX coalescing. : Threshold for low packet rate (packets per second). : How many usecs to delay an RX interrupt after a packet arrives, when the packet rate is below . : Maximum number of packets to be received before an RX interrupt, when the packet rate is below . : How many usecs to delay a TX interrupt after a packet is sent, when the packet rate is below . : Maximum nuumber of packets to be sent before a TX interrupt, when the packet rate is below . : Threshold for high packet rate (packets per second). : How many usecs to delay an RX interrupt after a packet arrives, when the packet rate is above . : Maximum number of packets to be received before an RX interrupt, when the packet rate is above . : How many usecs to delay a TX interrupt after a packet is sent, when the packet rate is above . : Maximum number of packets to be sent before a TX interrupt, when the packet rate is above . : How often to do adaptive coalescing packet rate sampling, measured in seconds. Must not be zero.
Each pair of (usecs, max_frames) fields specifies this exit condition for interrupt coalescing: (usecs > 0 && time_since_first_completion >= usecs) || (max_frames > 0 && completed_frames >= max_frames) It is illegal to set both usecs and max_frames to zero as this would cause interrupts to never be generated. To disable coalescing, set usecs = 0 and max_frames = 1.
Some implementations ignore the value of max_frames and use the condition: time_since_first_completion >= usecs This is deprecated. Drivers for hardware that does not support counting completions should validate that max_frames == !rx_usecs.
Adaptive RX/TX coalescing is an algorithm implemented by some drivers to improve latency under low packet rates and improve throughput under high packet rates. Some drivers only implement one of RX or TX adaptive coalescing. Anything not implemented by the driver causes these values to be silently ignored.
When the packet rate is below but above (both measured in packets per second) the normal {rx,tx}_* coalescing parameters are used.