]> www.infradead.org Git - users/jedix/linux-maple.git/commitdiff
i40e/i40evf: prefetch skb data on transmit
authorJesse Brandeburg <jesse.brandeburg@intel.com>
Mon, 26 Oct 2015 23:44:30 +0000 (19:44 -0400)
committerChuck Anderson <chuck.anderson@oracle.com>
Thu, 10 Mar 2016 16:33:27 +0000 (08:33 -0800)
Orabug: 22342532

Issue a prefetch for data early in the transmit path.
This should not be generally needed for Tx traffic, but
it helps immensely for pktgen workloads and should help
for forwarding workloads as well.

Change-ID: Iefee870c20599e0c4240e1d8637e4f16b625f83a
Signed-off-by: Jesse Brandeburg <jesse.brandeburg@intel.com>
Tested-by: Andrew Bowers <andrewx.bowers@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
(cherry picked from commit b74118f08356fd8ab6cb5d1a15705a2760c9afdd)
Signed-off-by: Brian Maly <brian.maly@oracle.com>
drivers/net/ethernet/intel/i40e/i40e_txrx.c
drivers/net/ethernet/intel/i40evf/i40e_txrx.c

index 957a6f03f7ad57801e7ea0ce5a96f7112f7e95bd..cd1cbd0764d5bcf9f4ba6da8f338d125c14300df 100644 (file)
@@ -2805,6 +2805,9 @@ static netdev_tx_t i40e_xmit_frame_ring(struct sk_buff *skb,
        int tsyn;
        int tso;
 
+       /* prefetch the data, we'll need it later */
+       prefetch(skb->data);
+
        if (0 == i40e_xmit_descriptor_count(skb, tx_ring))
                return NETDEV_TX_BUSY;
 
index e1ae609be29d6197a49f995da618185ea91368da..102243c8b4ae453342d68eb6c25bf2d9d9ef3bb9 100644 (file)
@@ -1992,6 +1992,9 @@ static netdev_tx_t i40e_xmit_frame_ring(struct sk_buff *skb,
        u8 hdr_len = 0;
        int tso;
 
+       /* prefetch the data, we'll need it later */
+       prefetch(skb->data);
+
        if (0 == i40evf_xmit_descriptor_count(skb, tx_ring))
                return NETDEV_TX_BUSY;