aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/ixgbe/ixgbe.h
diff options
context:
space:
mode:
authorAlexander Duyck <alexander.h.duyck@intel.com>2011-01-06 09:29:57 -0500
committerDavid S. Miller <davem@davemloft.net>2011-01-10 02:44:11 -0500
commit905e4a4163c4e807daf1f1f6b8f958e762a834a8 (patch)
tree4f2a71c7dc5255a1dfb9f4063b94a920a3ada135 /drivers/net/ixgbe/ixgbe.h
parent2d39d576fad0fd4bb79a0de26fca50a4be1ffdc1 (diff)
ixgbe: cleanup flow director hash computation to improve performance
This change cleans up the layout of the flow director data, and the algorithm used to calculate the hash resulting in a 35x / 3500% performance increase versus the old flow director hash computation. The overall effect is only a 1% increase in transactions per second though due to the fact that only 1 packet in 20 are actually hashed upon. TCP_RR before: Socket Size Request Resp. Elapsed Trans. Send Recv Size Size Time Rate bytes Bytes bytes bytes secs. per sec 16384 87380 1 1 60.00 23059.27 16384 87380 TCP_RR after: Socket Size Request Resp. Elapsed Trans. Send Recv Size Size Time Rate bytes Bytes bytes bytes secs. per sec 16384 87380 1 1 60.00 23239.98 16384 87380 Signed-off-by: Alexander Duyck <alexander.h.duyck@intel.com> Tested-by: Stephen Ko <stephen.s.ko@intel.com> Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/ixgbe/ixgbe.h')
-rw-r--r--drivers/net/ixgbe/ixgbe.h18
1 files changed, 9 insertions, 9 deletions
diff --git a/drivers/net/ixgbe/ixgbe.h b/drivers/net/ixgbe/ixgbe.h
index bdeaa9e06c0..2666e69d328 100644
--- a/drivers/net/ixgbe/ixgbe.h
+++ b/drivers/net/ixgbe/ixgbe.h
@@ -526,25 +526,25 @@ extern s32 ixgbe_reinit_fdir_tables_82599(struct ixgbe_hw *hw);
526extern s32 ixgbe_init_fdir_signature_82599(struct ixgbe_hw *hw, u32 pballoc); 526extern s32 ixgbe_init_fdir_signature_82599(struct ixgbe_hw *hw, u32 pballoc);
527extern s32 ixgbe_init_fdir_perfect_82599(struct ixgbe_hw *hw, u32 pballoc); 527extern s32 ixgbe_init_fdir_perfect_82599(struct ixgbe_hw *hw, u32 pballoc);
528extern s32 ixgbe_fdir_add_signature_filter_82599(struct ixgbe_hw *hw, 528extern s32 ixgbe_fdir_add_signature_filter_82599(struct ixgbe_hw *hw,
529 struct ixgbe_atr_input *input, 529 union ixgbe_atr_input *input,
530 u8 queue); 530 u8 queue);
531extern s32 ixgbe_fdir_add_perfect_filter_82599(struct ixgbe_hw *hw, 531extern s32 ixgbe_fdir_add_perfect_filter_82599(struct ixgbe_hw *hw,
532 struct ixgbe_atr_input *input, 532 union ixgbe_atr_input *input,
533 struct ixgbe_atr_input_masks *input_masks, 533 struct ixgbe_atr_input_masks *input_masks,
534 u16 soft_id, u8 queue); 534 u16 soft_id, u8 queue);
535extern s32 ixgbe_atr_set_vlan_id_82599(struct ixgbe_atr_input *input, 535extern s32 ixgbe_atr_set_vlan_id_82599(union ixgbe_atr_input *input,
536 u16 vlan_id); 536 u16 vlan_id);
537extern s32 ixgbe_atr_set_src_ipv4_82599(struct ixgbe_atr_input *input, 537extern s32 ixgbe_atr_set_src_ipv4_82599(union ixgbe_atr_input *input,
538 u32 src_addr); 538 u32 src_addr);
539extern s32 ixgbe_atr_set_dst_ipv4_82599(struct ixgbe_atr_input *input, 539extern s32 ixgbe_atr_set_dst_ipv4_82599(union ixgbe_atr_input *input,
540 u32 dst_addr); 540 u32 dst_addr);
541extern s32 ixgbe_atr_set_src_port_82599(struct ixgbe_atr_input *input, 541extern s32 ixgbe_atr_set_src_port_82599(union ixgbe_atr_input *input,
542 u16 src_port); 542 u16 src_port);
543extern s32 ixgbe_atr_set_dst_port_82599(struct ixgbe_atr_input *input, 543extern s32 ixgbe_atr_set_dst_port_82599(union ixgbe_atr_input *input,
544 u16 dst_port); 544 u16 dst_port);
545extern s32 ixgbe_atr_set_flex_byte_82599(struct ixgbe_atr_input *input, 545extern s32 ixgbe_atr_set_flex_byte_82599(union ixgbe_atr_input *input,
546 u16 flex_byte); 546 u16 flex_byte);
547extern s32 ixgbe_atr_set_l4type_82599(struct ixgbe_atr_input *input, 547extern s32 ixgbe_atr_set_l4type_82599(union ixgbe_atr_input *input,
548 u8 l4type); 548 u8 l4type);
549extern void ixgbe_configure_rscctl(struct ixgbe_adapter *adapter, 549extern void ixgbe_configure_rscctl(struct ixgbe_adapter *adapter,
550 struct ixgbe_ring *ring); 550 struct ixgbe_ring *ring);