diff options
author | Jon Cooper <jcooper@solarflare.com> | 2013-09-02 21:24:29 +0400 |
---|---|---|
committer | Ben Hutchings <bhutchings@solarflare.com> | 2013-09-20 22:31:52 +0400 |
commit | ee45fd92c739db5b7950163d91dfe5f016af6d24 (patch) | |
tree | 43955c4c76179b0e80449a4a2c3ae0cb77942006 /drivers/net/ethernet/sfc/net_driver.h | |
parent | 0fe5565b64667677a405cf14df49a7af8de4bff4 (diff) | |
download | linux-ee45fd92c739db5b7950163d91dfe5f016af6d24.tar.xz |
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>
Diffstat (limited to 'drivers/net/ethernet/sfc/net_driver.h')
-rw-r--r-- | drivers/net/ethernet/sfc/net_driver.h | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/drivers/net/ethernet/sfc/net_driver.h b/drivers/net/ethernet/sfc/net_driver.h index 6febecc46e86..aac22a1e85b8 100644 --- a/drivers/net/ethernet/sfc/net_driver.h +++ b/drivers/net/ethernet/sfc/net_driver.h @@ -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; |