Skip to content

Commit

Permalink
ixgbevf: Reduce size of maximum rx buffer
Browse files Browse the repository at this point in the history
There's no need to support up to 15k buffers since the HW is limited to
9.5k in SR-IOV mode.  Instead, allocate buffers that fit and align inside
of a 32K memory buffer.

Signed-off-by: Greg Rose <gregory.v.rose@intel.com>
Tested-by: Sibai Li <sibai.li@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
  • Loading branch information
Greg Rose authored and David S. Miller committed Nov 13, 2012
1 parent 366c109 commit 85624ca
Show file tree
Hide file tree
Showing 2 changed files with 13 additions and 13 deletions.
8 changes: 4 additions & 4 deletions drivers/net/ethernet/intel/ixgbevf/ixgbevf.h
Original file line number Diff line number Diff line change
Expand Up @@ -101,10 +101,10 @@ struct ixgbevf_ring {

/* Supported Rx Buffer Sizes */
#define IXGBEVF_RXBUFFER_256 256 /* Used for packet split */
#define IXGBEVF_RXBUFFER_3K 3072
#define IXGBEVF_RXBUFFER_7K 7168
#define IXGBEVF_RXBUFFER_15K 15360
#define IXGBEVF_MAX_RXBUFFER 16384 /* largest size for single descriptor */
#define IXGBEVF_RXBUFFER_2K 2048
#define IXGBEVF_RXBUFFER_4K 4096
#define IXGBEVF_RXBUFFER_8K 8192
#define IXGBEVF_RXBUFFER_10K 10240

#define IXGBEVF_RX_HDR_SIZE IXGBEVF_RXBUFFER_256

Expand Down
18 changes: 9 additions & 9 deletions drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c
Original file line number Diff line number Diff line change
Expand Up @@ -1087,20 +1087,20 @@ static void ixgbevf_set_rx_buffer_len(struct ixgbevf_adapter *adapter)
max_frame += VLAN_HLEN;

/*
* Make best use of allocation by using all but 1K of a
* power of 2 allocation that will be used for skb->head.
* Allocate buffer sizes that fit well into 32K and
* take into account max frame size of 9.5K
*/
if ((hw->mac.type == ixgbe_mac_X540_vf) &&
(max_frame <= MAXIMUM_ETHERNET_VLAN_SIZE))
rx_buf_len = MAXIMUM_ETHERNET_VLAN_SIZE;
else if (max_frame <= IXGBEVF_RXBUFFER_3K)
rx_buf_len = IXGBEVF_RXBUFFER_3K;
else if (max_frame <= IXGBEVF_RXBUFFER_7K)
rx_buf_len = IXGBEVF_RXBUFFER_7K;
else if (max_frame <= IXGBEVF_RXBUFFER_15K)
rx_buf_len = IXGBEVF_RXBUFFER_15K;
else if (max_frame <= IXGBEVF_RXBUFFER_2K)
rx_buf_len = IXGBEVF_RXBUFFER_2K;
else if (max_frame <= IXGBEVF_RXBUFFER_4K)
rx_buf_len = IXGBEVF_RXBUFFER_4K;
else if (max_frame <= IXGBEVF_RXBUFFER_8K)
rx_buf_len = IXGBEVF_RXBUFFER_8K;
else
rx_buf_len = IXGBEVF_MAX_RXBUFFER;
rx_buf_len = IXGBEVF_RXBUFFER_10K;

for (i = 0; i < adapter->num_rx_queues; i++)
adapter->rx_ring[i].rx_buf_len = rx_buf_len;
Expand Down

0 comments on commit 85624ca

Please sign in to comment.