diff options
author | Daniel Pieczko <dpieczko@solarflare.com> | 2013-02-13 11:54:41 +0100 |
---|---|---|
committer | Ben Hutchings <bhutchings@solarflare.com> | 2013-03-07 21:22:15 +0100 |
commit | 1648a23fa159e5c433aac06dc5e0d9db36146016 (patch) | |
tree | c60a40e25d368f34e73b6abffa9a62a890dc9bbf /drivers/net/ethernet/sfc/efx.h | |
parent | sfc: Replace efx_rx_is_last_buffer() with a flag (diff) | |
download | linux-1648a23fa159e5c433aac06dc5e0d9db36146016.tar.xz linux-1648a23fa159e5c433aac06dc5e0d9db36146016.zip |
sfc: allocate more RX buffers per page
Allocating 2 buffers per page is insanely inefficient when MTU is 1500
and PAGE_SIZE is 64K (as it usually is on POWER). Allocate as many as
we can fit, and choose the refill batch size at run-time so that we
still always use a whole page at once.
[bwh: Fix loop condition to allow for compound pages; rebase]
Signed-off-by: Ben Hutchings <bhutchings@solarflare.com>
Diffstat (limited to 'drivers/net/ethernet/sfc/efx.h')
-rw-r--r-- | drivers/net/ethernet/sfc/efx.h | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/drivers/net/ethernet/sfc/efx.h b/drivers/net/ethernet/sfc/efx.h index 211da79a65e8..8372da239b43 100644 --- a/drivers/net/ethernet/sfc/efx.h +++ b/drivers/net/ethernet/sfc/efx.h @@ -33,6 +33,7 @@ extern int efx_setup_tc(struct net_device *net_dev, u8 num_tc); extern unsigned int efx_tx_max_skb_descs(struct efx_nic *efx); /* RX */ +extern void efx_rx_config_page_split(struct efx_nic *efx); extern int efx_probe_rx_queue(struct efx_rx_queue *rx_queue); extern void efx_remove_rx_queue(struct efx_rx_queue *rx_queue); extern void efx_init_rx_queue(struct efx_rx_queue *rx_queue); |