i40e/i40evf: Update code to better handle incrementing page count
authorAlexander Duyck <alexander.h.duyck@intel.com>
Tue, 21 Feb 2017 23:55:39 +0000 (15:55 -0800)
committerJeff Kirsher <jeffrey.t.kirsher@intel.com>
Mon, 27 Mar 2017 23:45:13 +0000 (16:45 -0700)
commit1793668c3b8c18ede309dfec30f7c486cca00d28
tree8dcc358ec947b10a27f4a263c43aee5984d16df6
parent402a5bc462d47f0b7c9e8a516c124c9c162fe2aa
i40e/i40evf: Update code to better handle incrementing page count

Update the driver code so that we do bulk updates of the page reference
count instead of just incrementing it by one reference at a time.  The
advantage to doing this is that we cut down on atomic operations and
this in turn should give us a slight improvement in cycles per packet.
In addition if we eventually move this over to using build_skb the gains
will be more noticeable.

I also found and fixed a store forwarding stall from where we were
assigning "*new_buff = *old_buff".  By breaking it up into individual
copies we can avoid this and as a result the performance is slightly
improved.

Change-ID: I1d3880dece4133eca3c32423b04a5467321ccc52
Signed-off-by: Alexander Duyck <alexander.h.duyck@intel.com>
Tested-by: Andrew Bowers <andrewx.bowers@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
drivers/net/ethernet/intel/i40e/i40e_txrx.c
drivers/net/ethernet/intel/i40e/i40e_txrx.h
drivers/net/ethernet/intel/i40evf/i40e_txrx.c
drivers/net/ethernet/intel/i40evf/i40e_txrx.h