diff options
author | Alexander Duyck <alexander.h.duyck@intel.com> | 2011-01-06 14:29:58 (GMT) |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2011-01-10 07:44:11 (GMT) |
commit | 69830529b26e6dc9582a4b65ab88f40f050cf94e (patch) | |
tree | 03c16ab393989d80e4ca9034f415fe499dc83ce8 /drivers/net/ixgbe/ixgbe_type.h | |
parent | 905e4a4163c4e807daf1f1f6b8f958e762a834a8 (diff) | |
download | linux-fsl-qoriq-69830529b26e6dc9582a4b65ab88f40f050cf94e.tar.xz |
ixgbe: further flow director performance optimizations
This change adds a compressed input type for atr signature hash
computation. It also drops the use of the set functions when setting up
the ATR input since we can then directly setup the hash input as two dwords
that can be stored and passed as registers.
With these changes the cost of computing the has is low enough that we can
perform a hash computation on each TCP SYN flagged packet allowing us to
drop the number of flow director misses considerably in tests such as
netperf TCP_CRR.
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_type.h')
-rw-r--r-- | drivers/net/ixgbe/ixgbe_type.h | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/drivers/net/ixgbe/ixgbe_type.h b/drivers/net/ixgbe/ixgbe_type.h index c56a712..0d9392d 100644 --- a/drivers/net/ixgbe/ixgbe_type.h +++ b/drivers/net/ixgbe/ixgbe_type.h @@ -2198,6 +2198,22 @@ union ixgbe_atr_input { __be32 dword_stream[11]; }; +/* Flow Director compressed ATR hash input struct */ +union ixgbe_atr_hash_dword { + struct { + u8 vm_pool; + u8 flow_type; + __be16 vlan_id; + } formatted; + __be32 ip; + struct { + __be16 src; + __be16 dst; + } port; + __be16 flex_bytes; + __be32 dword; +}; + struct ixgbe_atr_input_masks { __be32 src_ip_mask; __be32 dst_ip_mask; |