bnx2: Optimize fast-path tx and rx work.
Add hw_tx_cons_ptr and hw_rx_cons_ptr to speed up the retreival of the tx and rx consumer index, since the MSI-X and default status blocks have different structures. Combine status_blk and status_blk_msix into a union. We'll only use one type of status block for each vector. Separate the code to detect more rx and tx work from the code to detect link related work. Signed-off-by: Michael Chan <mchan@broadcom.com> Signed-off-by: Benjamin Li <benli@broadcom.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
committed by
David S. Miller
parent
bb4f98abf5
commit
43e80b89b6
@ -6609,8 +6609,12 @@ struct bnx2_rx_ring_info {
|
||||
struct bnx2_napi {
|
||||
struct napi_struct napi ____cacheline_aligned;
|
||||
struct bnx2 *bp;
|
||||
struct status_block *status_blk;
|
||||
struct status_block_msix *status_blk_msix;
|
||||
union {
|
||||
struct status_block *msi;
|
||||
struct status_block_msix *msix;
|
||||
} status_blk;
|
||||
u16 *hw_tx_cons_ptr;
|
||||
u16 *hw_rx_cons_ptr;
|
||||
u32 last_status_idx;
|
||||
u32 int_num;
|
||||
|
||||
@ -6759,7 +6763,6 @@ struct bnx2 {
|
||||
|
||||
u32 stats_ticks;
|
||||
|
||||
struct status_block *status_blk;
|
||||
dma_addr_t status_blk_mapping;
|
||||
|
||||
struct statistics_block *stats_blk;
|
||||
|
Reference in New Issue
Block a user