i40e: Fix RS bit update in Tx path and disable force WB workaround
authorAnjali Singhai <anjali.singhai@intel.com>
Sat, 26 Sep 2015 01:26:13 +0000 (18:26 -0700)
committerJeff Kirsher <jeffrey.t.kirsher@intel.com>
Tue, 29 Sep 2015 00:38:28 +0000 (17:38 -0700)
commit5804474311912c1b80601a1afee052e8df962cd4
treebf0357bb0ee7ed947cfd82291eeaf28c7f2b887a
parentc1d1791dc8b2a13c316a4e163552804361a786a4
i40e: Fix RS bit update in Tx path and disable force WB workaround

This patch fixes the issue of forcing WB too often causing us to not
benefit from NAPI.

Without this patch we were forcing WB/arming interrupt too often taking
away the benefits of NAPI and causing a performance impact.

With this patch we disable force WB in the clean routine for X710
and XL710 adapters. X722 adapters do not enable interrupt to force
a WB and benefit from WB_ON_ITR and hence force WB is left enabled
for those adapters.
For XL710 and X710 adapters if we have less than 4 packets pending
a software Interrupt triggered from service task will force a WB.

This patch also changes the conditions for setting RS bit as described
in code comments. This optimizes when the HW does a tail bump and when
it does a WB. It also optimizes when we do a wmb.

Signed-off-by: Anjali Singhai Jain <anjali.singhai@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