Linux Kernel
3.7.1
|
#include <net_driver.h>
Data Fields | |
struct efx_nic *efx | ____cacheline_aligned_in_smp |
unsigned | queue |
struct efx_channel * | channel |
struct netdev_queue * | core_txq |
struct efx_tx_buffer * | buffer |
struct efx_buffer * | tsoh_page |
struct efx_special_buffer | txd |
unsigned int | ptr_mask |
bool | initialised |
unsigned int read_count | ____cacheline_aligned_in_smp |
unsigned int | old_write_count |
unsigned int insert_count | ____cacheline_aligned_in_smp |
unsigned int | write_count |
unsigned int | old_read_count |
unsigned int | tso_bursts |
unsigned int | tso_long_headers |
unsigned int | tso_packets |
unsigned int | pushes |
unsigned int empty_read_count | ____cacheline_aligned_in_smp |
struct efx_tx_queue - An Efx TX queue
This is a ring buffer of TX fragments. Since the TX completion path always executes on the same CPU and the xmit path can operate on different CPUs, performance is increased by ensuring that the completion path and the xmit path operate on different cache lines. This is particularly important if the xmit path is always executing on one CPU which is different from the completion path. There is also a cache line for members which are read but not written on the fast path.
: The associated Efx NIC : DMA queue number : The associated channel : The networking core TX queue structure : The software buffer ring : Array of pages of TSO header buffers : The hardware descriptor ring : The size of the ring minus 1. : Has hardware queue been initialised? : Current read pointer. This is the number of buffers that have been removed from both rings. : The value of when last checked. This is here for performance reasons. The xmit path will only get the up-to-date value of if this variable indicates that the queue is empty. This is to avoid cache-line ping-pong between the xmit path and the completion path. : Current insert pointer This is the number of buffers that have been added to the software ring. : Current write pointer This is the number of buffers that have been added to the hardware ring. : The value of read_count when last checked. This is here for performance reasons. The xmit path will only get the up-to-date value of read_count if this variable indicates that the queue is full. This is to avoid cache-line ping-pong between the xmit path and the completion path. : Number of times TSO xmit invoked by kernel : Number of packets with headers too long for standard blocks : Number of packets via the TSO xmit path : Number of times the TX push feature has been used : If the completion path has seen the queue as empty and the transmission path has not yet checked this, the value of bitwise-added to EFX_EMPTY_COUNT_VALID; otherwise 0.
Definition at line 175 of file net_driver.h.
Definition at line 177 of file net_driver.h.
unsigned int read_count ____cacheline_aligned_in_smp |
Definition at line 188 of file net_driver.h.
unsigned int insert_count ____cacheline_aligned_in_smp |
Definition at line 192 of file net_driver.h.
unsigned int empty_read_count ____cacheline_aligned_in_smp |
Definition at line 201 of file net_driver.h.
Definition at line 181 of file net_driver.h.
Definition at line 179 of file net_driver.h.
struct netdev_queue* core_txq |
Definition at line 180 of file net_driver.h.
bool initialised |
Definition at line 185 of file net_driver.h.
unsigned int old_read_count |
Definition at line 194 of file net_driver.h.
unsigned int old_write_count |
Definition at line 189 of file net_driver.h.
unsigned int ptr_mask |
Definition at line 184 of file net_driver.h.
unsigned int pushes |
Definition at line 198 of file net_driver.h.
unsigned queue |
Definition at line 178 of file net_driver.h.
unsigned int tso_bursts |
Definition at line 195 of file net_driver.h.
unsigned int tso_long_headers |
Definition at line 196 of file net_driver.h.
unsigned int tso_packets |
Definition at line 197 of file net_driver.h.
struct efx_buffer* tsoh_page |
Definition at line 182 of file net_driver.h.
Definition at line 183 of file net_driver.h.
unsigned int write_count |
Definition at line 193 of file net_driver.h.