sfc: Use TX PIO for sufficiently small packets
Sufficiently small linear packets can be copied into the PIO buffer with a single call to memcpy_toio(). Non-linear packets require an intermediate cache-line-sized buffer. [bwh: I wrote the first version of this, but Jon did the hard work to handle non-linear packets.] Signed-off-by: Ben Hutchings <bhutchings@solarflare.com>
This commit is contained in:
committed by
Ben Hutchings
parent
0fe5565b64
commit
ee45fd92c7
@ -212,6 +212,7 @@ struct efx_tx_buffer {
|
||||
* blocks
|
||||
* @tso_packets: Number of packets via the TSO xmit path
|
||||
* @pushes: Number of times the TX push feature has been used
|
||||
* @pio_packets: Number of times the TX PIO feature has been used
|
||||
* @empty_read_count: If the completion path has seen the queue as empty
|
||||
* and the transmission path has not yet checked this, the value of
|
||||
* @read_count bitwise-added to %EFX_EMPTY_COUNT_VALID; otherwise 0.
|
||||
@ -243,6 +244,7 @@ struct efx_tx_queue {
|
||||
unsigned int tso_long_headers;
|
||||
unsigned int tso_packets;
|
||||
unsigned int pushes;
|
||||
unsigned int pio_packets;
|
||||
|
||||
/* Members shared between paths and sometimes updated */
|
||||
unsigned int empty_read_count ____cacheline_aligned_in_smp;
|
||||
|
Reference in New Issue
Block a user